Foros del Web » Programando para Internet » PHP »

Sesiones: ¿Qué estoy haciendo mal?

Estas en el tema de Sesiones: ¿Qué estoy haciendo mal? en el foro de PHP en Foros del Web. Hola a todos! Resulta que estoy trabajando por primera vez con sesiones, con una simple autenticación de ingreso a sector restringido y coloqué el código ...
  #1 (permalink)  
Antiguo 11/05/2005, 13:32
Avatar de verinchi  
Fecha de Ingreso: septiembre-2004
Ubicación: Buenos Aires
Mensajes: 647
Antigüedad: 13 años, 2 meses
Puntos: 2
Sesiones: ¿Qué estoy haciendo mal?

Hola a todos!
Resulta que estoy trabajando por primera vez con sesiones, con una simple autenticación de ingreso a sector restringido y coloqué el código de la siguiente manera:
Pagina login. El formulario manda bien los datos, eso lo he comprobado.
Código PHP:
<?php require_once('Connections/coninfo.php'); ?>
<?php
$usua
$_POST["nombre"];
$pass$_POST["password"];
$redirbien="benvenue.php?usua=".$usua;
$redirmal="malvenue.php";
//$usua y $pass llegan como usuario y password del formulario
//si la consulta no llega vacía tiene que crear la sesion y redireccionar
mysql_select_db($database_coninfo$coninfo);
$seleccion="SELECT nombre, nivel FROM usuarios WHERE nombre = '$usua' AND password='$pass'";
$result mysql_query($seleccion$coninfo) or die(mysql_error());
if(
$row mysql_fetch_array($result)) {
$nivel=$row['nivel'];
session_name('usuario');
session_start();
$_SESSION['usuario']=$nivel;
header("Location: ".$redirbien);
}
else
header("Location: ".$redirmal);
Luego, redirecciona a la pagina de bienvenida que contiene este código:

Código PHP:
//esto en las dos primeras lineas
<?php session_start();?>
<?php $usua
$_GET["usua"];?>
//Después
<meta http-equiv="refresh" content="4;URL=menu.php?usua=<?php echo $usua;?>">
//Dentro del htm que da la bienvenida
Bienvenido <?php echo $usua;?> <?php echo $_SESSION['usuario'];?>
//imprimo la sesion para controlar que esté correcta.
Aqui es donde tengo un problema, porque cuando quiero imprimirla me tira un error de undefined index usuario en la página que se está ejecutando.
Redireccionar a donde tiene que redireccionar lo hace correctamente, pero otra vez tengo el problema que no puedo imprimir el contenido de la variable de sesion, y eso me complica porque tengo diferentes niveles de usuario que tienen acceso a distintos sectores del sitio.
Qué es lo que estoy haciendo mal????
Lo que hice en un primer momento fue imprimir el contenido de la variable de sesión, sin redireccionar, justo despues de crearla, y ahí si que me mostró el resultado tal y como debe estar.
Por favor! necesito ayuda URGENTEMENTE!!!! Hace horas que le doy vueltas a esto sin un resultado positivo.
Les agradezco de antemano a todos!!!!
Un saludo grande
__________________
Why can't we not be sober?
www.partitorium.com.ar

Última edición por verinchi; 11/05/2005 a las 13:35 Razón: mal colocadas las etiquetas de código
  #2 (permalink)  
Antiguo 11/05/2005, 13:42
Avatar de dwaks  
Fecha de Ingreso: agosto-2002
Ubicación: Panamá
Mensajes: 962
Antigüedad: 15 años, 4 meses
Puntos: 15
$nivel=$row['nivel'];
session_name('usuario');
session_start();

Debes poner session_start() al inicio de todo.

prueba poniendolo antes de la linea:
<?php require_once('Connections/coninfo.php'); ?>

que quede asi:
<?php session_start()?>
<?php require_once('Connections/coninfo.php'); ?>
  #3 (permalink)  
Antiguo 11/05/2005, 13:56
Avatar de verinchi  
Fecha de Ingreso: septiembre-2004
Ubicación: Buenos Aires
Mensajes: 647
Antigüedad: 13 años, 2 meses
Puntos: 2
.

Muchísimas gracias!!!!
Ya me funcionó de maravillas!!!
Realmente que no me di cuenta... en todos los post que leí decía que session_start(); se coloca antes que cualquier instrucción en la página, pero no. Lo coloco en cualquier parte
Y bueh! el que sabe sabe, y el que no aprende a los golpes verdad????
Mil gracias nuevamente por tu ayuda, me sirvió sinceramente de mucho
__________________
Why can't we not be sober?
www.partitorium.com.ar
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 21:41.