Problema con login y pass

Hola. Tengo un problema, lo explico rápidamente.
Hice un formulario de login y pass por medio de php y mysql, hice una tabla llamada usuarios en myphpadmin que tiene 2 campos, uno que se llama "user" y otro "pass"... A cada uno le agregue su variable... Ejemplo.
INSERT INTO `usuarios` ( `user` , `pass` )
VALUES (
'mi_user', 'mi_contraseña'
);
Donde user es: mi_usuer
Donde pass es: mi_contraseña
Por decir un ejemplo.
Ok, hasta ahí no tengo problemas... Cuando voy a la página y pongo ese user y ese pass, puedo entrar sin ningún problema.
El problema viene cuando quiero agregar otro user y pass a la tabla, hasta ahora para ejemplificar ya agregue 1user y 1 pass... Ahora suponemos que voy a agregar otro..
INSERT INTO `usuarios` ( `user` , `pass` )
VALUES (
'mi_user2', 'mi_contraseña2'
);
Acabo de agregar a la tabla llamada usuarios, otro user y pass respectivamente llamados mi_user2 y mi_contraseña2.
El problema es que cuando voy a la página e introduzco esos datos, no me los encuentra y no se por que motivo, solo puedo entrar con el primer user y pass creado en la tabla...
Quizá tenga algo que ver el código php---
<?php
// hacemos una conexion a la bd
$conexion = mysql_connect('nombre_host','user_host','pass_host');
// seleccionamos la Bd
mysql_select_db ("nombre_db", $conexion);
//realizamos una consulta a la bd
$query = mysql_query("SELECT * FROM nombre_tabla", $conexion);
//definimos un array
$array = mysql_fetch_array($query);
//realizamos un array de los campos que contienen el usuario y la contraseña
$arrayusuario = ($array["user"]);
$arraypassword = ($array["pass"]);
//vemos si el usuario y contraseña es váildo
//llamamos los arrays en las siguiente linea.
if ($_POST["user"]=="$arrayusuario" && $_POST["pass"]=="$arraypassword"){
//usuario y contraseña válidos
//defino una sesion y guardo datos
session_start();
session_register("autentificado");
$autentificado = "SI";
header ("Location: miembros.html");
}else {
//si no existe le mando otra vez a la portada
header("Location: register_bad.html");
Bueno experto. Si me puedes ayudar te daré las 5 stars... Gracias. Confío en ti.
2

2 respuestas

Respuesta
1
A ver ¿y si cambias la forma de comprobar el usuario?
Es decir:
<?php
// hacemos una conexion a la bd
$conexion = mysql_connect('nombre_host','user_host','pass_host');
// seleccionamos la Bd
mysql_select_db ("nombre_db", $conexion);
//realizamos una consulta a la bd
$query = mysql_query("SELECT * FROM nombre_tabla", $conexion);
//definimos un array
$array = mysql_fetch_array($query);
//realizamos un array de los campos que contienen el usuario y la contraseña
$arrayusuario = ($array["user"]);
$arraypassword = ($array["pass"]);
//vemos si el usuario y contraseña es váildo
//llamamos los arrays en las siguiente linea.
if ($_POST["user"]=="$arrayusuario" && $_POST["pass"]=="$arraypassword"){
//usuario y contraseña válidos
//defino una sesion y guardo datos
session_start();
session_register("autentificado");
$autentificado = "SI";
header ("Location: miembros.html");
}else {
//si no existe le mando otra vez a la portada
header("Location: register_bad.html");
quedaria como:
<?php
$user=$_POST["user"];
$pass=$_POST["pass"];
// hacemos una conexion a la bd
$conexion = mysql_connect('nombre_host','user_host','pass_host');
// seleccionamos la Bd
mysql_select_db ("nombre_db", $conexion);
//realizamos una consulta a la bd
$query = mysql_query("SELECT * FROM nombre_tabla Where User='$user' and password='$pass'", $conexion);
$rs = mysql_query($ssql,$conn);
if (mysql_num_rows($rs)!=0){
//usuario y contraseña válidos
//defino una sesion y guardo datos
session_start();
session_register("autentificado");
$autentificado = "SI";
header ("Location: miembros.html");
}else {
//si no existe le mando otra vez a la portada
header("Location: register_bad.html");
};
Con esto debería de funcionarte sin problemas.
Ya probé el código y no funciona :(
Puse mal el código, lo siento.
Donde dice
<?php
$user=$_POST["user"];
$pass=$_POST["pass"];
// hacemos una conexion a la bd
$conexion = mysql_connect('nombre_host','user_host','pass_host');
// seleccionamos la Bd
mysql_select_db ("nombre_db", $conexion);
//realizamos una consulta a la bd
$query = mysql_query("SELECT * FROM nombre_tabla Where User='$user' and password='$pass'", $conexion);
$rs = mysql_query($ssql,$conn);
if (mysql_num_rows($rs)!=0){
//usuario y contraseña válidos
//defino una sesion y guardo datos
session_start();
session_register("autentificado");
$autentificado = "SI";
header ("Location: miembros.html");
}else {
//si no existe le mando otra vez a la portada
header("Location: register_bad.html");
};
debe decir
<?php
$user=$_POST["user"];
$pass=$_POST["pass"];
// hacemos una conexion a la bd
$conexion = mysql_connect('nombre_host','user_host','pass_host');
// seleccionamos la Bd
mysql_select_db ("nombre_db", $conexion);
//realizamos una consulta a la bd
$query = mysql_query("SELECT * FROM nombre_tabla Where User='$user' and password='$pass'");
$rs = mysql_query($query ,$conexion);
if (mysql_num_rows($rs)!=0){
//usuario y contraseña válidos
//defino una sesion y guardo datos
session_start();
session_register("autentificado");
$autentificado = "SI";
header ("Location: miembros.html");
}else {
//si no existe le mando otra vez a la portada
header("Location: register_bad.html");
};
?>
Y ahora si debe ser, perdón po r el error, pero después de 11 horas pegado al ordenador, a veces se pasan cosas.
Que crees, ahora esta peor, antes por lo menos seguía igual, ahora no entra con ningún user ni pass...
¿Estará mal algo?...
A ver comprueba la sentencia sql, si la pusiste tal cual, puede estar el problema ahí, pon:
$query = "SELECT * FROM nombre_tabla Where user='$user' and pass='$pass'";
Asimismo comprueba que pasas los datos por post(que supongo que si pues antes funcionaba.
Es decir el código seria:
<?php
$user=$_POST["user"];
$pass=$_POST["pass"];
// hacemos una conexion a la bd
$conexion = mysql_connect('nombre_host','user_host','pass_host');
// seleccionamos la Bd
mysql_select_db ("nombre_db", $conexion);
//realizamos una consulta a la bd
$query = "SELECT * FROM nombre_tabla Where user='$user' and pass='$pass'";
$rs = mysql_query($query ,$conexion);
if (mysql_num_rows($rs)!=0){
//usuario y contraseña válidos
//defino una sesion y guardo datos
session_start();
session_register("autentificado");
$autentificado = "SI";
header ("Location: miembros.html");
}else {
//si no existe le mando otra vez a la portada
header("Location: register_bad.html");
};
?>
Perdón por este nuevo despiste, es que sobre la 1 de la mañana a veces no se ven las cosas.
Respuesta
1
Aquí te va aunque lo he modificado varias cosas, se que te servirá mejor así,
<?php
// hacemos una conexion a la bd
$conexion = mysql_connect('localhost','root','');
// seleccionamos la Bd
mysql_select_db ("test", $conexion);
//realizamos una consulta a la bd
$query = mysql_query("SELECT * FROM usuarios WHERE user=".$_POST['user']." AND passs=".$_POST['pass'].";", $conexion);
//En caso hayas encriptado tu clave con md5 sino solo usa la de arriba
//$query = mysql_query("SELECT * FROM usuarios WHERE user=".$_POST['user']." AND passs=md5('".$_POST['password']."')", $conexion);
//definimos un array
$rpta = mysql_fetch_assoc($query);
//Aqui verificamos si los datos ingresados
if(mysql_num_rows($query) != 0 ) {
//usuario y contraseña válidos
//defino una sesion y guardo datos
session_start();
session_register("autentificado");
$autentificado = "SI";
header ("Location: miembros.html");
} else {
//si no existe le mando otra vez a la portada
header("Location: register_bad.html");
}
?>

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas