Foros del Web » Programando para Internet » PHP »

problema con sesiones

Estas en el tema de problema con sesiones en el foro de PHP en Foros del Web. Hola amigos tengo unos problemitas con sesiones...Tengo instalado en mi maquina local apache y php 4 y no se si estoy haciendo algo mal o ...
  #1 (permalink)  
Antiguo 10/05/2004, 07:46
 
Fecha de Ingreso: septiembre-2003
Mensajes: 25
Antigüedad: 14 años, 2 meses
Puntos: 0
problema con sesiones

Hola amigos tengo unos problemitas con sesiones...Tengo instalado en mi maquina local apache y php 4 y no se si estoy haciendo algo mal o tengo algun problema de configuracion...estoy haciendo lo siguiente:

archivo index.php

<?
session_start();
$_SESSION["variable"]="valor";
echo "<a href=\"imprime.php?" . SID . "\">click</a>";
?>

archivo imprime.php

<?
session_start();
echo $_SESSION["variable"];
echo session_id();
?>

el id de session se esta propagando correctamente porque si pincho el link repetidas veces siempre se imprime el mismo id de sesion,, pero cuando hago

echo $_SESSION["variable"];

no se imprime el valor de la variable de sesion como si esta no existiera...que sera?????

Otro tema relacionado a sesiones::
hago lo siguiente para autenticar un usuario (los datos vienen de otra paginita de logueo)

<?
include("../funciones.php");
$sql="SELECT usuario,clave FROM usuario";
$res=mysql_query($sql,$con);
$log="";
while ($fila=mysql_fetch_array($res))
if (($usuario==$fila["usuario"]) && ($clave==$fila["clave"]))
$login="ok";
if ($login=="ok"){
session_start();
$_SESSION['autenticacion']="ok";
?>

como puedo hacer para redireccionar automaticamente al usuario a la pagina que corresponda y a su vez propagar la sesion??

Bueno espero que no sean demasidas preguntas, desde ya gracias
  #2 (permalink)  
Antiguo 10/05/2004, 08:29
 
Fecha de Ingreso: enero-2004
Ubicación: Santiago - Chile
Mensajes: 45
Antigüedad: 13 años, 11 meses
Puntos: 0
De acuerdo mmm

tal vez debas registrar primero la variable de session, o sea:


<?
session_start();
register_session("variable");
$_SESSION["variable"]="valor";
echo "<a href=\"imprime.php?" . SID . "\">click</a>";
?>

archivo imprime.php

<?
session_start();
echo $_SESSION["variable"];
echo session_id();
?>

ahí no debería haber problemas.

Saludos,

DaMMsteiN
__________________
Solo sé que nada sé.

Última edición por DaMMsteiN; 10/05/2004 a las 17:12
  #3 (permalink)  
Antiguo 10/05/2004, 08:39
 
Fecha de Ingreso: septiembre-2003
Mensajes: 25
Antigüedad: 14 años, 2 meses
Puntos: 0
Hola DaMMsteiN sabes que ya probe hacer eso y tampoco puedo recuperar el valor de la variable...no se que pasara...igualmente gracias
  #4 (permalink)  
Antiguo 10/05/2004, 08:46
 
Fecha de Ingreso: enero-2004
Ubicación: Santiago - Chile
Mensajes: 45
Antigüedad: 13 años, 11 meses
Puntos: 0
De acuerdo OPCION 2

Hola:

entonces prueba dejar la variable de session en una variable corriente y luego muestras la variable corriente, o sea:

<?
session_start();
register_session("variable");
$_SESSION["variable"]="valor";
echo "<a href=\"imprime.php?" . SID . "\">click</a>";
?>

archivo imprime.php

<?
session_start();

$variable = "$_SESSION[variable]";
echo $variable;
echo session_id();
?>

ahí no debería haber problemas, espero funcione.

Saludos,

DaMMsteiN
__________________
Solo sé que nada sé.

Última edición por DaMMsteiN; 10/05/2004 a las 17:11
  #5 (permalink)  
Antiguo 10/05/2004, 09:00
 
Fecha de Ingreso: septiembre-2003
Mensajes: 25
Antigüedad: 14 años, 2 meses
Puntos: 0
Voy a probar lo que me decis despues te comento, saludos
  #6 (permalink)  
Antiguo 10/05/2004, 11:34
 
Fecha de Ingreso: enero-2004
Ubicación: Santiago - Chile
Mensajes: 45
Antigüedad: 13 años, 11 meses
Puntos: 0
Pregunta funciona?

funcionó ??

Saludos,

DaMMsteiN
__________________
Solo sé que nada sé.
  #7 (permalink)  
Antiguo 10/05/2004, 16:37
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 15 años, 11 meses
Puntos: 126
Esto no existe ..
register_session["variable"];

la función que supongo que hacia referencia es:
session_register("variable");

pero si ya usas los arrays superglobales $_SESSION .. NO uses nunca session_register() ni funciones afines .. usa los arrays superglobales.

El uso de los arrays superglobales es válido desde PHP 4.1.0 en adelante .. antes de esas versiones tendrás que usar $HTTP_SESSION_VARS o bien las funciones session_register("variable") y obtenerlas como globlales : $variable (muyyyyy peligroso)

Un saludo,
__________________
Por motivos personales ya no puedo estar con Uds. Fue grato haber compartido todos estos años. Igualmente los seguiré leyendo.
  #8 (permalink)  
Antiguo 10/05/2004, 17:11
 
Fecha de Ingreso: enero-2004
Ubicación: Santiago - Chile
Mensajes: 45
Antigüedad: 13 años, 11 meses
Puntos: 0
sorry...

Disculpa por el error.

Saludos.


DaMMsteiN
__________________
Solo sé que nada sé.
  #9 (permalink)  
Antiguo 10/05/2004, 17:36
Avatar de nublar
(Desactivado)
 
Fecha de Ingreso: octubre-2003
Ubicación: Argentina - BsAs
Mensajes: 321
Antigüedad: 14 años, 1 mes
Puntos: 0
MMTAFFAREL...
Bueno vos estás teniendo la misma falla que yo...
Revisá mi post y te darás cuenta.

http://www.forosdelweb.com/showthrea...hreadid=199825

Lo tengo posteado hace una semana y no doy con la tecla..
Si lo llegás a solucionar avisame..

Por las dudas... estas hosteando en ****** bajo plan Unix100??

Cluster:
En el manual dice:
Ejemplo 4. Registrar una variable con register_globals activado

<?php
if (!session_is_registered('count')) {
session_register("count");
$count = 0;
}
else {
$count++;
}
?>


Podré Utilizar esto?

Accedan a este vínculo que acabo de activar para ver mi configuracion apache/php para ver si nos dá algun indicio:

www.cnit.com.ar/php_info.php

Gracias y seguimos en la dulce espera.
  #10 (permalink)  
Antiguo 11/05/2004, 02:49
Avatar de nublar
(Desactivado)
 
Fecha de Ingreso: octubre-2003
Ubicación: Argentina - BsAs
Mensajes: 321
Antigüedad: 14 años, 1 mes
Puntos: 0
registrar variables en sesiones

Bueno tras romperme el coco un par de semanas con las sesiones, te doy un consejo, la cosa es simple:

PRIMERO: Hace un archivo que se llame 1.php., y coloca en el lo siguiente:

Código PHP:
<?php
session_start
();//continuo con la session abierta

// El uso de session_register() es considerado obsoleto
$url "Esto contiene url";
session_register("url");

// Se prefiere el uso de $_SESSION, a partir de PHP 4.1.0
$_SESSION["uno"] = "Uno es un lindo numero";

// El modo antiguo era usar $HTTP_SESSION_VARS
$HTTP_SESSION_VARS["dos"] = "Dos sigue despues de uno";

header("Location: 2.php");
exit;


?>

SEGUNDO: Hace un archivo que se llame 2.php., colocalo en la misma carpeta que el anterior archivo y pone en él en el lo siguiente:

Código PHP:
<?php

session_start
();//continuo con la session abierta
session_register('url');
echo 
"Valor utilizando \session_register: "$url"<-";
echo 
"<BR>";
echo 
"Valor utilizando \$_SESSION: "$_SESSION["uno"]. "<-";
echo 
"<BR>";
echo 
"Valor utilizando \$HTTP_SESSION_VARS: "$HTTP_SESSION_VARS["dos"]."<-";
echo 
"<BR>";
?>
TERCERO: Subí todo al servidor y Ejecutá el el primer archivo, o sea "1.php"

ANALIZÁ: El archivo 1.php define variables simultaneamente por los tres métodos válidos conocidos:
-> session_register
->$_SESSION
->$HTTP_SESSION_VARS.

Basada en la configuracion de php de tu servidor sera la salida que obtengas en "2.php".

Deacuerdo a la salida que obtengas utiliza uno u otro método.

Pero recuerda siempre que el más conveniente y sencillo a partir de PHP 4.1.0 es registrar son $_SESSION

Bueno, espero que te sea de utilidad, para tener este concepto sude sangre sobre el teclado...

Saludos.
  #11 (permalink)  
Antiguo 11/05/2004, 06:36
 
Fecha de Ingreso: septiembre-2003
Mensajes: 25
Antigüedad: 14 años, 2 meses
Puntos: 0
Bueno amigos cuanta informacion...Gracias!!! ya tengo funcionando las seciones en mi maquina local...tenia un problema de configuracion de php.ini....por lo que pude encontrar estaba mal seteado include_path aunque todavia no me queda bien claro a que se refiere este parametro...por lo demas la sesion se propaga correctamente...

ahora el servidor me reporta el siguiente error cuando hago sesion_start()

Warning: session_start() [function.session-start]: Cannot send session cache limiter -
headers already sent (output started at c:\paginas web\www\apellidos\ap_autenticacion.php:5)
in c:\paginas web\www\apellidos\ap_autenticacion.php on line 7

tuve un error parecido con la funcion set_cookies() y era por dejaba espacios en blanco antes de llamarla...pero ahora no estoy cometiendo el mismo error (SERIA MUY CABEZA DURA NO?, JAJA) , asi que no se a que se debe el error, talvez uds...saben

Gracias a todos por la info anterior...sigo aprendiendo...saludos
  #12 (permalink)  
Antiguo 11/05/2004, 21:22
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 15 años, 11 meses
Puntos: 126
El error te dice que en la línea 7 de tu ap_autenticacion.php tienes algo de HTML .. o un espacio .. o un salto de línea antes de tu <? .. y si lo usas bajo un include .. sería en el ?> al final de este ..

Un saludo,
__________________
Por motivos personales ya no puedo estar con Uds. Fue grato haber compartido todos estos años. Igualmente los seguiré leyendo.
  #13 (permalink)  
Antiguo 12/05/2004, 20:40
Avatar de nublar
(Desactivado)
 
Fecha de Ingreso: octubre-2003
Ubicación: Argentina - BsAs
Mensajes: 321
Antigüedad: 14 años, 1 mes
Puntos: 0
Bueno... por lo que veo tenés problemas con php.ini..
Pregunta:
El servidor que te hostea la página o tu pc para pruebas locales (si es que utilizás este método).

Por el tema de la configuracion y compatibilidad de php, + apache, + MySql... me parece que lo más sano si es que usas como S.O Win32 es que te descargues un paquete WAMP y listo!!
Te olvidás de todo...

Saludos
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 19:38.