Foros del Web » Programando para Internet » PHP »

SESIONES no funcionan localmente

Estas en el tema de SESIONES no funcionan localmente en el foro de PHP en Foros del Web. Hola Foro, tengo una aplicción donde debo autentificarme y guardar mis variables de sesion para lo que pueda necesitarse, cuando lo cuelgo en el internet ...
  #1 (permalink)  
Antiguo 18/10/2005, 09:41
 
Fecha de Ingreso: septiembre-2003
Mensajes: 241
Antigüedad: 14 años, 3 meses
Puntos: 0
SESIONES no funcionan localmente

Hola Foro, tengo una aplicción donde debo autentificarme y guardar mis variables de sesion para lo que pueda necesitarse, cuando lo cuelgo en el internet funciona sin problemas, pero cuando lo pruebo localmente en mi equipo no funciona, la idea es que tengo un index.php donde ingreso mi user y pass, esta información se manda a una pagina intermedia medio.php donde se verifican datos y si corresponde se direcciona a otra pagina de bienvenida, sino entonces se direccina a otra pagina de error, sin embargo cuando lo ejecuto localmente se queda en medio.php y no va a ningun lado, cual podria ser el error??? espero su pronta ayuda gracias
  #2 (permalink)  
Antiguo 18/10/2005, 10:16
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 15 años, 11 meses
Puntos: 126
Si hablas de ciertos códigos .. lo mejor es que los indiques aquí .. luego vendrán preguntas relacionadas con ese código que veamos .. por ejemplo de como propagas el SID (Identificador único de sesión) .. del valor (php.ini) de "register_globals" .. de como accedes a las variables de sesión y como las defines (usas "session_register()" o $_SESSION? ..) ...

También detectar otros problemas tal vez no relacionados con sesiones (ese "redireccionmiento que hablas que tendría que hacer") .. En fin .. como veras falta que documentes un poco más el problema.

Un saludo,
  #3 (permalink)  
Antiguo 18/10/2005, 13:32
 
Fecha de Ingreso: septiembre-2003
Mensajes: 241
Antigüedad: 14 años, 3 meses
Puntos: 0
aqui envio el codigo, la pagina que contiene el formulario donde se pide user y pass es la siguiente y se llama index.php:

<form name="form1" method="post" action="index_s.php">
<table width="40%" border="2" align="center">
<tr>
<td colspan="2" bgcolor="<?php echo $color;?>" class="tituloazul"><div align="center"><?php echo $texto;?>
</div></td>
</tr>
<tr>
<td> <div align="right">Nro de NIT:</div></td>
<td> <input name="ruc" type="text" id="ruc"></td>
</tr>
<tr bordercolor="#003C72">
<td>&nbsp;</td>
<td> <input name="Submit" type="submit" class="textonormalazul" id="Submit" value="Ingresar"></td>
</tr>
<tr bordercolor="#003C72">
</tr>
</table>
</form>

estos datos se pasan a index_s.php que tiene el siguiente codigo:

<?php
$cnx = odbc_connect("dns_consultas","","");
$sql = "SELECT * FROM gracos WHERE ruc LIKE '$_POST[ruc]'";
$sql1 = odbc_exec($cnx,$sql);
if (odbc_fetch_row($sql1)){
session_start();
$_SESSION["ruc"] = odbc_result($sql1,'ruc');
$_SESSION["nombre"] = odbc_result($sql1,'nombre');
if (odbc_result($sql1,'ciudad') == "LA PAZ"){
$_SESSION["graco"] = "1";
}
if (odbc_result($sql1,'ciudad') == "COCHABAMBA"){
$_SESSION["graco"] = "2";
}
if (odbc_result($sql1,'ciudad') == "SANTA CRUZ"){
$_SESSION["graco"] = "3";
}
$_SESSION["sw"] = "1";
Header("Location: noticias.php");
odbc_free_result($sql1);
odbc_close($cnx);
exit();
} else {
Header("Location: index.php?usuario=NO");
odbc_free_result($sql1);
odbc_close($cnx);
exit();
}
?>

es decir que si esta como usuario registrado iria a noticias.php y sino esta autorizado tendria que regresar a index pero indicando que el USUARIO NO ESTA AUTORIZADO.

como les comente, localmente no funciona ingreso user y pass, le doy enviar y se queda en index_s.php. Ahora cuando lo subo a internet en el primer intento si ingresa a noticias.php pero no jala los datos de la sesion, entonces debo retroceder e ingresar nuevamente el user y pass para que en este segundo intento recien reconzca esos datos y los muestre.
espero sus coemtnarios
RAFA
  #4 (permalink)  
Antiguo 19/10/2005, 06:30
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 15 años, 11 meses
Puntos: 126
El session_start() que ahí usas .. deberías sacarlo de tus condicionales (if) y ponerlo al principio de tu script .. (por claridad de código simplemente).

Ahora .. el tema de que las sesiones funcionen en tu servidor "local" .. Depende directamente de tu configuración de php y de como propagas el SID.

En tu código .. asumes que propagas el SID en cookies, porqué expresamente no lo haces en tu código.

Por ende, requieres de la configuración de PHP sobre sesiones:
session.use_cookies = on
session.use_trans_sid = off
y opcionalmente: session.use_only_cookies = on

También necesitas que tu navegador de pruebas acepte cookies (las que PHP va a generar automáticamente PHP para propagar el SID).

Revisa tu configuración.

Un saludo,
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 10:08.