Ayuda con script
-
hola UJ espero esten super bien.
tengo un problema con el scrip para loguearme en la web y quisiera saber si alguien por aqui me puede ayudar.
para crear la cuenta en el server tengo este script:
$submit = $_POST['submit']; $usuario = strip_tags($_POST['username']); $password = strip_tags($_POST['password']); $confirmarpassword = strip_tags($_POST['repeatpassword']); $nombrecompleto = strip_tags($_POST['fullname']); $email = strip_tags($_POST['email']); $fecharegistro = date("y-m-d"); if ($submit) { //verificar si el usuario existe en la base de datos include('config.php'); mysql_select_db('account') or die("**Tipo de error: **".mysql_error()); $usuariocheck = mysql_query("SELECT login FROM account WHERE login='$usuario'"); $count = mysql_num_rows($usuariocheck); if ($count!=0) { die ("**El nombre de usuario ya existe!**"); } //verificar que se ingresaron todos los datos del formulario de registro if ($usuario && $password && $confirmarpassword && $nombrecompleto && $email) { //verificar que los password ingresados sean iguales if ($password==$confirmarpassword) { //verificar longitud de caracteres del usuario y nombre completo if (strlen($usuario)>16||strlen($nombrecompleto)>16) { echo "**El usuario o nombre completo es demasiado largo!**"; } else { //verificar longitud del password if (strlen ($password)>25||strlen($password)
y para loguear en la web este script:
session_start(); $username = $_POST['username']; $password = $_POST['password']; if ($username&&$password) { include('config.php'); mysql_select_db("account") or die("**Tipo de error: **".mysql_error()); $query = mysql_query("SELECT * FROM account WHERE login='$username'"); $numrows = mysql_num_rows($query); if ($numrows!=0) { while ($row = mysql_fetch_assoc($query)) { $dbusername = $row['login']; $dbpassword = $row['password']; } if ($username==$dbusername&&$password==$dbpassword) { echo(''); $_SESSION['username']=$dbusername; } else echo(''); } else echo(''); } else echo('');
Mi problema es que cuando logueo en la pagina no me reconoce el password. en loguin pongo : 123456, pero en la base de datos esa pass esta guadada como *6BB4837EB74329105EE4568DDA7DC67ED2CA2AD9.
espero se entienda y que alguien me pueda ayudar y de paso quedan los script a dispocicion de los amigos de UJ.
-
Hola, mira, te comento, en el login tienes un fallo de los gordos, fijate bien la contraseña como lo comparas, tu mismo lo has dicho->
Contraseña enviada a la mysql -> 123456
Contraseña que recibes de la mysql -> *6BB4837EB74329105EE4568DDA7DC67ED2CA2AD9if ($username==$dbusername&&$password==$dbpassword){}
Como ves, no son las mismas, y tu lo que estas haciendo es comparar si son iguales las 2. Siempre te va a dar el error "/errores/error3.php"
Te voy a dejar un login aqui, echo por mi, eso si, adaptalo al tuyo.
session_start();
if ($_POST['submit'])
{
if($_POST['username'] && $_POST['password'])
{
$dbname = "account";
mysql_connect($dbhost, $dbuser, $dbpw) or die('No se ha podido conectar a MySQL');
mysql_select_db($dbname) or die('No se ha podido seleccionar la Base de Datos');
$username = mysql_real_escape_string($_POST['username']);
$password = mysql_real_escape_string($_POST['password']);
$check = 'SELECT * FROM account WHERE login = "'.$username.'" AND password = PASSWORD("'.$password.'")';
$query = mysql_query($check);
$num = mysql_num_rows($query);
if($num > 0)
{
$row = mysql_fetch_object($query);
$_SESSION['id'] = $row->login;
echo 'error';
}
else
echo 'error';
}
else
echo 'error';
}?>
-
gracias bro voy a probar complementar mi script con el tuyo. el error si es gordo y estaba conciente de ello, pero no encontraba forma de encriptar el password incresado en formulario de login.
mirando tu script me doy cuenta que estube muy serca de solucionarlo.
muchas gracias bro.