Foros del Web » Programando para Internet » PHP »

Sesiones activas en PHP

Estas en el tema de Sesiones activas en PHP en el foro de PHP en Foros del Web. Hola FOROS DEL WEB, espero me podáis ayudar con esta duda y espero ser lo suficientemente específico, gracias de antemano. He creado un sistema de ...
  #1 (permalink)  
Antiguo 15/01/2013, 04:48
Avatar de johntellojohn  
Fecha de Ingreso: enero-2013
Ubicación: Donostia
Mensajes: 2
Antigüedad: 11 años, 10 meses
Puntos: 0
Sesiones activas en PHP

Hola FOROS DEL WEB, espero me podáis ayudar con esta duda y espero ser lo suficientemente específico, gracias de antemano.
He creado un sistema de registro y logeo en php y mysql respectivamente, eso funciona muy bien, pero el problema es que cuando envías datos a partir de un formulario "index.html" (usuario y password) mediante POST, la página que recibe los datos "iniciar.php" espera siempre a que se acceda el usuario y password, esto impide el acceso a menos que se envíen los datos nuevamente, espero estar siendo claro, mi objetivo es moverme por varias paginas si tener que ingresar el usuario y clave, he utlizado sesion start(); para capturar el usuario y el password pero como siempre depende del valor que se ingreso por el formulario sigue igual.
  #2 (permalink)  
Antiguo 15/01/2013, 05:54
Avatar de truman_truman  
Fecha de Ingreso: febrero-2010
Ubicación: /home/user
Mensajes: 1.341
Antigüedad: 14 años, 9 meses
Puntos: 177
Respuesta: Sesiones activas en PHP

ok, en primer lugar session_start(); debe estar en todos los archivos y es lo primero que escribirás luego de la apertura de php

Código PHP:
Ver original
  1. <?php

ahora, cuando el user ingresa los datos en el formulario y luego va hacia iniciar.php
es ahi en donde debes recuperar esas variables y hacer el login, que por lo que decís
funciona bien, ok, en el caso de que el login sea positivo, en ese momento tenés que
crear , por ejemplo una variable de session para saber si el user está logueado o no:


Código PHP:
Ver original
  1. $_SESSION["logueado"] = 1;

de esta forma, para saber si el usuario esta logueado solo tenes que consultar a esa variable
por ejemplo si el user accede a una seccion del sitio llamada listar_usuarios.php, tenes que comprobarlo asi por ejemplo:

Código PHP:
Ver original
  1. <?php
  2.  
  3. if(!isset($_SESSION["logueado"])){
  4.     echo 'Usted no esta logueado';
  5.     exit;
  6. }
preguntas si no existe la variable de session
en ese caso mensaje de error o mejor aun redireccionarlo al login.php en donde está el formulario.

Bueno, eso es lo básico.
__________________
la la la
  #3 (permalink)  
Antiguo 15/01/2013, 06:40
Avatar de johntellojohn  
Fecha de Ingreso: enero-2013
Ubicación: Donostia
Mensajes: 2
Antigüedad: 11 años, 10 meses
Puntos: 0
Respuesta: Sesiones activas en PHP

Cita:
Iniciado por truman_truman Ver Mensaje
ok, en primer lugar session_start(); debe estar en todos los archivos y es lo primero que escribirás luego de la apertura de php

Código PHP:
Ver original
  1. <?php

ahora, cuando el user ingresa los datos en el formulario y luego va hacia iniciar.php
es ahi en donde debes recuperar esas variables y hacer el login, que por lo que decís
funciona bien, ok, en el caso de que el login sea positivo, en ese momento tenés que
crear , por ejemplo una variable de session para saber si el user está logueado o no:


Código PHP:
Ver original
  1. $_SESSION["logueado"] = 1;

de esta forma, para saber si el usuario esta logueado solo tenes que consultar a esa variable
por ejemplo si el user accede a una seccion del sitio llamada listar_usuarios.php, tenes que comprobarlo asi por ejemplo:

Código PHP:
Ver original
  1. <?php
  2.  
  3. if(!isset($_SESSION["logueado"])){
  4.     echo 'Usted no esta logueado';
  5.     exit;
  6. }
preguntas si no existe la variable de session
en ese caso mensaje de error o mejor aun redireccionarlo al login.php en donde está el formulario.

Bueno, eso es lo básico.
Primero que nada gracias por tu ayuda pero tengo un problema:
tengo tres formularios (index.html - inicio.php - enviar.php)
>>Los datos que envio desde el formulario de Index.html son (nick y password)

>>En inicio.php recibe los datos
Código PHP:
Ver original
  1. $nick=$_POST['nick'];
  2. $password=$_POST['password'];
  3. $password_md5=md5($password)

y procede a hacer la autentificación de datos y a hacer el proceso encargado.

>>En inicio.php hay otro formulario que al enviar los datos te lleva a enviar.php,
y el problema es que al regresar a inicio.php, te dice "El usuario no existe" es por que espera de que se envie por método POST el usuario y contraseña.

>>Lo que no tengo claro es como debo alimentar el usuario y contraseña y que durante la sesion activa estos datos se conviertan en consatantes.... haaaa me revienta la cabeza xD
Código PHP:
Ver original
  1. <?php
  2. #Conectamos con MySQL
  3. $conexion = mysql_connect("localhost","root","toor")
  4. or die ("Fallo en el establecimiento de la conexión");
  5.  
  6. #Seleccionamos la base de datos a utilizar
  7. mysql_select_db("proyecto")
  8. or die("Error en la selección de la base de datos");
  9.  
  10. //Cargar datos en variables
  11. $nick=$_POST['nick'];
  12. $password=$_POST['password'];
  13. $password_md5=md5($password);
  14.            
  15. #Efectuamos la consulta SQL
  16. $sql = "select * from usuario where nick = '".$nick."'";
  17. $result = mysql_query ($sql);
  18.        
  19. #Mostramos la consulta         
  20.     if ( $row = mysql_fetch_array ( $result )) {
  21.         if ($password_md5 == $row['password']){
  22.  
  23.            
  24.             //Guardando el id de Usuario, nombre y apellido en una variable
  25.             $_SESSION['nick_ini']=$nick;   
  26.             $_SESSION['password_md5_ini']=$password_md5;
  27.             $_SESSION["logueado"] = 1;
  28.            
  29.             $_SESSION['id_usuario']=$row['id_usuario'];
  30.             $_SESSION['nombre']=$row['nombre'];
  31.             $_SESSION['apellido']=$row['apellido'];
  32.            
  33.             echo "Bienvenido ".$nombre." ".$apellido."<br>";
  34.             echo "<a href= 'index.html'>Cerrar sesión</a>"."<br>";
  35.            
  36.  
  37.             //Intentando escribir código html
  38.     ?>
  39.             <html>
  40.                 <body>
  41.                         <p>Publica un dreams!<p>
  42.                         <form action="env_dream.php" method="POST" name="comentario">
  43.                         <textarea rows="3" name="comentario" cols="50">Máximo 250 caracteres</textarea>
  44.                         <p><input TYPE="SUBMIT" VALUE="Dreams">
  45.                         <input TYPE="RESET" VALUE="Borrar">
  46.  
  47.                         </form>
  48.                 </body>
  49.             </html>
  50.     <?php
  51.             //Inserta la consulta de estados
  52.             echo 'Comentarios'.'<br>';
  53.            
  54.             #Efectuamos la consulta SQL
  55.                 $sql = "select dreams, fecha, nick from estados where id_usuario = '". $id_usuario."' order by id_dreams desc";
  56.                 $result = mysql_query ($sql);
  57.                
  58.             //Este comando cuenta los dreams que estan almacenadas
  59.                 $num_dreams = mysql_num_rows($result);
  60.                 echo '<br>'."Tienes ".$num_dreams." dreams"."<br>";
  61.                
  62.             //Imprimir en pantalla estados
  63.                 while ($row=mysql_fetch_array($result)) {
  64.                         if (mysql_num_rows($result) > 0) {
  65.                             $comentario_pan=$row['dreams'];
  66.                             $fecha_pan=$row['fecha'];
  67.                             $nick_pan=$row['nick'];
  68.                             echo '<br>'.$comentario_pan;
  69.                             echo '<br>'.'Fue publicado '.$fecha_pan.'<br>';
  70.                             echo 'Publicado por '.$nick_pan.'<br>';
  71.  
  72.                         }else{
  73.                             echo "¡No tienes dreams!";
  74.                         }
  75.                 }
  76.  
  77.             }
  78.                 else{
  79.                         echo "Ha habido un error en la autentificación";
  80.                     }
  81.     }
  82.         else{
  83.             echo "No existe el usuario";
  84.             }
  85. mysql_close($conexion);
  86. ?>
  #4 (permalink)  
Antiguo 15/01/2013, 07:44
 
Fecha de Ingreso: septiembre-2012
Ubicación: Argentina
Mensajes: 144
Antigüedad: 12 años, 2 meses
Puntos: 12
Respuesta: Sesiones activas en PHP

Buenas

Yo lo que hago siempre en cada php hacer un script que controle el logueo..

Donde consulte si esta inicializada la variable de session y guardar por ej

$_session['autentificacion']='si';

Entonces hago un If preguntando si esta logeado, en caso contrario lo mande por ej a login.php

Espero que me entiendas
  #5 (permalink)  
Antiguo 15/01/2013, 13:59
 
Fecha de Ingreso: enero-2013
Mensajes: 2
Antigüedad: 11 años, 10 meses
Puntos: 0
Respuesta: Sesiones activas en PHP

Cita:
Iniciado por pablo_exeg Ver Mensaje
Buenas

Yo lo que hago siempre en cada php hacer un script que controle el logueo..

Donde consulte si esta inicializada la variable de session y guardar por ej

$_session['autentificacion']='si';

Entonces hago un If preguntando si esta logeado, en caso contrario lo mande por ej a login.php

Espero que me entiendas
Hola, podrías poner el código de lo citado arriba? Muchas gracias

Etiquetas: ayuda-php, sesiones, activo
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:14.