Foros del Web » Programando para Internet » PHP »

problemas con sesiones y logueos

Estas en el tema de problemas con sesiones y logueos en el foro de PHP en Foros del Web. HOLA Estoy haciendo un ejercicio que consiste en loguearte y entrar a tu zona privada, pero tengo problemas con las sesiones y el nombre del ...
  #1 (permalink)  
Antiguo 05/04/2008, 15:33
 
Fecha de Ingreso: marzo-2008
Mensajes: 16
Antigüedad: 16 años, 1 mes
Puntos: 0
Pregunta problemas con sesiones y logueos

HOLA

Estoy haciendo un ejercicio que consiste en loguearte y entrar a tu zona privada, pero tengo problemas con las sesiones y el nombre del usuario loqueado no se me mantiene entre sus páginas privadas.


Este es el error que me da al loguearse

Unknown: Your script possibly relies on a session side-effect which existed until PHP 4.2.3. Please be advised that the session extension does not consider global variables as a source of data, unless register_globals is enabled. You can disable this functionality and this warning by setting session.bug_compat_42 or session.bug_compat_warn to off, respectively. in Unknown on line 0


Creo que el problema puede encontrarse en esta funcion:

function check_valid_user()

{
//$valid_user= $_POST["valid_user"];
global $valid_user;

if (session_is_registered("valid_user"))
{
echo "Logged in como $valid_user.";
echo "<br>";
}
else
{
// si no está logged in
do_html_heading("Problema:");
echo "No estás logged in.<br>";
do_html_url("login.php", "Login");
do_html_footer();
exit;
}
}
  #2 (permalink)  
Antiguo 05/04/2008, 15:40
 
Fecha de Ingreso: marzo-2008
Mensajes: 166
Antigüedad: 16 años
Puntos: 5
Re: problemas con sesiones y logueos

al parecer lo que haces es que declaras mal las variables... para declararlas es asi:

$_SESSION['valid_user'] = "juanito";

$usuario = $SESSION['valid_user'];

entonces asi la puedes usar: echo "bienvenido $usuario";

Saludos.
  #3 (permalink)  
Antiguo 05/04/2008, 16:12
 
Fecha de Ingreso: marzo-2008
Mensajes: 16
Antigüedad: 16 años, 1 mes
Puntos: 0
Re: problemas con sesiones y logueos

Muchas gracias por responder tan pronto.
He probado como me has dicho.

$_SESSION['valid_user'] = "juanito";

$usuario = $_SESSION['valid_user'];

if (session_is_registered("valid_user"))
{
echo "Logged in como $usuario.";
echo "<br>";
}


Si dejo puesto "juanito" el nombre se mantiene entre las páginas, pero en cuanto lo cambio por $_POST["username"] para que me coja el nombre de usuario que se ha logueado en ese momento, se niega!! (y el campo name del formulario se llama username)
  #4 (permalink)  
Antiguo 05/04/2008, 16:19
 
Fecha de Ingreso: marzo-2008
Mensajes: 16
Antigüedad: 16 años, 1 mes
Puntos: 0
Re: problemas con sesiones y logueos

Este es el formulario de acceso, que se me olvido copiarle


function display_login_form()
{
?>
<a href="register_form.php">¿No eres un miembro aún?</a>
<form method="post" action="member.php">
<table bgcolor=#cccccc>
<tr>
<td colspan=2>Miembros identificarse aquí:</td>
<tr>
<td>Nombre Usuario:</td>
<td><input type="text" name="username"></td></tr>
<tr>
<td>Contraseña:</td>
<td><input type="password" name="passwd"></td></tr>
<tr>
<td colspan=2 align=center>
<input type="submit" value="Log in"></td></tr>
<tr>
<td colspan=2><a href="forgot_form.php">¿Olvidastes tu Contraseña?</a></td>
</tr>
</table></form>
<?
}
  #5 (permalink)  
Antiguo 05/04/2008, 18:32
 
Fecha de Ingreso: marzo-2008
Mensajes: 166
Antigüedad: 16 años
Puntos: 5
Re: problemas con sesiones y logueos

Entonces el problema al parecer es que escribes mal el script.. corectamente sería asi:

$username = $_POST['username'] ; // Ojo comillas simples en el array

$_SESSION['valid_user'] = $username; // No usé el array directo, sino una copia de su valor.

Así te debería funcionar :D

Saludos.
  #6 (permalink)  
Antiguo 05/04/2008, 20:37
 
Fecha de Ingreso: abril-2006
Mensajes: 1.128
Antigüedad: 18 años
Puntos: 33
Re: problemas con sesiones y logueos

Cita:
Iniciado por snika83 Ver Mensaje
$usuario = $_SESSION['valid_user'];
if (session_is_registered("valid_user"))
{

echo "Logged in como $usuario.";
echo "<br>";
}
Snika83:
Debieras usar esta parte asi:
if(isset($_SESSION['valid_user']))
{
$usuario = $_SESSION['valid_user'];
echo "Logged in como $usuario";
echo "<br>";
}
Saludos
Y espero te ayude
Franco
  #7 (permalink)  
Antiguo 06/04/2008, 03:39
 
Fecha de Ingreso: marzo-2008
Mensajes: 16
Antigüedad: 16 años, 1 mes
Puntos: 0
Re: problemas con sesiones y logueos

Buenos días

Creo que hemos ido avanazando algo, al menos eso parece....
Ahora ya me mantiene el nombre del usuario logueado entre sesiones.

En la funcion que valida. Puse esto:

function check_valid_user()
{
$username = $_POST['username'] ;
if (isset($_SESSION['valid_user']))
{
$username=$_SESSION['valid_user'];
echo "Logged in como ".$username.".";
echo "<br>";
}
else.....


Y en la página a la que va después de loguearse y que comprueba que esta validado para poder acceder. Esto:

$username = $_POST["username"];
$_SESSION['valid_user'] = $_POST["username"];
session_register("valid_user");

Pero debe estar mal o me falta algo, ya que, por ejemplo, los cambios que hace juanito cuando esta logueado se guardan en la base de datos pero con el nombre de usuario vacio. Si voy a la base de datos y pongo el nombre de usuario "juanito" a mano en su cambio y vuelvo a loguearme como ese usuario, no aparece ese cambio... Y solo veo los cambios que no tiene nombre de usuario (estando logueado con cualquir usuario)

Asi que eso me da que pensar que, aunque mantenga el nombre de cada usuario en sus páginas hasta que hago un logout, realmente no estoy dentro de la zona privada de cada usuario, si no en una zona privada "general" para todos.

¿Cómo hago para acceder realmente a la zona privada de cada usuario y que los cambios realizados se guarden con el nombre de cada usuario?

No se si me habré explicado bien, la verdad es que es un lío y mi código un mundo. De todos modos muchas gracias a los que os habeis interesado y habéis tratado de ayudar.

Buen día!
  #8 (permalink)  
Antiguo 06/04/2008, 06:00
 
Fecha de Ingreso: marzo-2008
Mensajes: 16
Antigüedad: 16 años, 1 mes
Puntos: 0
De acuerdo Re: problemas con sesiones y logueos

Hola de nuevo

Creo que ya he arreglado parte de mis problemas

en cada pagina privada pongo :

check_valid_user();
$valid_user = $_SESSION['valid_user'];

y con eso me reconoce a cada usuario

No se si será chapucero pero me funciona.

Gracias!

Ahora a seguir con el resto de cosas
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 06:59.