Foro de elhacker.net

Programación => Desarrollo Web => Mensaje iniciado por: Runex en 4 Mayo 2012, 13:34 pm



Título: Problema panel de logueo
Publicado por: Runex en 4 Mayo 2012, 13:34 pm
Buenas compañeros, me ha surgido otro error, el caso, es que quiero realizar un panel de logueo y si el usuario existe crear una cookie con sus datos, de lo contrario que salte un script diciendo que no existe el usuario.

He hecho esto:
Código
  1. <?php
  2. $usuario = $_POST["user"];
  3. $pasword = $_POST["pass"];
  4. $consultados = 0;
  5. $conect = mysql_connect("***","***","***") or die("Problemas en la db");
  6. mysql_select_db("****") or die("Problemas en a tabla");
  7. $consulta = mysql_query("select nombre,password from usuarios where nombre='$usuario' and password='$password'") or die("Problemas en la consulta");
  8. while($reg = mysql_fetch_array($consulta))
  9. {
  10. $consultados = $consultados + 1;
  11. if($reg['nombre']=$usuario and $reg['password']=$password)
  12. {
  13. setcookie("Usuario",$usuario);
  14. }
  15. else
  16. {
  17. ?>
  18. <script type="text/javascript" >
  19. alert("No existe el usuario");
  20. </script>
  21. <?php
  22. }
  23. }
  24.  
  25. ?>

Sin embargo no me reconoce nada, ni llega a saltar script, ni crea la cookie.
Encontráis algún error lógico? :S

Gracias :)


Título: Re: Problema panel de logueo
Publicado por: 0x5d en 4 Mayo 2012, 17:28 pm
Pues el error más lógico que veo es en los condicionales...
Código
  1. $reg['nombre']=$usuario and $reg['password']=$password
  2.  
Es con doble "==" ... al menos cuando programo en PHP lo hago así :O

Saludos, Javier


Título: Re: Problema panel de logueo
Publicado por: Runex en 4 Mayo 2012, 17:38 pm
Pues el error más lógico que veo es en los condicionales...
Código
  1. $reg['nombre']=$usuario and $reg['password']=$password
  2.  
Es con doble "==" ... al menos cuando programo en PHP lo hago así :O

Saludos, Javier

Nah, también lo probé, de hecho lo tenia puesto con doble y al ver que no me funcionaba los cambie a simples, pero nada tampoco..

EDIT:
Código
  1. <?php
  2. $usuario = $_POST["user"];
  3. $pasword = $_POST["pass"];
  4. $consultados = 0;
  5. $conect = mysql_connect("**","***","**") or die("Problemas en la db");
  6. mysql_select_db("**") or die("Problemas en a tabla");
  7. $consulta = mysql_query("select nombre,password from usuarios where nombre='$usuario'") or die("Problemas en la consulta");
  8. while($reg = mysql_fetch_array($consulta))
  9. {
  10.  
  11. if($reg['nombre']==$usuario and $reg['password']==$password)
  12. {
  13. ?>
  14. <script type="text/javascript">
  15. alert("No existe el usuario");
  16. </script>
  17. <?php
  18. }
  19. else
  20. {
  21. setcookie("Usuario",$usuario);
  22. }
  23. }
  24.  
  25.  
  26. ?>

Quitando una parte de la consulta, y cambiando lo que estaba en el if por lo que estaba en el else, consigue crear la cookie, pero en caso de que no exista el usuario, no salta ningún script...
Un saludo


Título: Re: Problema panel de logueo
Publicado por: 0x5d en 4 Mayo 2012, 18:20 pm
Ahora que miro bien, "and" debes cambiarlo po &&


Título: Re: Problema panel de logueo
Publicado por: Runex en 4 Mayo 2012, 18:51 pm
Ahora que miro bien, "and" debes cambiarlo po &&

Nah ese no es el problema, ya lo he solucionado, && hace la misma funcion que and y || que or,
el problema estaba en el nombre de la variable. La había definido como $pasword, cuando la comparación y la consulta la realizaba con $password.

Un saludo y gracias 0x5d  ;-)


Título: Re: Problema panel de logueo
Publicado por: p1r4t0s en 10 Mayo 2012, 22:15 pm
jajaja eso me ha pasado un par de veces.