Título: Problema con PHP
Publicado por: Feedeex en 4 Diciembre 2010, 03:19 am
<?php include ("conexion.php"); include ("pvpgn_hash.php"); $usuario = strtolower(trim($_POST['usuario'])); $password = strtolower(pvpgn_hash(trim($_POST['password']))); if ($usuario == "" | $password == "") { die(); } else { $consulta = mysql_query("SELECT * FROM bnet where acct_username='$usuario'"); if (mysql_num_rows($consulta) > 0) { while ($row = mysql_fetch_array($consulta)) { $acct_username = $row['acct_username']; if ($acct_username == $usuario) { $acct_password = $row['acct_passhash1']; if ($acct_password == $password) { session_start(); $_SESSION['usuario'] = $usuario; $email = $row['acct_email']; $_SESSION['email'] = $email; header("Location: index.php"); } else{ header("Location: index.php?error=1"); } } else { header("Location: index.php?error=0"); } } } } Funcionar funciona bien, el problema está en que debería redireccionar: • Si el usuario no existe. • Si el pass no es correcto. • Si se produjo el login satisfactoriamente creando una sesión. Bueno, no me funciona ninguno de los 3 headers, simplemente se queda en la página en blanco.
Título: Re: Problema con PHP
Publicado por: xassiz~ en 4 Diciembre 2010, 13:57 pm
if (($usuario=="") || ($password==""))
Título: Re: Problema con PHP
Publicado por: Feedeex en 4 Diciembre 2010, 14:09 pm
Hola pablomi, ya había pensado en esa parte pero no es el problema. Sino solo haría un die(); cuando no se pone ni user ni password, y poniendo ambos igual finaliza con un die :-(
Título: Re: Problema con PHP
Publicado por: seele en 4 Diciembre 2010, 17:21 pm
a lo que se refiere pablomi es que pusiste mal el || en la comparacion, pusiste esto if ($usuario == "" | $password == "")
sobre tu problema te recomiendo empezar a debugear, empieza a poner echo o print_r dentro de cada condicional para saber donde entra y donde no saludos
Título: Re: Problema con PHP
Publicado por: Feedeex en 4 Diciembre 2010, 18:01 pm
Hola, gracias por responder. Probé así: <?php include ("conexion.php"); include ("pvpgn_hash.php"); $usuario = strtolower(trim($_POST['usuario'])); $password = strtolower(pvpgn_hash(trim($_POST['password']))); $consulta = mysql_query("SELECT * FROM bnet where acct_username='$usuario'"); if (mysql_num_rows($consulta) > 0) { while ($row = mysql_fetch_array($consulta)) { $acct_username = $row['acct_username']; if ($acct_username == $usuario) { echo "Usuario correcto."; $acct_password = $row['acct_passhash1']; if ($acct_password == $password) { echo "Contraseña correcta."; session_start(); $_SESSION['usuario'] = $usuario; $email = $row['acct_email']; $_SESSION['email'] = $email; header("Location: index.php"); } else{ echo "Contraseña incorrecta."; header("Location: index.php?error=1"); } } else { echo "Usuario incorrecto."; header("Location: index.php?error=0"); } } } Pero sigue finalizando en blanco, sin mostrar absolutamente ningún echo :huh:
Título: Re: Problema con PHP
Publicado por: xassiz~ en 4 Diciembre 2010, 18:23 pm
Podías ir haciendo caso a lo que te dijo seele, debuggea: <?php include ("conexion.php"); include ("pvpgn_hash.php"); $consulta = mysql_query("SELECT * FROM bnet where acct_username='$usuario'"); $acct_username = $row['acct_username']; if ($acct_username == $usuario) { echo "Usuario correcto."; $acct_password = $row['acct_passhash1']; if ($acct_password == $password) { echo "Contraseña correcta."; $_SESSION['usuario'] = $usuario; $email = $row['acct_email']; $_SESSION['email'] = $email; header("Location: index.php"); } else{ echo "Contraseña incorrecta."; header("Location: index.php?error=1"); } } else { echo "Usuario incorrecto."; header("Location: index.php?error=0"); } } } else die("No paso el mysql_num_rows"); ?>
Pero el caso, es que si has puesto algo en el HTML ya no podrás utilizar header(). Tienes que redireccionar de otra forma, por ejemplo, javascript.
Título: Re: Problema con PHP
Publicado por: Feedeex en 4 Diciembre 2010, 18:27 pm
Podías ir haciendo caso a lo que te dijo seele, debuggea: <?php include ("conexion.php"); include ("pvpgn_hash.php"); $consulta = mysql_query("SELECT * FROM bnet where acct_username='$usuario'"); $acct_username = $row['acct_username']; if ($acct_username == $usuario) { echo "Usuario correcto."; $acct_password = $row['acct_passhash1']; if ($acct_password == $password) { echo "Contraseña correcta."; $_SESSION['usuario'] = $usuario; $email = $row['acct_email']; $_SESSION['email'] = $email; header("Location: index.php"); } else{ echo "Contraseña incorrecta."; header("Location: index.php?error=1"); } } else { echo "Usuario incorrecto."; header("Location: index.php?error=0"); } } } else die("No paso el mysql_num_rows"); ?>
Pero el caso, es que si has puesto algo en el HTML ya no podrás utilizar header(). Tienes que redireccionar de otra forma, por ejemplo, javascript. Comprendo, pero saldría un error de PHP haciendo referencia al header. Y no es lo que sucede, porque ni siquiera llega a los headers :-\
Título: Re: Problema con PHP
Publicado por: xassiz~ en 4 Diciembre 2010, 18:32 pm
Debuggea, prueba a quitar los headers y cambia los echo por die
Título: Re: Problema con PHP
Publicado por: Feedeex en 4 Diciembre 2010, 18:46 pm
Uhmm, es muy raro esto. Debuggue así: <?php include ("conexion.php"); include ("pvpgn_hash.php"); $usuario = strtolower(trim($_POST['usuario'])); $password = strtolower(pvpgn_hash(trim($_POST['password']))); $consulta = mysql_query("SELECT * FROM bnet where acct_username='$usuario'"); if (mysql_num_rows($consulta) > 0) { while ($row = mysql_fetch_array($consulta)) { $acct_username = $row['acct_username']; if ($acct_username == $usuario) { die("Usuario incorrecto"); $acct_password = $row['acct_passhash1']; if ($acct_password == $password) { die("Contraseña correcta"); session_start(); $_SESSION['usuario'] = $usuario; $email = $row['acct_email']; $_SESSION['email'] = $email; } else{ die("Contraseña incorrecta"); } } else { die("Usuario incorrecto"); } } } Y nada sigue finalizando en blanco :rolleyes:
Título: Re: Problema con PHP
Publicado por: xassiz~ en 4 Diciembre 2010, 19:25 pm
Pon else para el primer if
Título: Re: Problema con PHP
Publicado por: seele en 4 Diciembre 2010, 19:25 pm
activa los errores de php en el php.ini
Título: Re: Problema con PHP
Publicado por: Feedeex en 4 Diciembre 2010, 19:51 pm
Gracias por las ayudas. Borré todo y lo volví a programar de 0 y ya funciona :xD
|