Foros del Web » Programando para Internet » PHP »

Urgente! Problemas con las sesiones...

Estas en el tema de Urgente! Problemas con las sesiones... en el foro de PHP en Foros del Web. Como siempre... las fallas con sesiones en los begginers causan estragos... y esta me desvelo toda la noche... como no puedo mas la tiro al ...
  #1 (permalink)  
Antiguo 03/05/2004, 03:12
Avatar de nublar
(Desactivado)
 
Fecha de Ingreso: octubre-2003
Ubicación: Argentina - BsAs
Mensajes: 321
Antigüedad: 14 años, 2 meses
Puntos: 0
Urgente! Problemas con las sesiones...

Como siempre... las fallas con sesiones en los begginers causan estragos...
y esta me desvelo toda la noche... como no puedo mas la tiro al foro..

tengo un Script, que cuando lo pruebo en local funciona... pero cuando lo tiro al servidor Apache de mi hosting falla... me tira "FORBIDDEN..."

Les tiro lo mas importante del sript, y donde creo se origina la falla:

Código PHP:
session_name("SES");
session_register ('log');
session_start();//continuo con la session abierta
$url_origen'http://www.cnit.com.ar/1.php';
$log['url']=$url_origen
Luego desde otro sript intento retomar la variable para hacer un redireccionamiento

Código PHP:
session_name ("SES");
session_register ('log');
session_start();//continuo con la session abierta
header("Location:".$log['url']); 
Bueno es ahí donde me tira el maldito err forbiden y no me redirecciona..(cuando recargo la pagina un par de veces la variable se carga...)
Luego de un rato me dí cuenta de que la variable $log['url'] está vacía..¿Por Que?.... Si en local con mi apache local me funciona joya.....
¿Que hago mal con las variables de la sesiones, que tengo que cambiar?

Gracias, espero ayudas please..
  #2 (permalink)  
Antiguo 03/05/2004, 03:38
 
Fecha de Ingreso: marzo-2004
Ubicación: Extremadura
Mensajes: 206
Antigüedad: 13 años, 8 meses
Puntos: 0
es necesario dar nombre y registrar una sesion en cada script?
no sobra con registrarla la primera vez y el resto de las veces hacer session_start()?
  #3 (permalink)  
Antiguo 03/05/2004, 05:25
 
Fecha de Ingreso: abril-2004
Ubicación: los palacios (Sevilla)
Mensajes: 42
Antigüedad: 13 años, 7 meses
Puntos: 0
el session_start() debe de estar al principio de la pagina. antes de todo, antes del html tambien.

<?php
session_start();
session_name . . . . .
?>


<html>

</html>


Ademas debes de poner el session_start() al principio de cada pagina que vayas a utilizar la session.

__________________
ponce

Última edición por ponce; 03/05/2004 a las 05:28
  #4 (permalink)  
Antiguo 03/05/2004, 09:29
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 15 años, 11 meses
Puntos: 126
El orden correcto es:

registra variable ..
Código PHP:
<?
session_name
("nombre_session_opcional_no_necesario");
session_start();
// según parece .. si se usa "session_register()" se podría omitir session_start() . .confirmelo en el manual oficial.
session_register("variable");
?>
lee variable sesión
Código PHP:
<?
// importante que el nombre de la sesión (si se usó) sea el mismo que el que la inicia.
session_name("nombre_session_opcional_no_necesario");
session_start();
// se puede acceder como global si se usa register_globals a ON .. 
echo $variable;
//Pero . por un minimo de seguridad .. usen el array:
echo $HTTP_SESSION_VARS['variable'];

?>
En la documentación oficial: www.php.net/session está descrito cuando y donde usar cada función de las mencionadas.

Pero, es -altamente- recomendable que si usas PHP 4.1.0 o superior .. uses los arrays superglobales $_SESSION, esto te hará independiente de la configuración de register_globals (php.ini) del servidor en cuestión. Ademas de un acceso -seguro- a las variables de sesión.

Luego tendras que ver como propagas el SID en tu aplicación .. no sé si lo haces manualmente o dejas que PHP lo haga sólo .. tampoco si lo vas hacer por cookies o no .. Factores que debes tener presente ante "perdidas" de variables de sesión.

Un saludo,
__________________
Por motivos personales ya no puedo estar con Uds. Fue grato haber compartido todos estos años. Igualmente los seguiré leyendo.

Última edición por Cluster; 03/05/2004 a las 09:33
  #5 (permalink)  
Antiguo 04/05/2004, 16:57
Avatar de nublar
(Desactivado)
 
Fecha de Ingreso: octubre-2003
Ubicación: Argentina - BsAs
Mensajes: 321
Antigüedad: 14 años, 2 meses
Puntos: 0
Gracias.
Lo probaré.
  #6 (permalink)  
Antiguo 07/05/2004, 03:25
Avatar de nublar
(Desactivado)
 
Fecha de Ingreso: octubre-2003
Ubicación: Argentina - BsAs
Mensajes: 321
Antigüedad: 14 años, 2 meses
Puntos: 0
AYUUUUUDA!!!!!

Bueno lo probé analicé muy a fondo y sigue sin funcionar mi problema con sesiones.

Antes que nada aclaro mi configuracion de el server:

PHP Version ->4.3.2
track vars -> Ok (tengo=> enable-track-vars)
register_globals = On
session.use_cookies = On // Propaga el SID en cookies
session.use_only_cookies = Off
session.use_trans_sid= On


Bueno describo el problema (que es el mismo que antes), pero ahora más simplificado y con una supuestas mejoras al momento de definir sesiones..

El tema es que defino una variable en una sesion dentro de un script (lo lamaremos 1.php)... hago un redireccionamiento a 2.PHP.... intento retomar esa variable y CRASHHHHHH!!! se pierde.

Ete aquí el codigo:
Pimer Script (que setea la variable en la session y linkea)
Código PHP:
session_start();
$_SESSION['url']="sara";
$url_panel'http://'.$SERVER_NAME."/autenticador/2.php";
header("Location: $url_panel");
exit; 
Segundo Script : falla y no tira nada...

Código PHP:
session_start();

echo 
"-->".$_SESSION['url']."<--"
QUE PASA??????
  #7 (permalink)  
Antiguo 07/05/2004, 07:56
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 15 años, 11 meses
Puntos: 126
Y usas un navegador que acepte cookies?

Por qué propagas el SID en cookies.

Que valor tiene la directiva:
session.save_path = ?

(usas Windows (que versión) o Linux? como S.O. del servidor)

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 08/05/2004, 17:27
Avatar de nublar
(Desactivado)
 
Fecha de Ingreso: octubre-2003
Ubicación: Argentina - BsAs
Mensajes: 321
Antigüedad: 14 años, 2 meses
Puntos: 0
Bueno...
Mi SO es windows 98
I Explorer como browser.

El tema de la propagacion del SID no lo tengo bien en claro... creo que eso depende de mi servidor.. y por la configuracion que te pasé me parece que el apache la propaga por cookies (session.use_cookies = On) o me quivoco??

El tema es que tengo instalado apache2 en mi Pc y con PHP y localmente las sesiones funcionan... pero cuando lo subo al server es ahí donde no funcionan... emjor dicho si recargo la página ahí sí se carga la variable.

La variable está seteada en el servidor remoto como:
session.save_path = /tmp

¿Alguna Idea??
  #9 (permalink)  
Antiguo 08/05/2004, 17:30
Avatar de nublar
(Desactivado)
 
Fecha de Ingreso: octubre-2003
Ubicación: Argentina - BsAs
Mensajes: 321
Antigüedad: 14 años, 2 meses
Puntos: 0
Se entiende?
No printea el valor normalmente, pero si recargo la página 1.php del ejemplo las variables de la sesion ahí sí toman el valor.
  #10 (permalink)  
Antiguo 10/05/2004, 13:33
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 15 años, 11 meses
Puntos: 126
Como ya te mencioné .. algún problemas con las cookeis hay (probastes otros navegadores en tu PC y otros PC's para pruebas? ... (con el acceso a tu servidor de internet .. no el tuyo de pruebas).

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 10/05/2004, 17:46
Avatar de nublar
(Desactivado)
 
Fecha de Ingreso: octubre-2003
Ubicación: Argentina - BsAs
Mensajes: 321
Antigüedad: 14 años, 2 meses
Puntos: 0
Cluster el problema no es mi navegador, por que entro a un monton de páginas (esta inclusive), que usan sesiones y todo funciona bien.

Existen varios métodos de registrar variables, segun el manual, entre los cuales:

Ejemplo 1. Registrar una variable con track_vars activado

<?php
session_start();
if (isset($HTTP_SESSION_VARS['count'])) {
$HTTP_SESSION_VARS['count']++;
}
else {
$HTTP_SESSION_VARS['count'] = 0;
}
?>



Ejemplo 2. Registrar una variable con $_SESSION.

<?php
session_start();
// Use $HTTP_SESSION_VARS con PHP 4.0.6 o inferior
if (!isset($_SESSION['count'])) {
$_SESSION['count'] = 0;
} else {
$_SESSION['count']++;
}
?>



Ejemplo 4. Registrar una variable con register_globals activado

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


Estoy desesperado de que esto funcione
Me está trabando un laburo de autenticacion para aplicar a mi web.

Si esto te sirve, mi configuracion del server apache / php la accedes en el vínculo:

http://www.cnit.com.ar/php_info.php

A partir de las misma que método uso??
¿El ejemplo uno, el dos o el cuatro???

Gracias y ayudaaaaaaa
  #12 (permalink)  
Antiguo 11/05/2004, 02:29
Avatar de nublar
(Desactivado)
 
Fecha de Ingreso: octubre-2003
Ubicación: Argentina - BsAs
Mensajes: 321
Antigüedad: 14 años, 2 meses
Puntos: 0
Lo solucioné!!!!!!!!!!!!!!!!!!!!!!
Bueno la falla provenía en que no ponía las 3 w´s (www) en el header-location, tras lo cual generaba errores en las sesiones.

Por ejemplo esto no me funcionaba :

Código PHP:
<?php
session_start
();//continuo con la session abierta
$HTTP_SESSION_VARS['url']="sara";

$url_panel'http://'.$SERVER_NAME."/sesiones_2.php";
header("Location: $url_panel");
exit;
?>
Si me funciona si pongo:
<?php
session_start();//continuo con la session abierta
$HTTP_SESSION_VARS['url']="sara";

$url_panel= 'http://www.'.$SERVER_NAME."/sesiones_2.php";
header("Location: $url_panel");
exit;
?>

Por algun factor cuasi mágico el server donde hosteo no me toma bien las sesiones si en las locations no pongo las 3 dobleves.

Pero lo bueno es que lo logré hacer andar.
El proyecto ahora si funcionando está en www.cnit.com.ar/muestrario/muestrario_web.php
autenticando y todo!!!!!
  #13 (permalink)  
Antiguo 11/05/2004, 06:30
 
Fecha de Ingreso: mayo-2004
Ubicación: españa
Mensajes: 45
Antigüedad: 13 años, 7 meses
Puntos: 0
veamos colega, de los grandes problemas salen las pequeñas soluciones
El primer script q publicas esta perfecto, pero en el segundo sobra el SESSION_REGITER, ya que ya esta definido y si la vuelves a definir la machaca, borralo y te funcionara, no seais tan profundos, la programacion la hace gente simple, y no hace falta indagar mas de lo adecuado
__________________
a por todassss
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 08:52.