Foros del Web » Programando para Internet » PHP »

iniciar sesion "mejorar el codigo" y reparar AYUDA!!

Estas en el tema de iniciar sesion "mejorar el codigo" y reparar AYUDA!! en el foro de PHP en Foros del Web. Hola quiero ayuda de parte de ustedes para un sistema de inicio de session en una pagina que estoy realizando pero aqui es el dilema ...
  #1 (permalink)  
Antiguo 25/05/2010, 10:43
 
Fecha de Ingreso: mayo-2010
Mensajes: 39
Antigüedad: 13 años, 11 meses
Puntos: 0
iniciar sesion "mejorar el codigo" y reparar AYUDA!!

Hola quiero ayuda de parte de ustedes para un sistema de inicio de session en una pagina que estoy realizando pero aqui es el dilema me aparece el siguiente mensaje cuando llego a la ventana comprueba :(

no se ejecuto la consulta
Warning: mysql_num_rows(): supplied argument is not a valid MySQL result resource in C:\AppServ\www\quien_debe\comprueba.php on line 18
Login o Password Incorrectos

de echo los reviso en phpmyadmin la consulta y aparece que esta bn ...

Código PHP:
<?php
session_start
();
// modificacion de codigo Xombra (www.xombra.com) 21/03/2009 para sectorweb.net
    
include("conexion.php");
    
$login htmlspecialchars(trim($_POST['nick']));
    
$pass sha1(md5(trim($_POST['pass']))); // encriptamos en MD5 para despues comprar (Modificado)



    
$query mysql_query("SELECT *
                       FROM mydb.usuario WHERE usuario.nick='%s' && usuario.password = '%s'"
);
        if (
$result=    mysql_query($query$con)){
        echo 
"se realizo la consulta";
}else{
echo 
"no se ejecuto la consulta";
}
      
// if(mysql_num_rows($result)==0){ // antes
      
if(mysql_num_rows($result)){ // nos devuelve 1 si encontro el usuario y el password

        
$array=mysql_fetch_array($result);
         
//  if($array["password"]==crypt($pass,"semilla") ){ // Antes

/* Comprobamos que el password encriptado en la BD coincide con el password que nos han dado al encriptarlo. Recuerda usar semilla para encriptar los dos passwords. */
         
$_SESSION["nick"]=$array["nick"];
         
$_SESSION["correo"]=$array["correo"]; // Agrgado Nuevo
         
header("Location:inicio1.php");
       }  else {
         echo 
"Login o Password Incorrectos";  // Ahora
      
}

?>

gracias por adelantado :D
  #2 (permalink)  
Antiguo 25/05/2010, 10:46
Avatar de abimaelrc
Colaborador
 
Fecha de Ingreso: mayo-2009
Ubicación: En el planeta de Puerto Rico
Mensajes: 14.734
Antigüedad: 14 años, 11 meses
Puntos: 1517
Respuesta: iniciar sesion "mejorar el codigo" y reparar AYUDA!!

El error te dice que esta esperando un recurso y no le estás brindando lo que te pidió. Este error es muchas veces por algún error en el query. Te recomiendo que depures tu consulta y verifiques si hay algún error en ella
Código PHP:
Ver original
  1. mysql_query('aqui va tu consulta') or die(mysql_error());
__________________
Verifica antes de preguntar.
Los verdaderos amigos se hieren con la verdad, para no perderlos con la mentira. - Eugenio Maria de Hostos
  #3 (permalink)  
Antiguo 25/05/2010, 12:33
 
Fecha de Ingreso: mayo-2010
Mensajes: 39
Antigüedad: 13 años, 11 meses
Puntos: 0
Respuesta: iniciar sesion "mejorar el codigo" y reparar AYUDA!!

eso lo puse pero en la parte donde dice if(mysql_num_rows($result)){
eso me sale error segun lo que puse anteriormente si alguien me puede echar una mano o un ejemeplo mejor para este caso seria estupendo

saludos
  #4 (permalink)  
Antiguo 25/05/2010, 13:30
Avatar de eZakto  
Fecha de Ingreso: julio-2008
Mensajes: 214
Antigüedad: 15 años, 9 meses
Puntos: 5
Respuesta: iniciar sesion "mejorar el codigo" y reparar AYUDA!!

Intenta cambiando && por AND :/
No deberías reemplazar %s por {$login} y {$pass} en la consulta?
  #5 (permalink)  
Antiguo 26/05/2010, 13:29
 
Fecha de Ingreso: mayo-2010
Mensajes: 39
Antigüedad: 13 años, 11 meses
Puntos: 0
Respuesta: iniciar sesion "mejorar el codigo" y reparar AYUDA!!

probaremos

alguien tiene un link de inicio de session pa copiar el codigo :( ?
  #6 (permalink)  
Antiguo 26/05/2010, 13:46
Avatar de bNd170  
Fecha de Ingreso: agosto-2009
Ubicación: $this->setLocation('Valencia', 'Spain');
Mensajes: 365
Antigüedad: 14 años, 7 meses
Puntos: 13
Respuesta: iniciar sesion "mejorar el codigo" y reparar AYUDA!!

Para hacer un login:
Código PHP:
Ver original
  1. $user = trim($_REQUEST[user]);
  2. // Encriptamos la contraseña
  3. $pwd = md5($_REQUEST[pwd];
  4.  
  5. // Creamos consulta SQL
  6. $sql = mysql_query("SELECT * FROM tabla WHERE nick = '$user'");
  7. // Comprobamos que haya un registro con el nick escrito por el usuario
  8. $existe = mysql_num_rows($sql);
  9. // Si hay mas de 0 registros...
  10. if($existe>0) {
  11.   // Sacamos la contraseña para compararla con la escrita por el usuario
  12.   $comprueba = mysql_fetch_assoc($sql);
  13.   // Si coinciden inicializamos una varialbe de sesion que se usará para saber si se ha logueado o no
  14.   if($comprueba[pwd] == $pwd)
  15.     $_SESSION[login]=$user;
  16.   else
  17.     // Si no coinciden mandamos al usuario al login indicandole el error.
  18.     header("Location: login.php?error=1");
  19. }

Espero que te sirva.
  #7 (permalink)  
Antiguo 26/05/2010, 13:56
 
Fecha de Ingreso: mayo-2010
Mensajes: 39
Antigüedad: 13 años, 11 meses
Puntos: 0
Respuesta: iniciar sesion "mejorar el codigo" y reparar AYUDA!!

Cita:
Iniciado por bNd170 Ver Mensaje
Para hacer un login:
Código PHP:
Ver original
  1. $user = trim($_REQUEST[user]);
  2. // Encriptamos la contraseña
  3. $pwd = md5($_REQUEST[pwd];
  4.  
  5. // Creamos consulta SQL
  6. $sql = mysql_query("SELECT * FROM tabla WHERE nick = '$user'");
  7. // Comprobamos que haya un registro con el nick escrito por el usuario
  8. $existe = mysql_num_rows($sql);
  9. // Si hay mas de 0 registros...
  10. if($existe>0) {
  11.   // Sacamos la contraseña para compararla con la escrita por el usuario
  12.   $comprueba = mysql_fetch_assoc($sql);
  13.   // Si coinciden inicializamos una varialbe de sesion que se usará para saber si se ha logueado o no
  14.   if($comprueba[pwd] == $pwd)
  15.     $_SESSION[login]=$user;
  16.   else
  17.     // Si no coinciden mandamos al usuario al login indicandole el error.
  18.     header("Location: login.php?error=1");
  19. }

Espero que te sirva.
gracias :D eso era lo que queria :D
  #8 (permalink)  
Antiguo 26/05/2010, 14:00
 
Fecha de Ingreso: diciembre-2008
Mensajes: 102
Antigüedad: 15 años, 4 meses
Puntos: 1
Respuesta: iniciar sesion "mejorar el codigo" y reparar AYUDA!!

Prueba haciendo algo asi

Código PHP:
<?php
$user
=trim($_POST['user']);
$pass=md5($_POST['pwd']);

if(
$user!="" and $pass!="" and $info=mysql_query("select * usuarios where usuario ='".$user."' and pass='".$pass."'")){

// Aqui ejecutas el registro de sessiones y la correspondiente redireccion

}else{
echo 
'Error en el Usuario o El Password';
}
?>
Espero que te sea de ayuda
__________________
█ Luis Toscano - CodeMaster
Codigolandia.com
Foros Del Hosting
  #9 (permalink)  
Antiguo 26/05/2010, 14:16
Avatar de bNd170  
Fecha de Ingreso: agosto-2009
Ubicación: $this->setLocation('Valencia', 'Spain');
Mensajes: 365
Antigüedad: 14 años, 7 meses
Puntos: 13
Respuesta: iniciar sesion "mejorar el codigo" y reparar AYUDA!!

Cita:
Iniciado por talcualvip Ver Mensaje
Prueba haciendo algo asi

Código PHP:
<?php
$user
=trim($_POST['user']);
$pass=md5($_POST['pwd']);

if(
$user!="" and $pass!="" and $info=mysql_query("select * usuarios where usuario ='".$user."' and pass='".$pass."'")){

// Aqui ejecutas el registro de sessiones y la correspondiente redireccion

}else{
echo 
'Error en el Usuario o El Password';
}
?>
Espero que te sea de ayuda
Yo las comprobaciones de si los textbox van vacios las haria del lado del cliente mediante JS, me parece absurdo enviar datos vacios al servidor y que encima tenga que procesarlos.
  #10 (permalink)  
Antiguo 26/05/2010, 14:21
 
Fecha de Ingreso: mayo-2010
Mensajes: 39
Antigüedad: 13 años, 11 meses
Puntos: 0
Cita:
Iniciado por bNd170 Ver Mensaje
Yo las comprobaciones de si los textbox van vacios las haria del lado del cliente mediante JS, me parece absurdo enviar datos vacios al servidor y que encima tenga que procesarlos.
las comprobacion io tambn las hago con javascript probare el codigo ya que el anterior viene con fallas :(

Cita:
Iniciado por dluxox_ Ver Mensaje
gracias :D eso era lo que queria :D
esta malo el codigo este viendolo asi ahi dos if uno abajo de otro... eso esta malo verdad? un parentesis arriba e iwal no me funka :(

Cita:
Iniciado por bNd170 Ver Mensaje
Para hacer un login:
Código PHP:
Ver original
  1. $user = trim($_REQUEST[user]);
  2. // Encriptamos la contraseña
  3. $pwd = md5($_REQUEST[pwd];
  4.  
  5. // Creamos consulta SQL
  6. $sql = mysql_query("SELECT * FROM tabla WHERE nick = '$user'");
  7. // Comprobamos que haya un registro con el nick escrito por el usuario
  8. $existe = mysql_num_rows($sql);
  9. // Si hay mas de 0 registros...
  10. if($existe>0) {
  11.   // Sacamos la contraseña para compararla con la escrita por el usuario
  12.   $comprueba = mysql_fetch_assoc($sql);
  13.   // Si coinciden inicializamos una varialbe de sesion que se usará para saber si se ha logueado o no
  14.   if($comprueba[pwd] == $pwd)
  15.     $_SESSION[login]=$user;
  16.   else
  17.     // Si no coinciden mandamos al usuario al login indicandole el error.
  18.     header("Location: login.php?error=1");
  19. }

Espero que te sirva.
este sera :/ AYUDA

Última edición por GatorV; 26/05/2010 a las 16:06

Etiquetas: Ninguno
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 19:34.