Foros del Web » Programando para Internet » PHP »

Problemas con el login

Estas en el tema de Problemas con el login en el foro de PHP en Foros del Web. Saludos a todos, tengo el siguiente codigo en mi archivo login.php: @import url("http://static.forosdelweb.com/clientscript/vbulletin_css/geshi.css"); Código PHP: Ver original <? session_start ( ) ; if ( isset ...
  #1 (permalink)  
Antiguo 07/01/2010, 16:11
 
Fecha de Ingreso: diciembre-2009
Mensajes: 128
Antigüedad: 14 años, 3 meses
Puntos: 0
Problemas con el login

Saludos a todos, tengo el siguiente codigo en mi archivo login.php:

Código PHP:
Ver original
  1. <?
  2. if(isset($SESSION)){
  3. header("location:inicio.php"); /* Si ha iniciado la sesion, vamos a user.php */
  4. } else {
  5. /* Cerramos la parte de codigo PHP porque vamos a escribir bastante HTML y nos será mas cómodo así que metiendo echo's */
  6. ?>
  7. <html><head><title>Necesita identificación! </title></head>
  8. <body>
  9. <center><h1>Identificate! :D </h1></center>
  10.  
  11. <div align="center">
  12.   <table width="100%" border="0" cellspacing="3" cellpadding="0">
  13.     <tr>
  14.       <td width="50%" valign="top"><table width="100%" height="100%" border="1" cellpadding="6" cellspacing="0" bordercolor="#000000" bgcolor="#FFFFFF" class="contentarea1">
  15.         <tr>
  16.           <td valign="top"><div align="center">
  17.            <form action="comprueba.php" method="POST">
  18.               <table width="100%" border="0" cellspacing="3" cellpadding="0">
  19.                 <tr>
  20.                   <td width="50%" valign="top"><table width="100%" border="0" cellspacing="3" cellpadding="3">
  21.                      <tr>
  22.                         <td width="50%" align="right" bgcolor="#eeeeee"><strong>Login:</strong></td>
  23.                         <td width="50%" bgcolor="#eeeeee"><input name="login" type="text" size="30" /></td>
  24.                       </tr>
  25.                       <tr>
  26.                         <td width="50%" align="right" bgcolor="#eeeeee"><strong>Password:</strong></td>
  27.                         <td width="50%" bgcolor="#eeeeee"><input name="pass" type="password" size="30" /></td>
  28.                       </tr>
  29.                       </table></td>
  30.                 </tr>
  31.               </table>
  32. <input type="submit" value="Entrar">
  33. </div></td>
  34.         </tr>
  35.       </table></td>
  36.       </tr>
  37.   </table>
  38.  
  39.   </form>
  40.   </div>
  41. </body></html>
  42. <?
  43. } /* Y cerramos el else */
  44. ?>

y el siguiente es el que me comprueba si existe el login y el password en la tabla de usuarios:
Código PHP:
Ver original
  1. <?php
  2. $handle = fopen("conf.csv", "r");
  3. while (($data = fgetcsv($handle, 1000, ";")) !== FALSE) {
  4.         $ubicacion=$data[0];
  5.         $usuario=$data[1];
  6.         $contraseña=$data[2];
  7.         $base=$data[3];
  8.  
  9. }
  10. fclose($handle);
  11. $login=$_POST['login'];
  12.  
  13. /**/
  14. $server="$ubicacion"; /* Nuestro server mysql */
  15. $database="$base"; /* Nuestra base de datos */
  16. $dbpass="$contraseña"; /*Nuestro password mysql */
  17. $dbuser="$usuario"; /* Nuestro user mysql */
  18. $query="SELECT * FROM usuarios WHERE login='$login'";
  19. $link=mysql_connect($server,$dbuser,$dbpass);
  20. $result=mysql_db_query($database,$query,$link);
  21. if(mysql_num_rows($result)==0){
  22. echo "No existe el login introducido";
  23.  
  24. echo '<form name="form2" method="post" action="login.php">
  25. <input type="submit" name="Submit" value="LOGIN"  />
  26. </form>';
  27.  
  28. } else {
  29. $array=mysql_fetch_array($result);
  30.  
  31. if($array["password"]==crypt($pass,"gasolina") ){
  32. /* Comprobamos que el password encriptado en la BD coincide con el password que nos han dado al encriptarlo. Recuerda usar la misma semilla para encriptar los dos passwords. */
  33. $SESSION["login"]=$login;
  34. $SESSION["nombre"]=$array["nombre"];
  35. $SESSION["materno"]=$array["materno"];
  36. $SESSION["paterno"]=$array["paterno"];
  37. $SESSION["permiso"]=$array["permiso"];
  38. $SESSION["identificador"]=$array["identificador"];
  39. session_register("SESSION");
  40. header("location:inicio.php");
  41. } else {
  42. echo "Password incorrecto!";
  43. echo '<form name="form3" method="post" action="login.php">
  44. <input type="submit" name="Submit" value="LOGIN"  />
  45. </form>';
  46. } /* Cerramos este ultimo else */
  47. } /* Cerramos el else que corresponde a la comprobación de que el login existe */?>

El problema de esto es que cuando lo hice local corria muy bien, uso Appserv, pero cuando lo subi a un host que contrate: RIO SERVER, ya no funciona, si me encuentra en la tabla de usuarios el login, pero el pass ya no y no hace masque mandarme el ultimo mensaje de "Password incorrecto". Espero que alguien me pueda ayudar, gracias de antemano y saludos a todos.
  #2 (permalink)  
Antiguo 07/01/2010, 16:22
Avatar de xalupeao  
Fecha de Ingreso: mayo-2008
Ubicación: Santiago, Chile
Mensajes: 749
Antigüedad: 15 años, 11 meses
Puntos: 12
Respuesta: Problemas con el login

pero $pass de en donde la obtienes ?
  #3 (permalink)  
Antiguo 07/01/2010, 16:25
 
Fecha de Ingreso: diciembre-2009
Mensajes: 128
Antigüedad: 14 años, 3 meses
Puntos: 0
Respuesta: Problemas con el login

donde deberia de poner el $pass=$_POST['pass']; ?
  #4 (permalink)  
Antiguo 07/01/2010, 16:26
Avatar de xalupeao  
Fecha de Ingreso: mayo-2008
Ubicación: Santiago, Chile
Mensajes: 749
Antigüedad: 15 años, 11 meses
Puntos: 12
Respuesta: Problemas con el login

creo si ya que en ningun momento $pass adquiere valor.
  #5 (permalink)  
Antiguo 07/01/2010, 16:26
Avatar de LuZBinG  
Fecha de Ingreso: enero-2008
Mensajes: 407
Antigüedad: 16 años, 3 meses
Puntos: 5
Respuesta: Problemas con el login

en la linea 32 pass siempre va hacer gasolina??? no entiendo
__________________
LuZbIng
  #6 (permalink)  
Antiguo 07/01/2010, 16:29
 
Fecha de Ingreso: diciembre-2009
Mensajes: 128
Antigüedad: 14 años, 3 meses
Puntos: 0
Respuesta: Problemas con el login

xalupeao: ok, y donde cacho el valor de pass? justo despues de donde cacho el valor de login?
LuZBinG: ahi es donde encripto el pass con la palabra gasolina para que lo compare con el password almacenaod en la tabla.

Gracias:
  #7 (permalink)  
Antiguo 07/01/2010, 16:37
Avatar de LuZBinG  
Fecha de Ingreso: enero-2008
Mensajes: 407
Antigüedad: 16 años, 3 meses
Puntos: 5
Respuesta: Problemas con el login

orale en tonces como dice xalupea

seria a si
$login=$_POST['login'];
$pass=$_POST['pass'];

/**/$server="$ubicacion"; /* Nuestro server mysql */$database="$base"; /* Nuestra base de datos */$dbpass="$contraseña"; /*Nuestro password mysql */$dbuser="$usuario"; /* Nuestro user mysql */$query="SELECT * FROM usuarios WHERE login='$login'";


ademas tendrias que modificar la consulta
SELECT * FROM usuarios WHERE login='$login' and pass='$pass'
__________________
LuZbIng
  #8 (permalink)  
Antiguo 07/01/2010, 16:43
 
Fecha de Ingreso: diciembre-2009
Mensajes: 128
Antigüedad: 14 años, 3 meses
Puntos: 0
Respuesta: Problemas con el login

ya lo hice y ni asi, si le pongo el $pass=$_POST['pass']; me manda de regreso a la pagina de login y si tambien le cambio la consulta en el select me aparece el emnsaje de "No existe el login introducido" osea que el problema esta cuando cacha ese valor no? alguna otra idea amigo de como seria? gracias por el apoyo.
  #9 (permalink)  
Antiguo 07/01/2010, 17:31
Avatar de LuZBinG  
Fecha de Ingreso: enero-2008
Mensajes: 407
Antigüedad: 16 años, 3 meses
Puntos: 5
Respuesta: Problemas con el login

que valor tienes en la bd usuarios en el campo password
segun yo debe de ser: gaibPhcT4TKbo que es gasolina encriptado
__________________
LuZbIng
  #10 (permalink)  
Antiguo 08/01/2010, 09:24
 
Fecha de Ingreso: diciembre-2009
Mensajes: 128
Antigüedad: 14 años, 3 meses
Puntos: 0
Respuesta: Problemas con el login

hola buenos dias, LuzBinG: ya hice cambios a mi codigo, a continuacion te muetro mi login:

Código HTML:
Ver original
  1. <?
  2. session_start();
  3. if(isset($SESSION)){
  4. header("location:inicio.php"); /* Si ha iniciado la sesion, vamos a user.php */
  5. } else {
  6. /* Cerramos la parte de codigo PHP porque vamos a escribir bastante HTML y nos ser&#225; mas c&#243;modo as&#237; que metiendo echo's */
  7. ?>
  8. <html><head><title>Necesita identificación! </title></head>
  9. <center><h1>Identificate! :D </h1></center>
  10.  
  11. <div align="center">
  12.   <table width="100%" border="0" cellspacing="3" cellpadding="0">
  13.     <tr>
  14.       <td width="50%" valign="top"><table width="100%" height="100%" border="1" cellpadding="6" cellspacing="0" bordercolor="#000000" bgcolor="#FFFFFF" class="contentarea1">
  15.         <tr>
  16.           <td valign="top"><div align="center">
  17.            <form action="comprueba.php" method="POST">
  18.               <table width="100%" border="0" cellspacing="3" cellpadding="0">
  19.                 <tr>
  20.                   <td width="50%" valign="top"><table width="100%" border="0" cellspacing="3" cellpadding="3">
  21.                      <tr>
  22.                         <td width="50%" align="right" bgcolor="#eeeeee"><strong>Login:</strong></td>
  23.                         <td width="50%" bgcolor="#eeeeee"><input name="login" type="text" size="30" /></td>
  24.                       </tr>
  25.                       <tr>
  26.                         <td width="50%" align="right" bgcolor="#eeeeee"><strong>Password:</strong></td>
  27.                         <td width="50%" bgcolor="#eeeeee"><input name="pass" type="password" size="30" /></td>
  28.                       </tr>
  29.                       </table></td>
  30.                 </tr>
  31.               </table>
  32. <input type="submit" value="Entrar">
  33. </div></td>
  34.         </tr>
  35.       </table></td>
  36.       </tr>
  37.   </table>
  38.  
  39.   </form>
  40.   </div>
  41. </body></html>
  42. <?
  43. } /* Y cerramos el else */
  44. ?>

y ahor mi archivo comprueba

Código HTML:
Ver original
  1. <?php
  2. session_start();
  3. $handle = fopen("conf.csv", "r");
  4. while (($data = fgetcsv($handle, 1000, ";")) !== FALSE) {
  5.        $ubicacion=$data[0];
  6.        $usuario=$data[1];
  7.        $contrase&#241;a=$data[2];
  8.        $base=$data[3];
  9.  
  10. }
  11. fclose($handle);
  12. $login=$_POST['login'];
  13. $pass=$_POST['pass'];
  14. $server="$ubicacion"; /* Nuestro server mysql */
  15. $database="$base"; /* Nuestra base de datos */
  16. $dbpass="$contraseña"; /*Nuestro password mysql */
  17. $dbuser="$usuario"; /* Nuestro user mysql */
  18. $query="SELECT * FROM usuarios WHERE login='$login'";
  19. $link=mysql_connect($server,$dbuser,$dbpass);
  20. $result=mysql_db_query($database,$query,$link);
  21. if(mysql_num_rows($result)==0){
  22. echo $pass;
  23. echo "No existe el login introducido";
  24.  
  25. echo '<form name="form2" method="post" action="login.php">
  26. <input type="submit" name="Submit" value="LOGIN"  />
  27. </form>';
  28.  
  29. } else {
  30. $array=mysql_fetch_array($result);
  31. if($array["password"]== $pass ){
  32. /* Comprobamos que el password encriptado en la BD coincide con el password que nos han dado al encriptarlo. Recuerda usar la misma semilla para encriptar los dos passwords. */
  33. $SESSION["login"]=$login;
  34. $SESSION["nombre"]=$array["nombre"];
  35. $SESSION["materno"]=$array["materno"];
  36. $SESSION["paterno"]=$array["paterno"];
  37. $SESSION["permiso"]=$array["permiso"];
  38. $SESSION["identificador"]=$array["identificador"];
  39. session_register("SESSION");
  40. header("location:inicio.php");
  41. } else {
  42. echo $login;
  43.  echo $pass;
  44.   echo '/';
  45.    echo $array['permiso'];
  46.    echo '/';
  47.    echo $array['password'];
  48. echo "Password incorrecto!";
  49. echo '<form name="form3" method="post" action="login.php">
  50. <input type="submit" name="Submit" value="LOGIN"  />
  51. </form>';
  52. } /* Cerramos este ultimo else */
  53. } /* Cerramos el else que corresponde a la comprobación de que el login existe */?>

el problema de este codigo es que en forma local funciona muy bien, pero cuando lo subo al servidor nomas no sirve, cuando me logeo me regresa al login, y eso pasa cuando le pongo lo de $pass=$_POST['pass']; porque cuando no le pongo eso me manda al mensaje de "Password incorrecto!", osea que no esta cahcando bien el valor de pass, si te fijas ya no lo tengo ni encriptado, para ver si asi jala, pero sigue igual, gracias por tu ayuda

Etiquetas: login
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 11:38.