Foro de elhacker.net

Programación => PHP => Mensaje iniciado por: Pazador en 16 Junio 2009, 04:08 am



Título: Ayudenme a comprobar pass de los usuarios (soy aprendiz)
Publicado por: Pazador en 16 Junio 2009, 04:08 am
Hola a todos soy nuevo y a la vez aprendiz en PHP  :-[

intento practicar haciendo un sistema con logueo de usuarios, hice casi todo pero el problema esque no se como comprobar el password de un usuario hacia la DB, mi script es el sgte:
Código
  1. <html>
  2. <head>
  3. <title>usuarios :D</title>
  4. </head>
  5. <body><div align="center">
  6. <form method="post" action="<?php $_SERVER['PHP_SELF']; ?>">
  7. Nombre: <input type="text" name="nombre" /><br />
  8. Clave: <input type="password" name="pass" /><br />
  9. <input type="submit" value="Enviar" /> <input type="reset" value="Cancelar" />
  10. </form>
  11. <?php
  12. extract($_REQUEST);
  13. if(isset($nombre) && isset($pass)){
  14. //conectamos
  15. $cn=mysql_connect("localhost","root","123")or die("No se puede conectar a la DB");
  16. mysql_select_db("libro",$cn)or die("No se encuentra la DB");
  17.  
  18. if($nombre==mysql_query("SELECT usuario FROM users WHERE usuario='$nombre'") && $pass==mysql_query("SELECT usuario FROM users WHERE pass='$pass'")){
  19. $_SESSION['si'] ='entraste';
  20. header("Location: adm_mensajes.php");
  21. }
  22. else{
  23. echo "<font color=red>Usuario o Clave incorrecto</font>";
  24. }
  25. }
  26. ?>
  27. </div>
  28. </body>
  29. </html>

lo que me falta es comprobar el nombre y el password que sean correctos a los de la bd del usuario, intente hacer esto porque fue lo primero que se me ocurrio   :-(
Código
  1. if($nombre==mysql_query("SELECT usuario FROM users WHERE usuario='$nombre'") && $pass==mysql_query("SELECT usuario FROM users WHERE pass='$pass'"))
y al parecer no funciona alguien podria darme una mano  :laugh:
por si les sirve de algo mis tablas son estas  :P
Código
  1. CREATE TABLE users(
  2. id INT(11) AUTO_INCREMENT PRIMARY KEY NOT NULL,
  3. usuario CHAR(30) NOT NULL,
  4. pass CHAR(20) NOT NULL
  5. );
hasta aqui termina mi primera pregunta  :rolleyes:

la segunda duda que tengo y no tengo idea de como se hace... resulta que quiero editar los mensajes de un libro de visitas que intento hacer, logre poder editar dichos mensajes creando una interfaz grafica de un admin pero mi gran problema esque yo quiero que.. cada vez que quiera editar un mensaje, el mensaje antiguo se muestre en los campos de texto del formulario para editarlo osea como cuando editas un post, el texto sigue ahi y listo para corregirlo, logre poder hacer que se editen los mensajes pero, cuando se edita no aparece el mensaje que estaba  :-(  mi codigo es este:

Código
  1. <?php
  2. if(!isset($_SESSION['si']) || $_SESSION['si']!='entraste'){
  3. header("Location: admin.php");
  4. exit();
  5. }
  6. ?>
  7. <html>
  8. <head>
  9. <title>editor del admin :D</title>
  10. </head>
  11.  
  12. <body>
  13. <?php
  14. $cn=mysql_connect("localhost","root","123") or die ("No se pudo conectar a la DB");
  15. mysql_select_db("libro",$cn)or die(mysql_error());
  16.  
  17. extract($_REQUEST);
  18. if (isset($action) && $action="editar"){
  19. @ $modifica=mysql_query("update mensajes set nombre='$nombre',tema='$tema',mensaje='$mensaje' where id='$id'");
  20. }
  21. echo "<a href=\"mensajes.php\">Regresar</a>";
  22. ?>
  23. <form action="<?php $_SERVER['PHP_SELF']; ?>" method="post">
  24. Nombre: <input type="text" name="nombre" /><br />
  25. Tema: <input type="text" name="tema" /><br />
  26. Mensaje: <br /><textarea name="mensaje" cols="30" rows="5"></textarea><br />
  27. <input type="submit" value="Enviar" /> <input type="reset" />
  28. </form>
  29.  
  30. </body>
  31. </html>
  32.  
aqui si estoy completamente seguro que logre que edite los mensajes de la peor manera que se pueda hacer  :xD recuerden que estoy aprendiendo PHP  :laugh:
espero respuestas y mejor aun... ayuda  ;-)


Título: Re: Ayudenme a comprobar pass de los usuarios (soy aprendiz)
Publicado por: Erik# en 16 Junio 2009, 21:28 pm
Código
  1. $query = mysql_query("SELECT * FROM `users` WHERE usuario='$_POST[usuario]'");
  2. $datos = mysql_fetch_array($query);
  3. if($datos['password'] == $_POST['contrasena']){
  4. // contenido
  5. }else{
  6. // contenido erroneo
  7. }

Prueba haber :)


Título: Re: Ayudenme a comprobar pass de los usuarios (soy aprendiz)
Publicado por: Pazador en 17 Junio 2009, 02:22 am
Código
  1. $query = mysql_query("SELECT * FROM `users` WHERE usuario='$_POST[usuario]'");
  2. $datos = mysql_fetch_array($query);
  3. if($datos['password'] == $_POST['contraseña']){
  4. // contenido
  5. }else{
  6. // contenido erroneo
  7. }

Prueba haber :)

gracias por responder, intente hacerlo como dices pero tengo el mismo problema  :-\ se que deberia funcionar pero no se porque no funciona  :-(