Foros del Web » Programando para Internet » PHP »

Ayuda con sesiones

Estas en el tema de Ayuda con sesiones en el foro de PHP en Foros del Web. Wenas! tengo un problemilla con sesiones... veran aki les pongo el codigo: Código PHP: <?php session_cache_limiter ( 'nocache,private' );              session_name ( 'usuario' );              session_start ...
  #1 (permalink)  
Antiguo 24/03/2010, 07:07
 
Fecha de Ingreso: abril-2009
Mensajes: 106
Antigüedad: 15 años
Puntos: 1
Ayuda con sesiones

Wenas!
tengo un problemilla con sesiones...
veran aki les pongo el codigo:

Código PHP:
<?php session_cache_limiter('nocache,private');
            
session_name('usuario');
            
session_start();?>
ahi comienzo la sesion.

este otro esta en la misma pagina:

Código PHP:
<?php
          
              
            $_SESSION
['Usuario']=$_POST['user'];
            
$_SESSION['hora']= date("h : i : s");
            
$_SESSION['fecha']= date("j-n-Y");?>

el problema viene en el siguiente script:

Código PHP:
<?php 
    session_cache_limiter
('nocache,private');
    
session_start();
    
$usuario=$_SESSION['Usuario'];        
            
?>
imprimo por pantalla el valor de la variable $usuario y me imprime root siempre, cuando esa variable deberia valer por ejemplo: salva.

ando un poco rayado pq no se pq toma el valor de root...


como siempre gracias de antemano.

Gracias
  #2 (permalink)  
Antiguo 24/03/2010, 09:23
Avatar de AnesGy  
Fecha de Ingreso: mayo-2009
Mensajes: 518
Antigüedad: 14 años, 11 meses
Puntos: 19
Respuesta: Ayuda con sesiones

Mira a ver k hay en $_POST['user'] cuando cargues la variable en la sesión. Por el momento no se me ocurre otra.
__________________
Si alguna vez parece que soy grosero, pido perdón, es un intento fallido de ser directo.

AnesGy SD. Name it, Get it
  #3 (permalink)  
Antiguo 24/03/2010, 09:33
Avatar de lobo_php  
Fecha de Ingreso: noviembre-2007
Ubicación: Cali-Colombia
Mensajes: 1.869
Antigüedad: 16 años, 5 meses
Puntos: 75
Respuesta: Ayuda con sesiones

No sé, tengo entendido que session_start() debe ser la primera línea de código despues del <?php, no sé si las nuevas versiones de php se vaya omitiendo eso.
También veo que 'Usuario' no es lo mismo que 'usuario' por lo menos no en sistemas Unix, aunque probando el windows 7 también compara mayusculas y minusculas, hazle caso a @AnesGy, imprime lo que trae $_POST['user'] a ver si trae root o salva.

Saludos
__________________
Cabuntu.org - Difundiendo Software Libre en Cali, Colombia
Usuario Linux # 483175
  #4 (permalink)  
Antiguo 24/03/2010, 09:35
 
Fecha de Ingreso: diciembre-2009
Mensajes: 612
Antigüedad: 14 años, 4 meses
Puntos: 16
Respuesta: Ayuda con sesiones

Cita:
Iniciado por lobo_php Ver Mensaje
No sé, tengo entendido que session_start() debe ser la primera línea de código despues del <?php, no sé si las nuevas versiones de php se vaya omitiendo eso.
También veo que 'Usuario' no es lo mismo que 'usuario' por lo menos no en sistemas Unix, aunque probando el windows 7 también compara mayusculas y minusculas, hazle caso a @AnesGy, imprime lo que trae $_POST['user'] a ver si trae root o salva.

Saludos
Es más facil que sea lo que dices, debe estar en la primera linea, creo(o al menos antes de cualquier salida a pantalla, y supongo que antes de asignarle un valor a una session
  #5 (permalink)  
Antiguo 24/03/2010, 09:45
Avatar de venom_mau  
Fecha de Ingreso: julio-2009
Mensajes: 152
Antigüedad: 14 años, 9 meses
Puntos: 2
Respuesta: Ayuda con sesiones

Coincido con lobo y millan.

Después de abrir el código de php debes comenzar la sesión, después de esto, lo que quieras...

Una pregunta de dónde obtienes ese $_POST['user']; ???
  #6 (permalink)  
Antiguo 24/03/2010, 09:49
Avatar de AnesGy  
Fecha de Ingreso: mayo-2009
Mensajes: 518
Antigüedad: 14 años, 11 meses
Puntos: 19
Respuesta: Ayuda con sesiones

Posiblemente de un formulario, por eso quiero que me enseñe k tiene antes de asignarle el valor a la sesión.

En principio si intentas cargar sesiones habiendo enviado un output antes (osea, mandar cualquier header después de mandar el cuerpo) PHP ignora el header (al menos en mi apache).

Luego, es verdad lo que dicen, el índice 'usuario' no es el mismo que el índice 'Usuario'
__________________
Si alguna vez parece que soy grosero, pido perdón, es un intento fallido de ser directo.

AnesGy SD. Name it, Get it
  #7 (permalink)  
Antiguo 25/03/2010, 03:24
 
Fecha de Ingreso: abril-2009
Mensajes: 106
Antigüedad: 15 años
Puntos: 1
Respuesta: Ayuda con sesiones

wenas!
mirad aki os dejo el formulario dnd recojo la variable user.
he cambiado el metodo del formulario por GET.
weno os dejo el codigo:

<?php
echo "<form id='login' name='login' method='get' action='logueado.php'>
<table width='200' border='0' align='center'>
<tr>
<td align='left'>Usuario:</td>
<td><label>
<input type='text' name='user' id='user' />
</label></td>
</tr>
<tr>
<td align='left'>Password:</td>
<td><label>
<input type='password' name='pass' id='pass' />
</label></td>
</tr>
<tr>
<td>&nbsp;</td>
<td>&nbsp;</td>
</tr>
<tr>
<td><label>
<input type='submit' name='login' id='login' value='Login' />
</label></td>
<td>&nbsp;</td>
</tr>
</table>
</form>
";
?>


muxas gracias a todos!
salu2
  #8 (permalink)  
Antiguo 25/03/2010, 03:29
 
Fecha de Ingreso: abril-2009
Mensajes: 106
Antigüedad: 15 años
Puntos: 1
Respuesta: Ayuda con sesiones

acabo de probar lo k me posteasteis de los indices... cambie el indice usuario por Usuario y sigue mostrandome root.
comprobe el valor del get cuando lo recojo y toma el valor k debe tomar; en mi caso estoy probando con mi usuario, lo imprimo por pantalla y perfecto pero luego imprimo el valor de la variable de sesion e imprime root...

como siempre muxas gracias a todo el equipo y a todos.
salu2
  #9 (permalink)  
Antiguo 25/03/2010, 04:23
Avatar de Tokkara  
Fecha de Ingreso: junio-2008
Mensajes: 131
Antigüedad: 15 años, 10 meses
Puntos: 5
Respuesta: Ayuda con sesiones

No se si será por esto, pero el formulario tuyo usa el método get (method="get"). Por tanto tienes que usar la supervariable $_GET y no $_POST.

Código PHP:
<?php
          
              
            $_SESSION
['Usuario']=$_GET['user'];
            
$_SESSION['hora']= date("h : i : s");
            
$_SESSION['fecha']= date("j-n-Y");
?>
__________________
Revolucionario controlador de plantillas para php
www.simphple.com
  #10 (permalink)  
Antiguo 25/03/2010, 06:18
 
Fecha de Ingreso: abril-2009
Mensajes: 106
Antigüedad: 15 años
Puntos: 1
Respuesta: Ayuda con sesiones

Tokkara justamente la respuesta anterior a la tuya expongo que modifique el formulario a get, por lo tanto si modifico a get todos los demas tb los modifique.

gracias de todas maneras tokkara.

salu2
  #11 (permalink)  
Antiguo 25/03/2010, 13:24
Avatar de AnesGy  
Fecha de Ingreso: mayo-2009
Mensajes: 518
Antigüedad: 14 años, 11 meses
Puntos: 19
Respuesta: Ayuda con sesiones

Se me ocurre que puedes probar a quitar el session_cache_limiter o a ponerlo debajo del session_start.
__________________
Si alguna vez parece que soy grosero, pido perdón, es un intento fallido de ser directo.

AnesGy SD. Name it, Get it
  #12 (permalink)  
Antiguo 26/03/2010, 06:59
 
Fecha de Ingreso: abril-2009
Mensajes: 106
Antigüedad: 15 años
Puntos: 1
Respuesta: Ayuda con sesiones

wenas AnesGy probé tu solucion y la verdad que sigue igual, sigue tomando por valor la variable ROOT.

ando bastante rayado... no se pq toma ese valor

gracias
  #13 (permalink)  
Antiguo 26/03/2010, 14:55
Avatar de AnesGy  
Fecha de Ingreso: mayo-2009
Mensajes: 518
Antigüedad: 14 años, 11 meses
Puntos: 19
Respuesta: Ayuda con sesiones

Hum... es que no veo donde está mal. A veces cuando tengo un fallo que no encuentro la solución reinicio el código (o al menos la parte del código, si empezase el código entero cada vez que no me saliera algo sería terrible, XD).
__________________
Si alguna vez parece que soy grosero, pido perdón, es un intento fallido de ser directo.

AnesGy SD. Name it, Get it
  #14 (permalink)  
Antiguo 27/03/2010, 04:07
 
Fecha de Ingreso: agosto-2005
Ubicación: Argentina, Capital Federal
Mensajes: 435
Antigüedad: 18 años, 8 meses
Puntos: 2
Respuesta: Ayuda con sesiones

No se porque al hacer un echo de $_SESSION['Usuario'] te muestra la cadena "root" aunque probablemente tengas algún otro lío en el código que te esté creando esta variable con este nombre.

El problema es que en el código donde estás creando tu $_SESSION['Usuario'] has llamado a session_name('usuario') dándole así un nombre distinto a la cookie que contiene el ID de tu sesión en el navegador del cliente. Luego en la otra página, donde quieres recuperar la variable $_SESSION['Usuario'] no llamas nuevamente a session_name('usuario') por lo que PHP asume que debe pedir la cookie con el nombre que esté definido por defecto.

Además agrego que tanto session_cache_limiter() como session_name() deben ser llamadas ANTES que session_start() y que tampoco es necesario que llames a session_start() en la 1º línea de tu código... date una vuelta por el manual de PHP para ver los comportamientos de estas funciones.

Saludos.
__________________
R4DS en español | R4DS en inglés

Etiquetas: sesiones
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 05:13.