Ver Mensaje Individual
  #4 (permalink)  
Antiguo 02/06/2009, 14:55
Avatar de Ronruby
Ronruby
 
Fecha de Ingreso: julio-2008
Ubicación: 18°30'N, 69°59'W
Mensajes: 4.879
Antigüedad: 15 años, 9 meses
Puntos: 416
Respuesta: recuperar contraseña olvidada

Eso te dice que hay un error en la consulta:
$res=mysql_query("SELECT username,password FROM usuarios WHERE username='$username',password='$random'");

Pones:
username='$username',password='$random'
Debes poner AND.
username='$username' AND password='$random'

Cita:
¿ Este código os parece correcto ?
No, no se filtran las variables que provienen de formulario. Eso es un gran riesgo ya que tu sistema es vulnerable a ataques de Inyeccion SQL. Tambien, algo que veo extremadamente INNECESARIO es:

Código php:
Ver original
  1. $res=mysql_query("SELECT username FROM usuarios WHERE username='$username'");
  2.  
  3.  
  4. if (mysql_num_rows($res)==0) {
  5.  
  6. // Si no existe, datos incorrectos y fin del proceso y volvemos al formulario de recuperacion
  7.  
  8. echo "Email no existe en la base de datos.";
  9.  
  10. }
  11.  
  12. else {
  13.  
  14. // Si existe, buscamos en la bd
  15.  
  16. $res=mysql_query("SELECT username,password FROM usuarios WHERE username='$username',password='$random'");
  17. $row=mysql_fetch_assoc($res);

¿Para que hacer 2 consultas? Si la 2da te puede decir si hubieron resultados o no.

Declaras la variable $random despues de usarla en una consulta.

El codigo esta mal en cuanto a logica (MUY MAL).

Yo digo que lo rehagas desde 0, pero antes, tomes un lapiz y un papel y pienses bien la logica de tu aplicacion. Te aseguro que si lo haces duraras menos tiempo escribiendo codigo y debbugeando.