Foros del Web » Programando para Internet » PHP »

Mantener sesion entre paginas

Estas en el tema de Mantener sesion entre paginas en el foro de PHP en Foros del Web. Hola forosdelweb,he onseguido crear un login de forma sencilla , ahor quiero mantener la sesión entre diversas páginas Entonces os paso como lo tengo Este ...
  #1 (permalink)  
Antiguo 17/01/2013, 07:27
 
Fecha de Ingreso: diciembre-2011
Mensajes: 414
Antigüedad: 12 años, 11 meses
Puntos: 1
Mantener sesion entre paginas

Hola forosdelweb,he onseguido crear un login de forma sencilla , ahor quiero mantener la sesión entre diversas páginas

Entonces os paso como lo tengo

Este es el formulario html

Cita:
<form method="POST" id="cuenta" action="iniciarsesion3.php">
Nombre de usuario: <input type="text" name="correo">
</br>
Contraseña:<input type="password" name="contraseña">
</br>
<input type="submit" value="Iniciar Sesion" name="iniciar">
</form>
Seguido a continuación de su php correspondiente

Cita:
<?php
include("config.php");
session_start("usuario");
$correo = $_POST["correo"];
$contraseña = $_POST["contraseña"];
$busqueda = mysql_query("select * from users where correo = '".$correo."' and contraseña = '".$contraseña."'");
if($row=mysql_fetch_array($busqueda)){
$_SESSION["usuario"]=$usuario;
echo "Si";
}else{
echo "No";
}
?>
Entonces mi pregunta es como puedo mantener la sesión??
  #2 (permalink)  
Antiguo 17/01/2013, 07:41
 
Fecha de Ingreso: septiembre-2012
Ubicación: Argentina
Mensajes: 144
Antigüedad: 12 años, 2 meses
Puntos: 12
Respuesta: Mantener sesion entre paginas

Hola! como estas?

Es sencillo en cada pagina php solo tienes que poner session_start();

saludos!
  #3 (permalink)  
Antiguo 17/01/2013, 07:44
Avatar de h2swider  
Fecha de Ingreso: julio-2007
Ubicación: Ciudad de Buenos Aires
Mensajes: 932
Antigüedad: 17 años, 4 meses
Puntos: 194
Respuesta: Mantener sesion entre paginas

$_SESSION es una variable superglobal, que ya de por si la tienes en todas las paginas. Solo necesitas hacer un session_start en cada pagina que uses.

Yo personalmente te recomendaria sacar el session_start de donde lo tienes ahora, y agregarlo como primera instruccion de tu archivo config...

Intenta algo como

Código PHP:
Ver original
  1. if( !isset($_SESSION)){
  2.     session_start();
  3. }

para evitar reabrir una session iniciada
__________________
Codifica siempre como si la persona que finalmente mantedra tu código sea un psicópata violento que sabe donde vives
  #4 (permalink)  
Antiguo 17/01/2013, 07:45
Avatar de rodno  
Fecha de Ingreso: enero-2009
Ubicación: En algun lugar de Cuba
Mensajes: 426
Antigüedad: 15 años, 9 meses
Puntos: 43
Respuesta: Mantener sesion entre paginas

Buenas,

haces session_start(); en el inicio de cada pagina

y despues utilizas

$_SESSION["usuario"]

Saludos ;)
__________________
"No te preocupes si no funciona bien. Si todo lo hiciera, no tendrías trabajo."
"El problema no es no saber, sino no saber quién sabe"
..::Con Karma se piensa mejor::..
  #5 (permalink)  
Antiguo 18/01/2013, 07:43
 
Fecha de Ingreso: diciembre-2011
Mensajes: 414
Antigüedad: 12 años, 11 meses
Puntos: 1
Respuesta: Mantener sesion entre paginas

Perfecto ahora tengo un session_start() en cada págin tal y como decis , pero quiero que carguen a la vez que inicio la sesion los datos del usuario que estan en la base de datos se que es algo de

$_SESION=$row['alias']

por decir algo así?pero aplicandose ha este if??
  #6 (permalink)  
Antiguo 18/01/2013, 08:12
Avatar de DeivisAndres  
Fecha de Ingreso: febrero-2012
Ubicación: Colombia
Mensajes: 305
Antigüedad: 12 años, 9 meses
Puntos: 41
Respuesta: Mantener sesion entre paginas

Estas tratando de realizar esto:

Código Javascript:
Ver original
  1. $_SESSION['User'] = $row['usuario'];
  2. $_SESSION['Mail'] = $row['correo'];
  3. //etc....
  #7 (permalink)  
Antiguo 23/01/2013, 05:22
 
Fecha de Ingreso: diciembre-2011
Mensajes: 414
Antigüedad: 12 años, 11 meses
Puntos: 1
Respuesta: Mantener sesion entre paginas

Este es mi php

Cita:
<?php
include("config.php");
session_start("usuario");
$correo = $_POST["correo"];
$contraseña = $_POST["contraseña"];
$busqueda = mysql_query("select * from users where correo = '".$correo."' and contraseña = '".$contraseña."'");
if($row=mysql_fetch_array($busqueda)){
echo "Si";
}else{
echo "No";
}
print_r($_SESSION);
?>
Si es algo como lo que me estás diciendo :)
  #8 (permalink)  
Antiguo 23/01/2013, 07:12
Avatar de rodno  
Fecha de Ingreso: enero-2009
Ubicación: En algun lugar de Cuba
Mensajes: 426
Antigüedad: 15 años, 9 meses
Puntos: 43
Respuesta: Mantener sesion entre paginas

Cita:
Iniciado por kfh1992 Ver Mensaje
Este es mi php
Si es algo como lo que me estás diciendo :)
Buenas,

Pero unas vez encontrado el usuario que se esta logiando, es que le das el valor a la variable de session,

if (mysql_num_rows($busqueda) > 0) // aunque deberias ser == 1,
{
$_SESSION['correo'] = $_POST["correo"];
/// O si tienes una clase defina para el usuario
$row=mysql_fetch_array($busqueda);
$_SESSION['user'] = new User($row['correo'],$row['otro'],$row['otro2']);

}

Saludos
__________________
"No te preocupes si no funciona bien. Si todo lo hiciera, no tendrías trabajo."
"El problema no es no saber, sino no saber quién sabe"
..::Con Karma se piensa mejor::..
  #9 (permalink)  
Antiguo 24/01/2013, 05:46
 
Fecha de Ingreso: diciembre-2011
Mensajes: 414
Antigüedad: 12 años, 11 meses
Puntos: 1
Respuesta: Mantener sesion entre paginas

No entiendo lo que me intentas decir,lo que quiero es obtener los datos del user logueado en la base de datos , de la manera que me dices se obtiene del formulario no??
  #10 (permalink)  
Antiguo 24/01/2013, 06:50
Avatar de rodno  
Fecha de Ingreso: enero-2009
Ubicación: En algun lugar de Cuba
Mensajes: 426
Antigüedad: 15 años, 9 meses
Puntos: 43
Respuesta: Mantener sesion entre paginas

Buenas,

Lo que te intento explicar, es que,

Una vez comprobado que el usuario existe en la BD, es que almacenas los datos en la variable de session,

cuando puse como ejemplo:

$_SESSION['correo'] = $_POST["correo"];

te quise decir que, esta almacenando el correo en la variable de session correo,

$_POST["correo"], $correo y $row['correo'] sus valores son iguales, una vez comprobado en la BD que existe, asi, que puedes hacer

$_SESSION['correo'] = $_POST["correo"];
o
$_SESSION['correo'] = $correo;
o
$_SESSION['correo'] = $row["correo"];

que vas a obtener el mismo resultado,

Ahora, cuando deseas guardar todos los datos del usuario en la variable de session no seria bueno que lo hicieras así:

$_SESSION['correo'] = $row["correo"];
$_SESSION['campo1'] = $row["campo1"];
.
.
$_SESSION['campoN'] = $row["campoN"];

porque tendrias muchas variables de session por cada usuario logiado en tu sistema,

como mejor seria y hasta cierto punto segun he leido

que te crearas una clase para ese usuario y guardaras el objeto del usuario

$_SESSION['user'] = new User($row['correo'],$row['campo1'],...,$row['campoN']);

Segun he leido en este foro, es que, solo guardaras, el identificado de usuario:

$_SESSION['user'] = $row['idUser'] o $_SESSION['user'] = $row['correo'] , segun como tu lo tengas establecido, y cuando desees mostrar la informacion del usuario, consultas la BD

PD: Disculpen por los Highlight

Saludos
__________________
"No te preocupes si no funciona bien. Si todo lo hiciera, no tendrías trabajo."
"El problema no es no saber, sino no saber quién sabe"
..::Con Karma se piensa mejor::..

Etiquetas: formulario, html, mysql
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 12:53.