Foros del Web » Programando para Internet » PHP »

"SELECT WHERE Variable" problema

Estas en el tema de "SELECT WHERE Variable" problema en el foro de PHP en Foros del Web. Hola, gracias por entrar, leer y tratar de solucionar mi problema cual es el siguiente Estoy haciendo un sistema de registro/login y soy nuevo en ...
  #1 (permalink)  
Antiguo 09/12/2011, 14:34
Avatar de Hurieta  
Fecha de Ingreso: enero-2011
Mensajes: 27
Antigüedad: 13 años, 2 meses
Puntos: 2
Pregunta "SELECT WHERE Variable" problema

Hola, gracias por entrar, leer y tratar de solucionar mi problema cual es el siguiente

Estoy haciendo un sistema de registro/login y soy nuevo en PHP, ya me lei todo el manual del foro y pude hasta ahora sacar solo el registro con la base de datos y todo funcionando perfectamente. Ahora me falta a hacer el login el cual se me complico por un problema como hago, que codigos PHP uso para poder hacerlo... yo hice esto

login.php

Código:
<html>
	<head>
		<title>Login</title>
	</head>
	
	<body>
	
	<form action="formlogin.php" id="login" name="login" method="get">

	<input type="text" name="id" id="ID" value="ID"/><br>
	<input type="text" name="pass" id="Contraseña" value="Contraseña"/><br>
	<br>
	<input type="submit" value="Entrar!" name="Entrar" id="Entrar" />
	
	</form>
	
	</body>
</html>
formlogin.php

Código:
<?php

$servidor = 'localhost';
$usuario = 'root';

mysql_connect($servidor, $usuario);

mysql_select_db('sistema_de_logeo');


$ID = $_REQUEST["id"];

$Contraseña = $_REQUEST["pass"];

mysql_query("SELECT ID, Contraseña FROM sistema_de_logeo WHERE ID='$id' and Contraseña='$pass'");

if ($ID == & id &) 
{
echo "Bienvenido $ID";
} 
else 
{ 
echo "Error";
}


?>
Ahora lo que quiero hacer es ubicar una variable en el SELECT... WHERE ID and Contraseña, y usar esta variable para comparla con otra llamada $ID que responde a un campo de formulario... al ejecutar el codigo como esta ahora me sale que la variable $id y la variable $pass no estan definidas por el problema que explique antes.

¿Como lo puedo solucionar? Muchas Gracias
  #2 (permalink)  
Antiguo 09/12/2011, 14:39
 
Fecha de Ingreso: noviembre-2008
Mensajes: 33
Antigüedad: 15 años, 4 meses
Puntos: 2
Respuesta: "SELECT WHERE Variable" problema

Intenta poniendo:
Código PHP:
$pass=$_GET['pass'];
$id=$_GET['id']; 
antes del query.

Ya que recibes las variables, pero siguen en el ámbito $_GET

EDIT: Perdon, no vi el $_REQUEST

REEDIT:

Código PHP:
mysql_query("SELECT ID, Contraseña FROM sistema_de_logeo WHERE ID='$ID' and Contraseña='$Contraseña'"); 
Cuidado con los nombres de variables
  #3 (permalink)  
Antiguo 09/12/2011, 14:44
Avatar de Hurieta  
Fecha de Ingreso: enero-2011
Mensajes: 27
Antigüedad: 13 años, 2 meses
Puntos: 2
Respuesta: "SELECT WHERE Variable" problema

Claro asi se logea con cualquier nombre y no con los que estan registrados en la base de datos
  #4 (permalink)  
Antiguo 09/12/2011, 14:45
Colaborador
 
Fecha de Ingreso: mayo-2008
Ubicación: $MX['VZ']['Xalapa']
Mensajes: 3.005
Antigüedad: 15 años, 11 meses
Puntos: 528
Respuesta: "SELECT WHERE Variable" problema

Sólo un comentario:
Procura eliminar caracteres o cadenas maliciosas, sobre todo cuando se trata de hacer un login, de lo contrario, con esa forma de consultar a la base de datos das paso libre a inyecciones sql, que es una forma de que alguien te meta instrucciones sql y tome el control de tu sistema.

Otra recomendación es además que encriptes o hagas un hash de las contraseñas para no guardarlas así como están.
  #5 (permalink)  
Antiguo 09/12/2011, 15:33
 
Fecha de Ingreso: noviembre-2008
Mensajes: 33
Antigüedad: 15 años, 4 meses
Puntos: 2
Respuesta: "SELECT WHERE Variable" problema

Mirando con mas atencion tu codigo, me parece que hay un par de cosas que nesecitas refrescar en cuanto a PHP

Cuando haces
Código PHP:
mysql_query("SELECT ID, Contraseña FROM sistema_de_logeo WHERE ID='$id' and Contraseña='$pass'"); 
No estas guardando ese resultado en ningun lado.
Haces la consulta, pero nunca guardas el resultado.

Luego cuando haces:
Código PHP:
if ($ID == & id &) 
¿Que dato se supone que & id & tiene?

El resultado de una consulta no se guarda en PHP a menos que tu lo digas.

Mi corrección anterior paso por el hecho de que cuando le pasas $id y $pass en la consulta, nunca las has definido, y por eso te salta ese error.

SELECT ID, Contraseña FROM sistema_de_logeo WHERE ID='$id' and Contraseña='$pass'

Ahi le dices a la BD:

SELECCIONA LAS COLUMNAS ID, Contraseña DE sistema_de_logeo DONDE LA COLUMNA ID SEA IGUAL A LA VARIABLE $id Y LA COLUMNA Contraseña SEA IGUAL A LA VARIABLE $pass

Pero las variables $id y $pass no estan definidas, y por eso te salta ese error.


EDIT: Si pudieras poner la estructura de la BD te podria ayudar mas comodamente.

Etiquetas: login, mysql, registro, select, variables
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 07:39.