Foro de elhacker.net

Programación => PHP => Mensaje iniciado por: ramon123099 en 27 Agosto 2017, 18:09 pm



Título: Problemas con la función session en php
Publicado por: ramon123099 en 27 Agosto 2017, 18:09 pm
Hola tengo unos problemas con la funcion session lo que quiero hacer es que al iniciar sesión se cree una sesión con el nombre de usuario para poder usarla en toda la pagina tengo este codigo que es el que se encarga de validar que exista un usuario con esa contraseña que previamente se introdujo en el login:

Código
  1. <script>
  2. window.onload=function()
  3. {
  4. document.forms["seguro"].submit();
  5. }
  6. </script>
  7. <?php
  8. include "../Conexion/conexion.php";
  9. $user=$_POST['user'];
  10. $pass=$_POST['pass'];
  11.  
  12. $sql = "SELECT * FROM usuarios WHERE `user`='$user' AND `pass`='$pass'";
  13.    $resultado=mysqli_query($mysqli, $sql);
  14.  
  15.    $filas=mysqli_num_rows($resultado);
  16.  
  17.    if($filas>0){
  18.        session_start();
  19.        $_session['user'] = $user;
  20.        echo($_session['user']);
  21.        header('location: pruebas.php');
  22.    }
  23.    else{
  24.        echo("no entro");
  25.    }
  26.  
  27. ?>

una vez que se valido el usuario y la contraseña se crea la sesion y me manda a la pagina pruebas esto solo para realizar una simple prueba, en la pagina pruebas esta el siguiente codigo:

Código
  1. <?php
  2. if(isset($_session['user'])){
  3.    echo("entro");
  4. }
  5. else{
  6.    echo("no entro");
  7. }
  8. ?>
  9.  
  10.  

el problema es que al llegar a la pagina pruebas me salta el mensaje de no entro lo que significa que la sesion no esta siendo creada o que no se esta compartiendo en toda la pagina porfavor ayuda llevo rato intentando hacer que funcione y nada y ya me quede sin ideas.


Título: Re: Problemas con la función session en php
Publicado por: engel lex en 27 Agosto 2017, 18:14 pm
Session start y los headers deben hcerve antes de imprimir cualquier contenido, si no, fallarán,


Por otro lado, es inapropiado guardar las contraseñas en claro y tu forma de solicitud a la db es una forma de ser hackeado incluso por herramientas automáticas

Para las contraseñas usa password_hash y password_verify


Título: Re: Problemas con la función session en php
Publicado por: ramon123099 en 27 Agosto 2017, 18:22 pm
disculpa tu te refieres a que el codigo este asi

Código
  1. <script>
  2. window.onload=function()
  3. {
  4. document.forms["seguro"].submit();
  5. }
  6. </script>
  7. <?php
  8.    session_start();
  9. include "../Conexion/conexion.php";
  10. $user=$_POST['user'];
  11. $pass=$_POST['pass'];
  12.  
  13. $sql = "SELECT * FROM usuarios WHERE `user`='$user' AND `pass`='$pass'";
  14.    $resultado=mysqli_query($mysqli, $sql);
  15.  
  16.    $filas=mysqli_num_rows($resultado);
  17.  
  18.    if($filas>0){
  19.        $_session['user'] = $user;
  20.        echo($_session['user']);
  21.    }
  22.    else{
  23.        echo("no entro");
  24.    }
  25.  
  26. ?>
  27.  


Título: Re: Problemas con la función session en php
Publicado por: engel lex en 27 Agosto 2017, 18:30 pm
si.... session start, si no detecta cookie debe enviarla, esto lo hace como un header, y los header deben ser enviados antes que cualquier que cualquier salida de texto...

especialmente en tu codigo no hay ninguna razón para que ese script esté antes del php...


Título: Re: Problemas con la función session en php
Publicado por: ramon123099 en 27 Agosto 2017, 18:38 pm
e corregido eso que me has dicho y me a quedado el codigo asi:

Código
  1.  
  2. <?php
  3.    session_start();
  4. include "../Conexion/conexion.php";
  5. $user=$_POST['user'];
  6. $pass=$_POST['pass'];
  7.  
  8. $sql = "SELECT * FROM usuarios WHERE `user`='$user' AND `pass`='$pass'";
  9.    $resultado=mysqli_query($mysqli, $sql);
  10.  
  11.    $filas=mysqli_num_rows($resultado);
  12.  
  13.    if($filas>0){
  14.        $_session['user'] = $user;
  15.        header('location: pruebas.php');
  16.    }
  17.    else{
  18.        echo("no entro");
  19.    }
  20. ?>
  21.  

y en el pruebas le e puesto que mejor me imprima la variable:

Código
  1. <?php
  2. $hola= $_session['user'];
  3. echo($hola);
  4. ?>
  5.  

y lo que me sale al realizar la peticion es lo siguiente

Warning: main(): It is not safe to rely on the system's timezone settings. You are *required* to use the date.timezone setting or the date_default_timezone_set() function. In case you used any of those methods and you are still getting this warning, you most likely misspelled the timezone identifier. We selected 'America/Chicago' for '-5.0/DST' instead in C:\WebServer\Apache2.2\htdocs\SDNIR\Aplicacion\pruebas.php on line 3 Notice: Undefined variable: _session in C:\WebServer\Apache2.2\htdocs\SDNIR\Aplicacion\pruebas.php on line 3

no tengo idea del porque pasa esto en otra pagina que abia estado haciendo utilizava de esta misma manera la funcion session y no me causaba ningun problema


Título: Re: Problemas con la función session en php
Publicado por: engel lex en 27 Agosto 2017, 18:50 pm
si no entiendes el error usa traductor....
Código:
Warning: main(): It is not safe to rely on the system's timezone settings.
Código:
Advertencia: main(): No es seguro confiar en la configuración timezone del sistema

no tienes declarado un timezone o lo escribiste mal... y session_start lo solicita

el otro error que tienes ahí pegado

Código:
Notice: Undefined variable: _session in C:\WebServer\Apache2.2\htdocs\SDNIR\Aplicacion\pruebas.php on line 3

no es  $_session, es $_SESSION


Título: Re: Problemas con la función session en php
Publicado por: ramon123099 en 27 Agosto 2017, 18:52 pm
 :D :D :D :o :o :o ya funciono muchas gracias por tu ayuda