Foros del Web » Programando para Internet » PHP »

Mantener sesion abierta en webs con php

Estas en el tema de Mantener sesion abierta en webs con php en el foro de PHP en Foros del Web. Buenas, tengo una web en html y quisiera que unicamente un usuario registrado pueda acceder a un formulario que ingresa informacion en la base de ...
  #1 (permalink)  
Antiguo 22/02/2008, 10:46
 
Fecha de Ingreso: enero-2008
Mensajes: 43
Antigüedad: 16 años, 10 meses
Puntos: 1
Mantener sesion abierta en webs con php

Buenas, tengo una web en html y quisiera que unicamente un usuario registrado pueda acceder a un formulario que ingresa informacion en la base de datos.

Tengo la base de datos hecha y el formulario funciona. Pero me falta que solo ese formulario pueda verlo alguien que ha hecho un "login".

Seguí este tutorial. http://www.tufuncion.com/login_autentificacion_php

Y ahora puedo hacer que cualquiera se registre (los datos van a su correspodiente BD) y luego si va a la opción de "login" si ha puesto los datos correcto le dice en una nueva web que ha iniciado correctamente y si lo pongo mal, me avisa de que es incorrecto.

El problema está en que una vez iniciada la sesion voy al archivo segun el tutorial "index.php" y me dice que no estoy "logueado".


Quisiera saber que tengo que hacer para que la sesion se queda abierta paara que pueda acceder a esa web y a otras si tambien es posible.
¿Qué codigo deberia ingresar?

Miren el tutorial que si, todo funciona pero creo falla en los últimos pasos.

saludos y gracias
  #2 (permalink)  
Antiguo 22/02/2008, 12:22
 
Fecha de Ingreso: enero-2008
Mensajes: 43
Antigüedad: 16 años, 10 meses
Puntos: 1
Re: Mantener sesion abierta en webs con php

Siento repetir post, agradeceria si alguien fuera tan amable de ayudarme pronto, es para un trabajo escolar que debo presentar el proximo lunes.

Así que no necesito que haya alta seguridad para lo del usuario.
Simplemente que al registrarse, uno inicie sesion y se redirijido (o un simple link a malas) a pagina que contiene enlaces a formularios. Y que para acceder a esta pagina general y los formularios que puedan a ver solo se pueda ver siendo "usuario registrado".
Yo tengo hecho los primeros pasos registro de usuario y login y formularios por otro lado.
Necesito saber que frase/código tengo que poner y donde para que una vez ya estoy logueado (esto lo tengo) acceda a esas webs protegidas (a mi me aperece como no logueado, es decir no me mantiene el login) .
  #3 (permalink)  
Antiguo 22/02/2008, 12:27
 
Fecha de Ingreso: junio-2004
Ubicación: Stgo, Chile
Mensajes: 51
Antigüedad: 20 años, 4 meses
Puntos: 0
Re: Mantener sesion abierta en webs con php

En cada página debes iniciar la sesión para recuperar sus valores.
Yo creo que esto lo encuentas en las FAQ.

Saudos,
Victoria
  #4 (permalink)  
Antiguo 22/02/2008, 12:41
 
Fecha de Ingreso: enero-2008
Mensajes: 43
Antigüedad: 16 años, 10 meses
Puntos: 1
Re: Mantener sesion abierta en webs con php

Antes de postear ya consulte las FAQ de aquí. http://www.forosdelweb.com/892726-post133.html
Pero no me aclara.
En los comentarios de la primera guia que utilice, nombran que falta un if.
Pero como no explica exactamente el codigo ni donde ni nada...
  #5 (permalink)  
Antiguo 22/02/2008, 12:59
 
Fecha de Ingreso: junio-2004
Ubicación: Stgo, Chile
Mensajes: 51
Antigüedad: 20 años, 4 meses
Puntos: 0
Re: Mantener sesion abierta en webs con php

Cuando el usuario se logea, debes abrir una sesion y guardar ahi los datos que te interese propagar. Al menos será que se logueó ok. Luego en cada página, debes iniciar una sesión y validar dicho valor. Si está ok lo dejas pasar y si no, lo redireccionas.

Entonces, al inicio de todos tus programas debería ir alg asi:

if (!session_id())

session_start();
If(!isset($_SESSION['logueadoOk']) OR $_SESSION['logueadoOK']==FALSE){
// lo redireccionas para uqe no pueda enrtar a la página
}


Salu2
Victoria
  #6 (permalink)  
Antiguo 22/02/2008, 19:14
 
Fecha de Ingreso: enero-2008
Mensajes: 43
Antigüedad: 16 años, 10 meses
Puntos: 1
Re: Mantener sesion abierta en webs con php

Gracias por la ayuda. Pero sigo sin entender lo de
Cita:
Cuando el usuario se logea, debes abrir una sesion y guardar ahi los datos que te interese propagar. Al menos será que se logueó ok. Luego en cada página, debes iniciar una sesión y validar dicho valor.
, comprendo lo que dices. Pero no sé como debo hacerlo.
Para que se adapte al código que estoy utilizando deberia crear "conexion.php" donde allí imagino debaria guardarse la informacion de quien se loguea no?
Pero no tengo ni idea de como hacerlo...
  #7 (permalink)  
Antiguo 22/02/2008, 19:23
Avatar de Carlojas  
Fecha de Ingreso: junio-2007
Ubicación: Shikasta
Mensajes: 1.272
Antigüedad: 17 años, 5 meses
Puntos: 49
Re: Mantener sesion abierta en webs con php

Te pongo un ejemplo en el momento que el usuario se loguea tienes esto

Código PHP:
$consulta "SELECT * FROM usuarios WHERE username = '$username' AND password = '$password'";
$resultado mysql_query$consulta$conexion ) or die( mysql_error() );
$datos mysql_fetch_array$resultado );

if(
$datos['username'] != $username or $datos['password'] != $password)
{
     echo 
"datos incorrectos";
     exit();
}
else
{
     
// Inicias la sesion
     
session_start();
     
$_SESSION['usuario'] = $datos['username'];
     
$_SESSION['estado'] = 'Autenticado';
     
// Muestras el contenido de la pagina


Despues en las paginas que consideras como privadas pones esto

Código PHP:
session_start();

if(isset(
$_SESSION['usuario']) and $_SESSION['estado'] == 'Autenticado')
{
       
// Lo dejas entrar a la pagina
}
else
{  
       
// Usuario que no se ha logueado
       
echo "No tienes permiso para entrar a esta pagina";
       exit();

Saludos
  #8 (permalink)  
Antiguo 22/02/2008, 19:38
 
Fecha de Ingreso: enero-2008
Mensajes: 43
Antigüedad: 16 años, 10 meses
Puntos: 1
Re: Mantener sesion abierta en webs con php

Muchas gracias, con ejemplos así ya me ayuda mucho.
Ahora miraré de como aplicarlo en mi caso.

El login.php que estaba utilizando contenia esto:
Código PHP:
DATOS BD

// Conectar a la base de datos
    
mysql_connect ($dbhost$dbusername$dbuserpass);
    
mysql_select_db($dbname) or die('Cannot select database');

    if (
$_POST['username']) {
    
//Comprobacion del envio del nombre de usuario y password
    
$username=$_POST['username'];
    
$password=$_POST['password'];
    if (
$password==NULL) {
    echo 
"La password no fue enviada";
    }else{
    
$query mysql_query("SELECT username,password FROM users WHERE username = '$username'") or die(mysql_error());
    
$data mysql_fetch_array($query);
    if(
$data['password'] != $password) {
    echo 
"Login incorrecto";
    }else{
    
$query mysql_query("SELECT username,password FROM users WHERE username = '$username'") or die(mysql_error());
    
$row mysql_fetch_array($query);
    
$_SESSION["s_username"] = $row['username'];
    echo 
"Has sido logueado correctamente ".$_SESSION['s_username']." y puedes acceder al index.php.";
    }
    }
    }
    
?> 
  #9 (permalink)  
Antiguo 22/02/2008, 19:54
 
Fecha de Ingreso: enero-2008
Mensajes: 43
Antigüedad: 16 años, 10 meses
Puntos: 1
Re: Mantener sesion abierta en webs con php

No me salé, pero mañana volveré a intentarlo que ya es tarde.
Por otro lado, una cosa que no entiendo es el último código.
Vale que uno de los parametros y entre los codigos se establezca la relación/conexión.
Pero si yo tengo una página con el segundo codigo insertado. Y accedo directamente poniendo la pagina en el navegador, sin ser usuario se muestra lo que hay escrito. Hay que poner permisos nosé entiendo como funciona esto ultimo.

saludos y gracias x los consejos
  #10 (permalink)  
Antiguo 22/02/2008, 20:14
Avatar de pato12  
Fecha de Ingreso: septiembre-2007
Ubicación: Salta
Mensajes: 1.620
Antigüedad: 17 años, 1 mes
Puntos: 101
Re: Mantener sesion abierta en webs con php

Hola,
Prueba haci:
Código PHP:
DATOS BD 

// Conectar a la base de datos 
    
mysql_connect ($dbhost$dbusername$dbuserpass); 
    
mysql_select_db($dbname) or die('Cannot select database'); 

    if (
$_POST['username']) { 
    
//Comprobacion del envio del nombre de usuario y password 
    
$username=$_POST['username']; 
    
$password=$_POST['password']; 
    if(empty(
$password)) { 
    echo 
"La password esta vacia"
    }else{ 
    
$query mysql_query("SELECT username,password FROM users WHERE username = '$username'") or die(mysql_error()); 
    
$data mysql_fetch_array($query); 
    if(
$data['password'] != $password) { 
    echo 
"Login incorrecto"
    }else{ 
    
$query mysql_query("SELECT username,password FROM users WHERE username = '$username'") or die(mysql_error()); 
    
$row mysql_fetch_array($query); 
    @
session_start(); // <------- 
    
$_SESSION["s_username"] = $row['username']; 
    echo 
"Has sido logueado correctamente ".$_SESSION['s_username']." y puedes acceder al index.php."
    } 
    } 
    } 
Te avias olvidado de session_start();
En cada pagina, al principio tienes que ponerlo.
Suerte
Salu2
__________________
Half Music - www.halfmusic.com

Última edición por pato12; 22/02/2008 a las 20:19
  #11 (permalink)  
Antiguo 23/02/2008, 10:52
 
Fecha de Ingreso: enero-2008
Mensajes: 43
Antigüedad: 16 años, 10 meses
Puntos: 1
Re: Mantener sesion abierta en webs con php

Mucha gracias, con ese código ahora el archivo login no me muestra ningun mensaje de error. Pero cuando accedo a index.php me sigue apareciendo que no estoy.

Fallo en como se coloca el código en la webs que solo quiero que esten disponibles para usuarios registrados T_T
Vi que cuando agregaste el session_start(); en el código le pusiste el @. Probé de hacerlo con el archivo index pero sigue sin funcionar.

Lo tengo así:
Código PHP:
<?
@session_start();

if(isset(
$_SESSION['usuario']) and $_SESSION['estado'] == 'Autenticado')
{       
// Lo dejas entrar a la pagina 

}
else
{  
       
// Usuario que no se ha logueado
       
echo "No tienes permiso para entrar a esta pagina";
       exit();
}  
         
?>
Con eso e lo deas entrar a la página deveria haber algun código??
Si accedo a este archivo despues de iniciar sesion me muestra "No tienes permiso para entrar a esta pagina"
  #12 (permalink)  
Antiguo 24/02/2008, 09:55
 
Fecha de Ingreso: enero-2008
Mensajes: 43
Antigüedad: 16 años, 10 meses
Puntos: 1
Re: Mantener sesion abierta en webs con php

¿Cómo deberia poner el código en las paginas donde quiero que esten protegidas y mantengan el login?
  #13 (permalink)  
Antiguo 24/02/2008, 10:04
 
Fecha de Ingreso: febrero-2008
Mensajes: 28
Antigüedad: 16 años, 8 meses
Puntos: 0
Re: Mantener sesion abierta en webs con php

No soi experto en php xD...pero.....

Yo ando con lo mismo y a mi me funciona de esta manera


Este codigo esta en un archivo validarsesion, el cual se ejecuta tras completar el formulario de login,almacenando las dos variables que quiero
Código PHP:
<?php
session_start
();
$_SESSION['nick']=$_REQUEST['nick'];
$_SESSION['password']=$_REQUEST['password'];
Este codigo esta al inicio de todas mis paginas que necesitan de las variables de session, comprobando que la sesion sea valida y sino me manda a login otra vez
Código PHP:
<?php
session_start
();
if (
$_SESSION['nick']=="")
    
header("Location: index.php?errorlogin=3");
?>
Despues unicamente accedo a esos valores con $_SESSION[nick]



Y por si te ayuda, asi tengo mi validacion de sesion y funciona

Código PHP:
<?php
session_start
();
$_SESSION['nick']=$_REQUEST['nick'];
$_SESSION['password']=$_REQUEST['password'];

$conexion=mysql_connect("localhost","user","password") or 
  die(
"Problemas en la conexion");
mysql_select_db("juego",$conexion) or
  die(
"Problemas en la selección de la base de datos");
$registros=mysql_query("select nick,password from usuarios where nick='$_SESSION[nick]'",$conexion) or
  die(
"Problemas en el select:".mysql_error());
if (
$reg=mysql_fetch_array($registros))
{
    if (
$reg['password']==$_REQUEST['password']){
        
$registros=mysql_query("select idciudad from ciudad where propietario='$_SESSION[nick]'",$conexion) or die("Problemas en el select:".mysql_error());
        if (
$reg=mysql_fetch_array($registros))
              
$_SESSION['idciudad']=$reg['idciudad'];
        
header("Location: visiongeneral.php");
    }
    else{
        
header("Location: index.php?errorlogin=2");
    }
}
else
{
    
header("Location: index.php?errorlogin=1");
}

mysql_close($conexion);
?>

Espero haber sido de ayuda ^^
  #14 (permalink)  
Antiguo 24/02/2008, 10:35
 
Fecha de Ingreso: enero-2008
Mensajes: 43
Antigüedad: 16 años, 10 meses
Puntos: 1
Re: Mantener sesion abierta en webs con php

Mucha gracias puede ser me de gran ayuda, aunque estoy me haria empezar de nuevo.

Necisataria que alguien viendo lo codigos que hasta ahora llevo utilizando, pueda decirme si algo esta mal y que poner en las webs que solo sean para usuarios y el "mantener login".

He tenido en cuenta tu codigo y he escrito esto:

Código PHP:
<?php
session_start
();
if (
$_SESSION['username']=="")
?>
Pero no puedo consultar este archivo habiendo iniciado sesión o no....
Necesitaria hacerlo funcionar para mañana T_T ¿Alguna solución al código que utilizo?
  #15 (permalink)  
Antiguo 24/02/2008, 10:54
 
Fecha de Ingreso: enero-2008
Mensajes: 43
Antigüedad: 16 años, 10 meses
Puntos: 1
Re: Mantener sesion abierta en webs con php

Necesito el código compatible para que por ejemplo en index.php

*Solo pueda ser accesible para usuarios registrados
* Y tambien deberia de haber un codigo para mantener la relacion del archivo de login aquí, es decir se mantenga el login mostrando el contenido para usuarios registrados.

saludos y gracias
  #16 (permalink)  
Antiguo 24/02/2008, 11:01
Avatar de Carlojas  
Fecha de Ingreso: junio-2007
Ubicación: Shikasta
Mensajes: 1.272
Antigüedad: 17 años, 5 meses
Puntos: 49
Re: Mantener sesion abierta en webs con php

Bueno vamos por partes revisando los codigos pon cada uno de los codigos y los vamos revisando uno por uno asi sera mas facil poder ayudarte.


Saludos.
  #17 (permalink)  
Antiguo 24/02/2008, 11:06
 
Fecha de Ingreso: febrero-2008
Mensajes: 28
Antigüedad: 16 años, 8 meses
Puntos: 0
Re: Mantener sesion abierta en webs con php

Cita:
Iniciado por EphramDoyle Ver Mensaje
Necesito el código compatible para que por ejemplo en index.php

*Solo pueda ser accesible para usuarios registrados
* Y tambien deberia de haber un codigo para mantener la relacion del archivo de login aquí, es decir se mantenga el login mostrando el contenido para usuarios registrados.

saludos y gracias
Nose si te entendi muy bien, pero lo que quieres hacer es que algo solo se muestre si el usuario esta logeado no?...si eso lo unico que tienes que hacer es esto
Código PHP:
<?php

if ($_SESSION['login']!=""){
         
//AQUI IRIA EL CODIGO DE LO QUE QUIERES QUE SE MUESTRE EN CASO DE ESTAR REGISTRADO
}
?>
De esta forma, esa parte solo se mostraria si el usuario esta logeado, y el resto se mostraria normalmente.
  #18 (permalink)  
Antiguo 24/02/2008, 11:09
 
Fecha de Ingreso: enero-2008
Mensajes: 43
Antigüedad: 16 años, 10 meses
Puntos: 1
Re: Mantener sesion abierta en webs con php

Utilizo un registro.html y un login.html. Y de php...

REGISTER.php
Código PHP:
    <?
    
// Configura los datos de tu cuenta
    
$dbhost='xxxxxxxxx';
    
$dbusername='xxxxxxxxx';
    
$dbuserpass='xxxxxxxxx';
    
$dbname='xxxxxxxxx';
    
// Conexión a la base de datos
    
mysql_connect ($dbhost$dbusername$dbuserpass);
    
// Seleccion de la base de datos
    
mysql_select_db($dbname) or die('Cannot select database');

    
// Preguntaremos si se han enviado ya las variables necesarias
    
if (isset($_POST["username"])) {
    
$username $_POST["username"];
    
$password $_POST["password"];
    
$cpassword $_POST["cpassword"];
    
$email $_POST["email"];
    
// Hay campos en blanco
    
if($username==NULL|$password==NULL|$cpassword==NULL|$email==NULL) {
    echo 
"un campo está vacio.";
    }else{
    
// ¿Coinciden las contraseñas?
    
if($password!=$cpassword) {
    echo 
"Las contraseñas no coinciden";
    }else{
    
// Comprobamos si el nombre de usuario o la cuenta de correo ya existían
    
$checkuser mysql_query("SELECT username FROM users WHERE username='$username'");
    
$username_exist mysql_num_rows($checkuser);

    
$checkemail mysql_query("SELECT email FROM users WHERE email='$email'");
    
$email_exist mysql_num_rows($checkemail);

    if (
$email_exist>0|$username_exist>0) {
    echo 
"EL nombre de usuario o la cuenta de correo estan ya en uso";
    }else{
    
//Todo parece correcto procedemos con la inserccion
    
$query "INSERT INTO users (username, password, email) VALUES('$username','$password','$email')";
    
mysql_query($query) or die(mysql_error());
    echo 
"El usuario $username ha sido registrado de manera satisfactoria.";
    }
    }
    }
    }
    
?>

LOGIN.php

Código PHP:
    <?
    $dbhost
='xxxxxxxxxx';
    
$dbusername='xxxxxxxxxx';
    
$dbuserpass='xxxxxxxxxx';
    
$dbname='xxxxxxxxxx';

// Conectar a la base de datos 
    
mysql_connect ($dbhost$dbusername$dbuserpass); 
    
mysql_select_db($dbname) or die('Cannot select database'); 

    if (
$_POST['username']) { 
    
//Comprobacion del envio del nombre de usuario y password 
    
$username=$_POST['username']; 
    
$password=$_POST['password']; 
    if(empty(
$password)) { 
    echo 
"La password esta vacia"
    }else{ 
    
$query mysql_query("SELECT username,password FROM users WHERE username = '$username'") or die(mysql_error()); 
    
$data mysql_fetch_array($query); 
    if(
$data['password'] != $password) { 
    echo 
"Login incorrecto"
    }else{ 
    
$query mysql_query("SELECT username,password FROM users WHERE username = '$username'") or die(mysql_error()); 
    
$row mysql_fetch_array($query); 
    @
session_start(); // <------- 
    
$_SESSION["s_username"] = $row['username']; 
    echo 
"Has sido logueado correctamente ".$_SESSION['s_username']." y puedes acceder al <a href='http://www.gilgo-designs.es/index.php'>ADMINISTRACIÓN</a>"
    } 
    } 
    }  
    
?>

LOGOUT.php
Código PHP:
<? session_start();
$_SESSION = array();
header("Location: index.php");
?>


INDEX.php (Que podria ser cualquier otra pagina ya html o php, donde solo pueda verse por usuario registrado)

Código PHP:
<?php
session_start
();
if (
$_SESSION['username']=="")
?> 
"Bienvenido al menú para administradores.
Aquí puedes puedes agregar contenidos"
Tambien probé con este:
Código PHP:
<?
session_start
();

if(isset(
$_SESSION['usuario']) and $_SESSION['estado'] == 'Autenticado')
{
       
// Lo dejas entrar a la pagina
}
else
{  
       
// Usuario que no se ha logueado
       
echo "No tienes permiso para entrar a esta pagina";
       exit();
}  
?>
"Bienvenido al menú para administradores.
Aquí puedes puedes agregar contenidos"
  #19 (permalink)  
Antiguo 24/02/2008, 11:18
 
Fecha de Ingreso: febrero-2008
Mensajes: 28
Antigüedad: 16 años, 8 meses
Puntos: 0
Re: Mantener sesion abierta en webs con php

Para eliminar la sesion yo uso este codigo, con el tuyo las variables las vacias, pero siges teniendo una sesion creada, o eso es la sensacion que me da, y estarias ocupando espacio que no usas.

Código PHP:
<?php 
session_start
(); 
// Borramos toda la sesion
session_destroy();
//Redireccionamos
header("Location: index.php");
?>
En caso de querer borrar una variable de session unicamente:
unset ( $_SESSION['password'] );
  #20 (permalink)  
Antiguo 24/02/2008, 11:21
Avatar de Carlojas  
Fecha de Ingreso: junio-2007
Ubicación: Shikasta
Mensajes: 1.272
Antigüedad: 17 años, 5 meses
Puntos: 49
Re: Mantener sesion abierta en webs con php

Vamos por partes en tu script registro tienes este error

Código PHP:
if($username==NULL|$password==NULL|$cpassword==NULL|$email==NULL) { 
    echo 
"un campo está vacio."
    }else{ 
No estas haciendo bien la comparacion deberia ser asi :

Código PHP:
if($username == NULL || $password == NULL || $cpassword == NULL || $email == NULL) { 
    echo 
"un campo está vacio."
    }else{ 
Aunque lo puedes hacer de esta forma

Código PHP:
if (empty($username) or empty($password) or empty($cpassword) or empty($email))
{
      echo 
"un campo está vacio."
}else{ 
Aqui tambien tienes el mismo error debe ser asi el operador logico OR son dos barras ||
Código PHP:
if ($email_exist>||$username_exist>0) {
    echo 
"EL nombre de usuario o la cuenta de correo estan ya en uso";
    }else{ 
En tu script de login creas esta variable de sesion
Código PHP:
$_SESSION["s_username"
y en tu script index validas con
Código PHP:
$_SESSION['username']; 
lo cual es incorrecto, debes escribir correctamentre las variables que estas utilizando sino no te va a reconocer la sesion. ademas en tu script loguot.php te falta el
Código PHP:
session_destroy(); 
antes del header("location: index.php");
arregla eso y miramos.

Saludos.

Última edición por Carlojas; 24/02/2008 a las 11:30
  #21 (permalink)  
Antiguo 24/02/2008, 12:07
Avatar de cfranco  
Fecha de Ingreso: enero-2008
Ubicación: Barcelona - España
Mensajes: 182
Antigüedad: 16 años, 9 meses
Puntos: 6
De acuerdo Mantener sesion abierta en webs con php

Muchas gracias a mi si que me sirvio .

Ahora quisiera saber si hay alguna funcion para mentener la sesion durante algun tiempo, por ejemplo 1 minuto y luego de ese tiempo destruir la sesion o reiniciar el logeado.
  #22 (permalink)  
Antiguo 24/02/2008, 12:14
Avatar de Carlojas  
Fecha de Ingreso: junio-2007
Ubicación: Shikasta
Mensajes: 1.272
Antigüedad: 17 años, 5 meses
Puntos: 49
Re: Mantener sesion abierta en webs con php

Mira este link creo que te puede servir Diferentes formas de cerrar sesion en PHP

Saludos.
  #23 (permalink)  
Antiguo 24/02/2008, 12:20
Avatar de cfranco  
Fecha de Ingreso: enero-2008
Ubicación: Barcelona - España
Mensajes: 182
Antigüedad: 16 años, 9 meses
Puntos: 6
De acuerdo Mantener sesion abierta en webs con php

Vale majo, muchas gracias , te pasate carlojas , me sirvio de mucho
  #24 (permalink)  
Antiguo 24/02/2008, 12:24
Avatar de Carlojas  
Fecha de Ingreso: junio-2007
Ubicación: Shikasta
Mensajes: 1.272
Antigüedad: 17 años, 5 meses
Puntos: 49
Re: Mantener sesion abierta en webs con php

No hay de que para eso estamos pa' colaborar en lo que podamos


Saludos.
  #25 (permalink)  
Antiguo 24/02/2008, 15:36
 
Fecha de Ingreso: enero-2008
Mensajes: 43
Antigüedad: 16 años, 10 meses
Puntos: 1
Re: Mantener sesion abierta en webs con php

Muchisimas gracias Carlojas, esto cada vez parece que llegará a su fin. xDD
Aunque hice todo lo que me dijiste, seguro que el error es mio, porque no me va T_T
Seguro que el fallo esta en index.php , no me aclaro con lo de poner las variables que estoy utilizando >_< (aun nosé como tratar con php).

Código PHP:
<?
session_start
();


if(isset(
$_SESSION['usuario']) and $_SESSION['s_username'] == 'Autenticado')
{
       
// Lo dejas entrar a la pagina
}
else
{  
       
// Usuario que no se ha logueado
       
echo "No tienes permiso para entrar a esta pagina";
       exit();
}  
?>
"Bienvenido al menú para administradores.
Aquí puedes puedes agregar contenidos"

EDITO______________________________
Creo entender lo de las variables pero si en login.php se nombra esto:
Código PHP:
    @session_start(); // <-------     
     
$_SESSION['usuario'] = $datos['username'];
     
$_SESSION['estado'] = 'Autenticado'
Y en index.php esto:
Código PHP:
session_start();
if(isset(
$_SESSION['usuario']) and $_SESSION['username'] == 'Autenticado'
¿No deberia de crearse la relación o algo así? Porque sigue diciendome que no estoy identificado...
Aunque no entiendo de php quizás suelto una burrada.

Pero no deberia ser en index.php:
Código PHP:
if(isset($_SESSION['usuario'])= $datos['username'] and $_SESSION['estado'] = 'Autenticado'
Si estoy diciendo en el login.php que usuario=username y estado=autenticado, en vez de usuario y username/estado = autenticado

Última edición por EphramDoyle; 24/02/2008 a las 16:18
  #26 (permalink)  
Antiguo 25/02/2008, 03:01
 
Fecha de Ingreso: enero-2008
Mensajes: 43
Antigüedad: 16 años, 10 meses
Puntos: 1
Re: Mantener sesion abierta en webs con php

Ya me funciona!!!! Muchas gracias carlojas y todos los demás.

La solución estaba en editar la variable.
CORRECTA
Código PHP:
    @session_start(); // <-------     
    
$_SESSION['usuario'] = $_POST['username'];
    
$_SESSION['estado'] = 'Autenticado'
MAL
Código PHP:
   @session_start(); // <-------     
     
$_SESSION['usuario'] = $datos['username'];
     
$_SESSION['estado'] = 'Autenticado'
En cuanto pueda pongo los codigos corregidos en el primer post para que sirva para otros.

Última edición por EphramDoyle; 25/02/2008 a las 03:11
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.
Tema Cerrado

SíEste tema le ha gustado a 1 personas




La zona horaria es GMT -6. Ahora son las 15:36.