PHP - No funciona el login

 
Vista:
Imágen de perfil de Oriol

No funciona el login

Publicado por Oriol (7 intervenciones) el 12/11/2016 14:40:23
Buenas a todos ;) Expongo aqui mi problema, a ver si sabeis resolvermelo, xq ando loco desde hace dias ejejeje.

Estoy intentando hacer una web-app (para classe) el registro de nuevo usuario me funciona perfectamente, asi que no es problema de conexion con la bbdd. El problema es que al iniicar sesion o me inicia SIEMPRE, es decir aunque ponga mal un usuario y su pass.... o bien no me inicia NUNCA, es decir aunque ponga bien el email y pass me rechaza.... Depende del codigo que ponga de los 2 q tengo, supongo q hay un paso q me falta... :( pero no se cual. Lo hago en localhost, con mysql...


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
<?php
 
   include 'conexion.php'; // INCLUIMOS LA CONEXION A LA BBDD
 
	if(!empty($_POST)){ // ASEGURAMOS QUE NO ESTE VACIO EN FORMULARIO
		//echo "hol";
		if(!empty($_POST['email']) && !empty($_POST['password']))
		{ // QUE NO ESTE VACIO LOS INPUTS
 
			$email = $_POST['email']; //GUARDAMOS LO INTRODUCIDO EN EL FORMULARIO DE LOGIN
			$passw = $_POST['password'];
 
 
 
			// CONECTAMOS CON BD		
 
			$sql = " SELECT * FROM users WHERE email='$email' AND password='$passw' ";
 
 
 
			//EJECUTAMOS LA BUSQUEDA SQL
			//  $query = $con->query($sql);
			//$query = mysql_query($sql,$con);
 
 
			$resultado = $con->query($sql);
			$row = $resultado->fetch_assoc();
 
			// SI EL USUARIO EXISTE....
			if($row>0) //SI HAY RESULTADOS....
				{
					//crear sesion
					session_start();
					$_SESSION['email']=$email;
					setcookie('email',$email,time()+1800,'/listapp','');
					header('Location:list.php');
					exit();
				}else{
					header('Location:error.php');
					exit();
				}
 
		} // FIN DEl 2º if !
 
	} // FIN DEl 1r if !	
 
?>


No funciona el login
« en: Hoy a las 13:25 »
Buenas a todos ;) Expongo aqui mi problema, a ver si sabeis resolvermelo, xq ando loco desde hace dias ejejeje.

Estoy intentando hacer una web-app (para classe) el registro de nuevo usuario me funciona perfectamente, asi que no es problema de conexion con la bbdd. El problema es que al iniicar sesion o me inicia SIEMPRE, es decir aunque ponga mal un usuario y su pass.... o bien no me inicia NUNCA, es decir aunque ponga bien el email y pass me rechaza.... Depende del codigo que ponga de los 2 q tengo, supongo q hay un paso q me falta... :( pero no se cual. Lo hago en localhost, con mysql...

Código
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
<?php
 
   include 'conexion.php'; // INCLUIMOS LA CONEXION A LA BBDD
 
	if(!empty($_POST)){ // ASEGURAMOS QUE NO ESTE VACIO EN FORMULARIO
		//echo "hol";
		if(!empty($_POST['email']) && !empty($_POST['password']))
		{ // QUE NO ESTE VACIO LOS INPUTS
 
			$email = $_POST['email']; //GUARDAMOS LO INTRODUCIDO EN EL FORMULARIO DE LOGIN
			$passw = $_POST['password'];
 
 
 
			// CONECTAMOS CON BD		
 
			$sql = " SELECT * FROM users WHERE email='$email' AND password='$passw' ";
 
 
 
			//EJECUTAMOS LA BUSQUEDA SQL
			//  $query = $con->query($sql);
			//$query = mysql_query($sql,$con);
 
 
			$resultado = $con->query($sql);
			$row = $resultado->fetch_assoc();
 
			// SI EL USUARIO EXISTE....
			if($row>0) //SI HAY RESULTADOS....
				{
					//crear sesion
					session_start();
					$_SESSION['email']=$email;
					setcookie('email',$email,time()+1800,'/listapp','');
					header('Location:list.php');
					exit();
				}else{
					header('Location:error.php');
					exit();
				}
 
		} // FIN DEl 2º if !
 
	} // FIN DEl 1r if !	
 
?>


El codigo comentado es que no me sirve.... hace lo mismo, o me tira para atras siempre o me acepta siempre....
En la base de datos solo tengo un usuario para las pruebas que es [email protected] / 1234.

La parte del html es muy basica.. un simple formulario:


1
2
3
4
5
6
7
8
9
10
<div class="row text-center">
	<div class="col-xs-12">
		<form action="login.php" method="post">
			Su Email: <br />
			<input type="email"  name="email" required>
			<br/>Su Contraseña:<br />
			<input type="password"  name="password" required> <br/>
			<input type="submit" value="Entrar" class="btn btn-success">
		</form>
	</div>
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de Alejandro
Val: 575
Bronce
Ha mantenido su posición en PHP (en relación al último mes)
Gráfica de PHP

No funciona el login

Publicado por Alejandro (157 intervenciones) el 13/11/2016 01:12:25
Hola Oriol, no estoy seguro pero me parece que en la linea 30, cuando comprobas si el usuario existe, deberías fijarte si
1
$row->num_rows == 0
o tambien podes hacer
1
count($row) == 1
, ya que cuando haces
1
$resultado->fetch_assoc();
el metodo fetch_assoc retorna un array asociativo o NULL si no hay resultados.

Prueba y avisame.

Saludos.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de oriol

No funciona el login

Publicado por oriol (7 intervenciones) el 13/11/2016 12:13:53
sigue sin funcionar... me entra siempre he comentado la linea de '' $row = $resultado->fetch_assoc(); '' y tampoco funciona
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de kip
Val: 2.325
Plata
Ha disminuido 1 puesto en PHP (en relación al último mes)
Gráfica de PHP

No funciona el login

Publicado por kip (877 intervenciones) el 13/11/2016 18:09:01
Hola, tal como comenta Alejandro quizas el problema se encuentra cuando verificas si $row contiene datos, intentalo asi:

1
if($row) //SI HAY RESULTADOS....

Si aquello no funciona podrias colocarnos el contenido de conexion.php ?

Saludos
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Sigue sin funcionar

No funciona el login

Publicado por Sigue sin funcionar (7 intervenciones) el 13/11/2016 18:56:00
Bueno, ante todo gracias jejeje este es el codigo de <login.php>
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
<?php
ini_set('display_errors','1');
include 'conexion.php'; // INCLUIMOS LA CONEXION A LA BBDD
//require "conexion.php";
 
	if(!empty($_POST)){ // ASEGURAMOS QUE NO ESTE VACIO EN FORMULARIO
 
		if(!empty($_POST['email']) && !empty($_POST['password']))
		{ // QUE NO ESTE VACIO LOS INPUTS
 
			//VARIABLES DE INPUTS
			$email = $_POST['email'];
			$passw = $_POST['password'];
 
			// CONECTAMOS CON BD
 
			$sql = "SELECT * FROM users WHERE email='$email' AND passw='$passw' ";
 
 
			echo "$sql";
			//EJECUTAMOS LA BUSQUEDA SQL
 
		//	$result = $con->query($sql);
		//	$row = mysqli_fetch_assoc($result);
 
			$resultado = mysqli_query($con, $sql);
			$filas=mysqli_num_rows($resultado);
 
 
			// SI EL USUARIO EXISTE....
			if($filas>0)
				{
					//crear sesion
					//session_start();
					//$_SESSION['email']=$email;
					//setcookie('email',$email,time()+1800,'/listapp','');
					header('Location:list.php');
					//exit();
				}
			else
				{
					header('Location:error.php');
 
				}
 
 
		} // FIN DEl 2º if !
 
	} // FIN DEl 1r if !	
 
?>

Este es el de <conexion.php>
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
<?php
// ORIOL IZQUIERDO VIBALDA 
 
 
 
//ESTABLECER CONEXION CON BD
//PEDIR DATOS COMO HOST, USER, PASSWORD, BD
 
$db_host = 'localhost';
$db_user = 'root';
$db_password = 'root';
$db_name = 'listapp';
 
//OBTENER VAR DE LA CONEXION
$con = new mysqli($db_host,$db_user,$db_password,$db_name);
	if ($con ->connect_errno)
 
		die('Error_connect_DB');
	else {
		//comprovar _post
		echo "conectado ok";
 
	} //fin de else
 
	//cerramos la conexion con la bd
	//$db->close();
 
 
?>


Ahora mismo tal cual està me tira Login incorrecto si o si
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de kip
Val: 2.325
Plata
Ha disminuido 1 puesto en PHP (en relación al último mes)
Gráfica de PHP

No funciona el login

Publicado por kip (877 intervenciones) el 13/11/2016 19:21:09
No puedes usar estilo por procedimientos si ya estableciste en conexion.php que sera mediante el objeto mysqli, intenta con este codigo:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
<?php
ini_set('display_errors','1');
include 'conexion.php'; // INCLUIMOS LA CONEXION A LA BBDD
//require "conexion.php";
	if(!empty($_POST)){ // ASEGURAMOS QUE NO ESTE VACIO EN FORMULARIO
		if(!empty($_POST['email']) && !empty($_POST['password']))
		{ // QUE NO ESTE VACIO LOS INPUTS
			//VARIABLES DE INPUTS
			$email = $_POST['email'];
			$passw = $_POST['password'];
			// CONECTAMOS CON BD
			$sql = "SELECT * FROM users WHERE email='$email' AND passw='$passw' ";
			echo "$sql";
			//EJECUTAMOS LA BUSQUEDA SQL
			if ($result = $con->query($sql)) {
				$row = $result->num_rows;
				// SI EL USUARIO EXISTE....
				if ($row > 0) {
					//crear sesion
					//session_start();
					//$_SESSION['email']=$email;
					//setcookie('email',$email,time()+1800,'/listapp','');
					header('Location:list.php');
					//exit();
				} else {
					header('Location:error.php');
				}
			} else { echo 'Hubo un problema al ejecutar la query!'; }
		} // FIN DEl 2º if !
	} // FIN DEl 1r if !
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar
Imágen de perfil de Oriol

No funciona el login

Publicado por Oriol (7 intervenciones) el 13/11/2016 19:59:09
Pues nada, sigue igual... me tira a error.php. La BD de la aplicacion es esta

bdusers

He puesto el codigo que me has dado tal cual, sin tocar nada.... y sigue tirando a error.php
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de kip
Val: 2.325
Plata
Ha disminuido 1 puesto en PHP (en relación al último mes)
Gráfica de PHP

No funciona el login

Publicado por kip (877 intervenciones) el 13/11/2016 20:08:36
Vaya que raro, intentalo por ahora sin header(), directamente con un mensaje que te muestre los datos de la query (coloque el ID) y el mensaje de si se encontro o no el usuario, asi:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
<?php
ini_set('display_errors','1');
include 'conexion.php'; // INCLUIMOS LA CONEXION A LA BBDD
	if(!empty($_POST)){ // ASEGURAMOS QUE NO ESTE VACIO EN FORMULARIO
		if(!empty($_POST['email']) && !empty($_POST['password']))
		{ // QUE NO ESTE VACIO LOS INPUTS
			//VARIABLES DE INPUTS
			$email = trim($_POST['email']);
			$passw = trim($_POST['password']);
			$sql = "SELECT * FROM users WHERE email='$email' AND passw='$passw' ";
			if ($result = $con->query($sql)) {
				while ($fila = $result->fetch_assoc()) {
			               echo 'ID - '.$fila['id'].'<br>';
			        }
				$row = $result->num_rows;
				if ($row > 0) {
					echo 'USUARIO ENCONTRADO!';
				} else {
					echo 'USUARIO NO ENCONTRADO!';
				}
			}
		}
	}
\
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Oriol

No funciona el login

Publicado por Oriol (7 intervenciones) el 13/11/2016 20:18:53
Creo q el problema esta en el Id, he probado tu codigo en otra BD sin tener el id y funciona.....
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de kip
Val: 2.325
Plata
Ha disminuido 1 puesto en PHP (en relación al último mes)
Gráfica de PHP

No funciona el login

Publicado por kip (877 intervenciones) el 13/11/2016 20:30:31
Intenta ejecutar la consulta directamente en PHPMyAdmin a ver que sucede si te tira algun error.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Oriol

No funciona el login

Publicado por Oriol (7 intervenciones) el 13/11/2016 20:56:35
bd2
esta consulta??
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de oriol

No funciona el login

Publicado por oriol (7 intervenciones) el 14/11/2016 19:32:19
Ya encontrè el fallo... es el id de la base de datos, el codigo php funciona bien en una tabla sin id...

Como podria hacer para qe funcionase con el id de la tabla??
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar