elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Guía actualizada para evitar que un ransomware ataque tu empresa


+  Foro de elhacker.net
|-+  Programación
| |-+  Desarrollo Web
| | |-+  PHP (Moderador: #!drvy)
| | | |-+  [Resuelto] Ayuda en inicio de sesión, ¿alguna respuesta?
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: [Resuelto] Ayuda en inicio de sesión, ¿alguna respuesta?  (Leído 2,143 veces)
uluigi

Desconectado Desconectado

Mensajes: 17


Ver Perfil WWW
[Resuelto] Ayuda en inicio de sesión, ¿alguna respuesta?
« en: 12 Julio 2015, 11:38 am »

Veréis, he creado un inicio de sesión y al iniciar me dice:
Notice: Undefined variable: username in C:\xampp\htdocs\yoursql\index.php on line 56 cuando en realidad está todo bien estructurado, os dejo el código para que le echéis un vistazo:
Código:
index.php
Código
  1. <?php
  2.  
  3. #Librería principal
  4. include_once('libraries.php');
  5.  
  6. #Conexión a la base de datos MySQLi
  7. yoursql_connect();
  8.  
  9. #Si no se ha hecho la sesión nos devolverá al formulario de 'login'
  10. if(!isset($_SESSION['username'])) {
  11. ?>
  12. <!DOCTYPE html><html>
  13. <head>
  14. <title>localhost / 127.0.0.1</title>
  15. <link rel="stylesheet" type="text/css" href="sheet/frame.css">
  16. </head><body id="yoursql">
  17. <div class="logo"></div>
  18. <div id="language" class="window">
  19. <label>Idioma de yourSQL:</label>
  20. <select id="language">
  21. <option value="es_ES">Español (España)</option>
  22. <option value="en_UK" disabled>Inglés</option>
  23. <option value="pt_BR" disabled>Portugués (Brasil)</option>
  24. </select>
  25. </div>
  26. <div id="login" class="window">
  27. <form method="post" action="system/path/login.php">
  28. <table id="table-login">
  29. <tr>
  30. <td><label for="username">Nombre de usuario:</label></td>
  31. <td><input type="text" autocomplete="off" id="username" name="username" class="i_"></td>
  32. </tr>
  33. <tr>
  34. <td><label for="passwd">Contraseña:</label></td>
  35. <td><input type="password" id="passwd" name="passwd" class="i_"></td>
  36. <tr>
  37. <td></td>
  38. </tr>
  39. </tr>
  40. <tr>
  41. <td id="rn"><a href="system/path/r.php"><input type="button" name="register" class="b_" value="Añadir cuenta"></a></td>
  42. <td id="r"><input type="submit" name="enter" class="b_" value="Acceder"></td>
  43. </tr>
  44. </table>
  45. </form>
  46. </div>
  47. <?php
  48. include_once('system/inc/footer.php');
  49. ?>
  50. </body></html>
  51. <?php
  52. exit();
  53. } else {
  54. ?>
  55. <h2>Bienvenido <?php echo $username; ?></h2>
  56. <a href="destroy.php">cerrar sesión</a>
  57. <?php } ?>
  58.  
Código:
login.php
Código
  1. <?php
  2. #Librería principal
  3. include_once('../../libraries.php');
  4.  
  5. #Conexión a la base de datos MySQLi
  6. yoursql_connect();
  7.  
  8. #Si los campos 'username' y 'passwd' están vacíos hacer esto
  9. #
  10.  
  11.  
  12. if(isset($_POST['enter']))
  13. {
  14. #Capturar datos del formulario y almacenarlo en variables
  15. $username = htmlspecialchars($_POST['username']);
  16. $passwd = md5($_POST['passwd']);
  17.  
  18. #Consulta de MySQL donde indica seleccionar de la tabla 'users' el campo que tenga de
  19. #nombre 'username' y el campo 'passwd'
  20. $query = mysql_query("SELECT * FROM users WHERE username = '$username' AND passwd = '$passwd'");
  21.  
  22. #Validar si el 'username' y 'passwd' existen en la base de datos o no
  23. if($row = mysql_fetch_array($query))
  24. {
  25. #Si 'username' y 'passwd' es correcto, entonces validar sesión
  26. if($row['username'] == $username && $row['passwd'] == $passwd)
  27. {
  28. #Crear sesión
  29.  
  30. #Almacenar 'username' en una variable de sesión
  31. $_SESSION['username'] = $username;
  32. header('Location: ../../index.php');
  33. }
  34. else if($row['username'] != $username && $row['passwd'] != $passwd)
  35. {
  36. #Si la contraseña es incorrecta hacer esto
  37. header("Location: ../../index.php");
  38. }
  39.  
  40.  
  41. #Liberar memoria empleada al realizar la consulta '$query'
  42. #Cerrar conexión con la base de datos
  43. }
  44. }
  45. ?>
  46.  
Espero algún tipo de ayuda, muchas gracias y ¡saludos!


« Última modificación: 13 Julio 2015, 05:46 am por uluigi » En línea

engel lex
Moderador Global
***
Desconectado Desconectado

Mensajes: 15.514



Ver Perfil
Re: Ayuda en inicio de sesión, ¿alguna respuesta?
« Respuesta #1 en: 12 Julio 2015, 16:47 pm »

Si el error es el primero, es porque allí no definiste username, es decir, nunca salio de la variable de sesión a una variable propia


En línea

El problema con la sociedad actualmente radica en que todos creen que tienen el derecho de tener una opinión, y que esa opinión sea validada por todos, cuando lo correcto es que todos tengan derecho a una opinión, siempre y cuando esa opinión pueda ser ignorada, cuestionada, e incluso ser sujeta a burla, particularmente cuando no tiene sentido alguno.
uluigi

Desconectado Desconectado

Mensajes: 17


Ver Perfil WWW
Re: Ayuda en inicio de sesión, ¿alguna respuesta?
« Respuesta #2 en: 13 Julio 2015, 00:06 am »

Nada... que no hay manera, ¿podrías decirme exactamente qué línea y dónde ponerla? Es que estoy atascado en esto y me pongo nervioso, ¡un saludo!  :-[
En línea

engel lex
Moderador Global
***
Desconectado Desconectado

Mensajes: 15.514



Ver Perfil
Re: Ayuda en inicio de sesión, ¿alguna respuesta?
« Respuesta #3 en: 13 Julio 2015, 00:35 am »

En la línea 56 tienes $username, pero nunca la defines

por lo que veo, tienes el valor que quieres en la variable de sesión

En línea

El problema con la sociedad actualmente radica en que todos creen que tienen el derecho de tener una opinión, y que esa opinión sea validada por todos, cuando lo correcto es que todos tengan derecho a una opinión, siempre y cuando esa opinión pueda ser ignorada, cuestionada, e incluso ser sujeta a burla, particularmente cuando no tiene sentido alguno.
Pablo Videla


Desconectado Desconectado

Mensajes: 2.274



Ver Perfil WWW
Re: Ayuda en inicio de sesión, ¿alguna respuesta?
« Respuesta #4 en: 13 Julio 2015, 00:40 am »

En la línea 56 tienes $username, pero nunca la defines

por lo que veo, tienes el valor que quieres en la variable de sesión



Exactamente, es lo mismo que iba a decir, xD
puedes reemplazar la linea 56 por $_SESSION['username']; o bien setearla con la variable de session

Código
  1. $username= $_SESSION['username'];
  2. <h2>Bienvenido <?php echo $username; ?></h2>
  3.  
y despues hacer el echo

En línea

uluigi

Desconectado Desconectado

Mensajes: 17


Ver Perfil WWW
Re: Ayuda en inicio de sesión, ¿alguna respuesta?
« Respuesta #5 en: 13 Julio 2015, 01:27 am »

Hijos de cristo, a veces me siento imbécil y me lo he pasado por alto, ya funciona bien, dejo el código por si alguien lo quiere usar.
Gracias por vuestra ayuda, chicos.
index.php
Código
  1. <?php
  2.  
  3. #Librería principal
  4. include_once('libraries.php');
  5.  
  6. #Conexión a la base de datos MySQLi
  7. yoursql_connect();
  8.  
  9. if(!isset($_SESSION['username']))
  10. {
  11. ?>
  12. <!DOCTYPE html><html>
  13. <head>
  14. <title>localhost / 127.0.0.1</title>
  15. <link rel="stylesheet" type="text/css" href="sheet/frame.css">
  16. </head><body id="yoursql">
  17. <div class="logo"></div>
  18. <div id="language" class="window">
  19. <label>Idioma de yourSQL:</label>
  20. <select id="language">
  21. <option value="es_ES">Español (España)</option>
  22. <option value="en_UK" disabled>Inglés</option>
  23. <option value="pt_BR" disabled>Portugués (Brasil)</option>
  24. </select>
  25. </div>
  26. <div id="login" class="window">
  27. <form method="post" action="system/path/login.php">
  28. <table id="table-login">
  29. <tr>
  30. <td><label for="username">Nombre de usuario:</label></td>
  31. <td><input type="text" autocomplete="off" id="username" name="username" class="i_"></td>
  32. </tr>
  33. <tr>
  34. <td><label for="passwd">Contraseña:</label></td>
  35. <td><input type="password" id="passwd" name="passwd" class="i_"></td>
  36. <tr>
  37. <td></td>
  38. </tr>
  39. </tr>
  40. <tr>
  41. <td id="rn"><a href="system/path/r.php"><input type="button" name="register" class="b_" value="Añadir cuenta"></a></td>
  42. <td id="r"><input type="submit" name="submit_login" class="b_" value="Acceder"></td>
  43. </tr>
  44. </table>
  45. </form>
  46. </div>
  47. <?php
  48. include_once('system/inc/footer.php');
  49. ?>
  50. </body></html>
  51. <?php
  52. exit();
  53. }
  54. else {
  55.  
  56. $Username = $_SESSION['username'];
  57. ?>
  58. <h2>Bienvenido <?php echo $Username; ?></h2>
  59. <a href="destroy.php">cerrar sesión</a>
  60. <?php } ?>
  61.  
login.php
Código
  1. <?php
  2. #Librería principal
  3. include_once('../../libraries.php');
  4.  
  5. #Conexión a la base de datos MySQLi
  6. yoursql_connect();
  7.  
  8. #Capturar datos del formulario y almacenarlo en variables
  9. $Username = $_POST['username']; #Definido en el formulario 'name="username"'
  10. $Passwd = $_POST['passwd']; #Definido en el formulario 'name="passwd"'
  11.  
  12. #Consulta de MySQL donde indica seleccionar de la tabla 'users' la fila
  13. #llamada 'username' que contenga el valor de la variable '$Username'
  14. $result = mysql_query("SELECT * FROM users WHERE username = '$Username'");
  15.  
  16. #Validar si el valor de la variable '$Username' de la fila 'username' existe
  17. #en la base de datos 'yoursql'
  18. if($row = mysql_fetch_array($result))
  19. {
  20. #Si '$Username' es correcto, validar el valor de la variable '$Passwd'
  21. if($row['passwd'] == $Passwd) #'Passwd' definido por el nombre de la fila 'passwd'
  22. {
  23. #Crear sesión
  24.  
  25. #Almacenar valor de '$Username' en una variable de sesión pre-llamada 'username'
  26. $_SESSION['username'] = $Username;
  27. header('Location: ../../index.php');
  28. }
  29. else if($row['username'] != $Passwd)
  30. {
  31. #Si la contraseña es incorrecta hacer esto
  32. header('Location: ../../index.php');
  33. }
  34.  
  35.  
  36. }
  37. #Si la contraseña es incorrecta hacer lo siguiente
  38. else if($row['passwd'] != $Passwd)
  39. {
  40. echo "contraseña incorrecta.";
  41. sleep(1);
  42. header('Location: ../../index.php');
  43. }
  44.  
  45. #Si el nombre de usuario es incorrecto hacer lo siguiente
  46. else
  47. {
  48. echo "nombre incorrecto.";
  49. sleep(1);
  50. header('Location: ../../index.php');
  51. }
  52.  
  53.  
  54.  
  55.  
  56. #Liberar memoria empleada al realizar la consulta '$result'
  57. #Cerrar conexión con la base de datos
  58. ?>
  59.  
En línea

Pablo Videla


Desconectado Desconectado

Mensajes: 2.274



Ver Perfil WWW
Re: Ayuda en inicio de sesión, ¿alguna respuesta?
« Respuesta #6 en: 13 Julio 2015, 01:59 am »

A todos se nos pasa algo, es normal, a medida que vayas cometiendo errores vas aprendiendo a identificarlos, saludos.
En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
Ayuda con inicio de sesión
PHP
[@] 6 4,954 Último mensaje 8 Abril 2010, 20:01 pm
por [@]
Ayuda Inicio de Sesion + Registro
Programación Visual Basic
Brian1511 0 1,506 Último mensaje 19 Noviembre 2012, 23:16 pm
por Brian1511
[Resuelto] ayuda, uso de variables de sesion en php
PHP
Misterio_S 3 2,750 Último mensaje 20 Diciembre 2014, 05:23 am
por engel lex
[Resuelto] Inicio de sesion de windows xp con red local
Windows
kamykaze 2 1,953 Último mensaje 3 Junio 2015, 22:31 pm
por kamykaze
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines