| |||
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 |
| |||
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, |
| |||
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> </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 |
| |||
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, |