Foros del Web » Programando para Internet » PHP »

!!! Benditas Sesiones !!!!!

Estas en el tema de !!! Benditas Sesiones !!!!! en el foro de PHP en Foros del Web. Hola compañeros programadores. Me he leido todos TODOS los mensajes acerca de las sesiones y las soluciones que uds. amablemente han dado y a mi ...
  #1 (permalink)  
Antiguo 01/12/2003, 11:19
Avatar de Hollman  
Fecha de Ingreso: enero-2003
Ubicación: Bogotá - Colombia
Mensajes: 202
Antigüedad: 21 años, 9 meses
Puntos: 1
Exclamación !!! Benditas Sesiones !!!!!

Hola compañeros programadores.

Me he leido todos TODOS los mensajes acerca de las sesiones y las soluciones que uds. amablemente han dado y a mi no me ha funcionado y ya estoy !!!!

en mi php.ini tengo register_globals = Off , session.use_cookies = 1 , session.use_trans_sid = 1 , session.cache_expire = 180.

tengo W2000Professional, PHP 4.3.4, MSSQL2000 y Apache 1.3.29

miren mi codigo

s1.php

<?php
session_start();//inicio sessiones
$_SESSION['servBD'] = "nombre_servidor";
$_SESSION['usrBD'] = "nombre_usuario_BD";
$_SESSION['pwdBD'] = "pwd_usuario_BD";
$_SESSION['numid'] = "variable_x";
$_SESSION['cod_emp'] = "un_codigo_n";
$_SESSION['prsusr'] = "13";
echo session_id();
echo "<a href=\"mpal.php\">modulo 2</a>";
?>

y en la cabecera de mpal.php

<?php
session_start();
echo session_id();
// Capturamos variables enviadas
$nserBD = $_SESSION['servBD']; //Nombre Servidor de Base de Datos
$nBD = $_SESSION['usrBD']; //Nombre Base de Datos
$nuBD = $_SESSION['pwdBD']; //Nombre Ususario Base de Datos
$pBD = $_SESSION['pwdBD']; //Password Usuario Base de Datos
$numid = $_SESSION['numid']; //Numero Identificacion del logeado (cedula/NIT)
$codemp = $_SESSION['cod_emp']; //Codigo de la Empresa
$permi = $_SESSION['prsusr']; //Permisos del Logeado
//inicializamos el vector de los permisos a 0
for ($i = 0; $i <= 6; $cadper[$i]==0, $i++) ;
// Convertimos el valor de los permisos a codigo binario
$cadper=decbin($permi);
header ("Content-Type: text/vnd.wap.wml");
echo "<?xml version=\"1.0\"?>\n";
?>

Los echo de session_id() me dicen que se pasa la variable pero si imprimo $permi en mpal.php no me imprime el 13

OSEA que como que toma la sesion pero no me toman los valores de las variables...


Me ayudan por favor???
  #2 (permalink)  
Antiguo 01/12/2003, 11:21
Avatar de Hollman  
Fecha de Ingreso: enero-2003
Ubicación: Bogotá - Colombia
Mensajes: 202
Antigüedad: 21 años, 9 meses
Puntos: 1
AH!! pues no se si es relevante pero estoy programando un site WAP. y utilizo el Nokia WAP Gateway Simulator, Nokia Mobile Browser Simulator...

GRacias Por Su Ayuda,.
  #3 (permalink)  
Antiguo 01/12/2003, 11:26
Avatar de WebMaster  
Fecha de Ingreso: agosto-2001
Ubicación: Cd.Guzman, Jalisco
Mensajes: 164
Antigüedad: 23 años, 3 meses
Puntos: 0
mmm, checa este parametro en tu php.ini:


session.save_path=c:/Apache/php4/tmp


donde indica el path de la carpeta donde se guardan las sessiones, de seguro que no tienes el path correcto

NOTA: obviamente, el path debe corresponder a una carpeta que exista en tu disco duro. Si php no encuentra la carpeta no crea la session y por tanto no puedes usarlas desde tus scripts. El php 4.3.4 q baje tenia la opcion de mostrar errores desactivado quizas por ello no dice que no puede crear la session.

Última edición por WebMaster; 01/12/2003 a las 11:30
  #4 (permalink)  
Antiguo 01/12/2003, 11:48
Avatar de Hollman  
Fecha de Ingreso: enero-2003
Ubicación: Bogotá - Colombia
Mensajes: 202
Antigüedad: 21 años, 9 meses
Puntos: 1
Webmaster..... Que berraquera. tengo varios !"··$%$&$/·*/- dias probando eso y ese era el error. Yo tambien tengo desactivado los errores y por eso tal vez no me visualizaba el mio.


Te agradezco IMENSAMENTE!!!!
  #5 (permalink)  
Antiguo 02/12/2003, 09:52
Avatar de Hollman  
Fecha de Ingreso: enero-2003
Ubicación: Bogotá - Colombia
Mensajes: 202
Antigüedad: 21 años, 9 meses
Puntos: 1
dilema con sesiones en php

Hola todos.....

Ahora tengo un interrogante/Dilema.
En la aplicacion que estoy haciendo manejo sesiones (gracias a WebMaster) y pregunto. En el codigo que mostre es donde la realizo, ahora si deseo programar mi aplicacion de manera tal que la sesion solo exista mientras el usuario este dentro de la aplicacion como hago ?? osea yo tengo una opcion en el menu ppal que se llama Salir Sistema donde hago el respectivo link a un archivo salir.php

<?
session_start();
$_SESSION = array();
session_destroy();
header("Location: index.wml");
?>

NO deseo hacer cookies deseo que se maneje la sesion mientras este en mi aplicativo ...... que variables configuro en mi php.ini y sera que programo la aplicacion mandandome de un link a otro el SID......
  #6 (permalink)  
Antiguo 02/12/2003, 11:44
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 10 meses
Puntos: 129
Si no quieres usar cookies para propagar el SID .. debes de desactivar:

session.use_cookies = 0

(no usar cookies)

Y propagar el SID en tus redireccionamientos javascript, Meta de refresh, header("location" ...) que hagas.

El resto de tag HTML como links, formularios .. etc. Puedes dejar a PHP que los "reescriba" automáticamente usando:

session.use_trans_sid = 1


Y sobre el tiempo que dure tu sesión activa .. Si quieres que tu sesión muera al abandonar tu aplicación .. usa:

session.cache_expire = 0
session.gc_maxlifetime =0


Un saludo,
__________________
Por motivos personales ya no puedo estar con Uds. Fue grato haber compartido todos estos años. Igualmente los seguiré leyendo.
  #7 (permalink)  
Antiguo 02/12/2003, 11:57
Avatar de Hollman  
Fecha de Ingreso: enero-2003
Ubicación: Bogotá - Colombia
Mensajes: 202
Antigüedad: 21 años, 9 meses
Puntos: 1
GRacias CLUSTER......... probare a ver
  #8 (permalink)  
Antiguo 03/12/2003, 11:28
Avatar de Hollman  
Fecha de Ingreso: enero-2003
Ubicación: Bogotá - Colombia
Mensajes: 202
Antigüedad: 21 años, 9 meses
Puntos: 1
Hola todos..
realice las recomendaciones de CLUSTER y ahora tengo el mismo error de starwav que a la 3 pagina ya NO me reconoce la sesion y coloco session_star()... vean


archivo1.php

<?php
session_start();//inicio sessiones
$_SESSION['servBD'] = "nombre_servidor";
$_SESSION['usrBD'] = "nombre_usuario_BD";
$_SESSION['pwdBD'] = "pwd_usuario_BD";
$_SESSION['numid'] = "variable_x";
$_SESSION['cod_emp'] = "un_codigo_n";
$_SESSION['prsusr'] = "13";
echo "<a href=\"mpal.php\">menu principal</a>";
?>


y en la cabecera de mpal.php

<?php
session_start();
// Capturamos variables enviadas
$permi = $_SESSION['prsusr']; //Permisos del Logeado
//inicializamos el vector de los permisos a 0
for ($i = 0; $i <= 6; $cadper[$i]==0, $i++) ;
// Convertimos el valor de los permisos a codigo binario
$cadper=decbin($permi);
header ("Content-Type: text/vnd.wap.wml");
echo "<?xml version=\"1.0\"?>\n";
?>
.
.
.
.
<?php
echo "<anchor>buscar".
"<go method=\"post\" href=\"rano.php\">".
"<postfield name=\"placa\" value=\"$(placa)\"/>".
"<postfield name=\"opcional\" value=\"0\"/>".
"</go></anchor>"
?>


y en la cabecera de rano.php

<?php
session_start();
$nserBD = $_SESSION['servBD']; //Nombre Servidor de Base de Datos
$nBD = $_SESSION['nomBD']; //Nombre Base de Datos
$nuBD = $_SESSION['usrBD']; //Nombre Usuario Base de Datos
$pBD = $_SESSION['pwdBD']; //Password Usuario Base de Datos
header ("Content-Type: text/vnd.wap.wml");
echo "<?xml version=\"1.0\"?>\n";
$placa = $_POST['placa'];
$opcional = $_POST['opcional'];
?>

aca en rano.php YA NO ME TRAE LOS VALORES DE LA SESION...

que tengo mal..? sera que el link con <anchor> borra los valores.. creo que no..tonces???


!!!!!!!!!! HELP ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡

gracias
  #9 (permalink)  
Antiguo 03/12/2003, 12:01
Avatar de Hollman  
Fecha de Ingreso: enero-2003
Ubicación: Bogotá - Colombia
Mensajes: 202
Antigüedad: 21 años, 9 meses
Puntos: 1
y otra mas ... aunque hice las recomendaciones del path session.save_path=c:/temp y despues ya no la estoy usando por modificaciones recomendadas hecha.. mientras ejecuto el simulador wap en rano.php y le doy atras .. esta me crea una nueva sesion ... eso es normal????? osea en mpal capturo una placa y otro dato que envio a rano.php.. aqui em dice que no hay coneccion a la BD (osea que no me trae la sesion primaria) y me 'devuelvo' a mpal.php y envio nuevamente y NUEVAMENTE me crea un archivo en c:/temp llamado sess_cec6a12e4401b2edeac3911d11aabb0e o similar.... eso creo que esta mal cierto ??????
  #10 (permalink)  
Antiguo 03/12/2003, 12:32
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 10 meses
Puntos: 129
Pero .. al final que forma estás usando para propagar el SID .. (según el código que usas asumes que el SID lo propagará PHP de forma automática .. pues tu no lo haces explicitamente).

En principio usa:
session.use_trans_sid = 1

Y cookies para propagar el SID:
session.use_cookies = 1

PHP sòlo reescribe los tag HTML que indique en: (php.ini)
Cita:
url_rewriter.tags = "a=href,area=href,frame=src,input=src,form=,fields et="
No sé como será considerado ese <anchor> que incluye un 'form' .. pero si tienes problemas ahí para propagar el SID de forma automática (session.use_trans_sid = 1) y no quieres usar cookies para propagar el SID (como mencionastes en mensajes superiores: session.use_cookies =0) .. Propaga el SID de forma manual en ese formulario con un campo hidden tipo:

Código PHP:
<input type="hidden" name="<? echo session_name(); ?>" value="<? echo session_id() ?>">
(en resumen .. componer el SID en un campo hidden usando las funciones session_name() y session_id() que te dan el nombre de la sesión activa y su ID respectivamente).

Un saludo,
__________________
Por motivos personales ya no puedo estar con Uds. Fue grato haber compartido todos estos años. Igualmente los seguiré leyendo.
  #11 (permalink)  
Antiguo 03/12/2003, 17:37
Avatar de Hollman  
Fecha de Ingreso: enero-2003
Ubicación: Bogotá - Colombia
Mensajes: 202
Antigüedad: 21 años, 9 meses
Puntos: 1
Gracias CLUSTER por responderme... mira en mi php.ini

session.use_cookies = 0
session.use_trans_sid = 1
session.cache_expire = 0
session.gc_maxlifetime =0

asi asumo que se propaga automaticamente y no uso cookies.

Efectivamente el <anchor> (valido en WML) al parecer no es "adaptable" junto con <go href.........> mis codigos quedaron...

uno.php
.
.
session_start();//inicio sessiones
$_SESSION['servBD'] = $trae_reg2[nom_servidor];
$_SESSION['nomBD'] = $trae_reg2[nombd];
$_SESSION['usrBD'] = $trae_reg2[usr_bd];
$_SESSION['pwdBD'] = $trae_reg2[pswd_bd];
$_SESSION['numid'] = $trae_reg1[numid_usr];
$_SESSION['cod_emp'] = $trae_reg1[id_empresa];
$_SESSION['prsusr'] = $trae_reg1[permisos];
echo "<a href=\"mpal.php\">Menú Principal</a>";
.
.


mpal.php

<?php
session_start();
$permi = $_SESSION['prsusr']; //Permisos del Logeado
//inicializamos el vector de los permisos a 0
for ($i = 0; $i <= 6; $cadper[$i]==0, $i++) ;
// Convertimos el valor de los permisos a codigo binario
$cadper=decbin($permi);
header ("Content-Type: text/vnd.wap.wml");
echo "<?xml version=\"1.0\"?>\n";
?>
<!DOCTYPE wml PUBLIC "-//WAPFORUM//DTD WML 1.1//EN" "http://www.wapforum.org/DTD/wml_1.1.xml">
<wml>
<card id="carta01" title="Consultar">
<p align="center">
Digite Placa:<br/>
<input name="placa" format="*" type="text" size="6" maxlength="6" tabindex="1"/><br/>
<do type="accept" label="Consultar placa" name="Consultar placa">
<go method="post" href="rano.php">
<postfield name="placa" value="$(placa)"/>
<postfield name="opcional" value="0"/>
</go>
</do>
</p>
</card>
</wml>
.
.//// Aqui AUN me conoce las variables de sesion pero ya en el link siguiente rano.php


rano.php

<?php
session_start();
$nserBD = $_SESSION['servBD']; //Nombre Servidor de Base de Datos
$nBD = $_SESSION['nomBD']; //Nombre Base de Datos
$nuBD = $_SESSION['usrBD']; //Nombre Usuario Base de Datos
$pBD = $_SESSION['pwdBD']; //Password Usuario Base de Datos
echo $nserBD; <------ NO ME BOTA NADA ----------<<<<<<<
header ("Content-Type: text/vnd.wap.wml");
echo "<?xml version=\"1.0\"?>\n";
$placa = $_POST['placa'];
$opcional = $_POST['opcional'];
echo $placa; <-- SI BOTA LA PLACA------------<<<<<<<<<<<<<
?>


que estare haciendo mal???? pido paciencia y orientacion por favor.


Nuevamente muchas gracias
  #12 (permalink)  
Antiguo 03/12/2003, 19:22
Avatar de Hollman  
Fecha de Ingreso: enero-2003
Ubicación: Bogotá - Colombia
Mensajes: 202
Antigüedad: 21 años, 9 meses
Puntos: 1
opte al final por colocar session.use_cookies = 1 y me funciono de nuevo todo el programa.... que cosa.

GRacias de todas maneras!!!!
  #13 (permalink)  
Antiguo 03/12/2003, 20:49
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 10 meses
Puntos: 129
BUeno .. en todos estos mensajes he intentado hacerte ver que el tema de propagar el SID. PHP lo puede hacer por tí .. pero como te comenté en el último mensaje mio ... no en todos los tag HTML (y si usas otros lenguajes tpo WML menos ..) lo hace automáticamente. En esos casos tienes que propagar el SID tu "a mano" como por ejemplo con la solución que te platee.

Todo esto lo detalla el manual oficial de PHP en el apartado de sesiones.

Un saludo,
__________________
Por motivos personales ya no puedo estar con Uds. Fue grato haber compartido todos estos años. Igualmente los seguiré leyendo.
  #14 (permalink)  
Antiguo 04/12/2003, 08:29
Avatar de Hollman  
Fecha de Ingreso: enero-2003
Ubicación: Bogotá - Colombia
Mensajes: 202
Antigüedad: 21 años, 9 meses
Puntos: 1
Estas en lo correcto.. Muchas gracias CLUSTER y WEBMASTER por su paciencia(para todos nosotros). Sos unos berracos.

GRACIAS.
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:48.