Foros del Web » Programando para Internet » PHP »

Problemas con session_start()

Estas en el tema de Problemas con session_start() en el foro de PHP en Foros del Web. Buenas! Tengo un problemilla con unos scripts para verificar un user y un pwd. --El problema está cuando meto el user y el pwd correcto ...
  #1 (permalink)  
Antiguo 04/06/2004, 04:30
 
Fecha de Ingreso: junio-2004
Mensajes: 4
Antigüedad: 13 años, 6 meses
Puntos: 0
Mensaje Problemas con session_start()

Buenas!
Tengo un problemilla con unos scripts para verificar un user y un pwd.

--El problema está cuando meto el user y el pwd correcto en el script index.php, el script control.php no inicia la sesión, y por lo tanto no abre el script aplicacion.php. No se dnd está el error. Tengo track_vars activado y register_globals desactivado.
Muchas gracias!
Saludos!

index.php:
<?

echo "<form action='control.php' method='POST'>
<table align='center' width='225' cellspacing='2' cellpadding='2' border='0'>
<tr>
<td colspan='2' align='center'";
if ($_GET["errorusuario"]=='si')
{
echo "bgcolor=red><span style='color:ffffff'><b>Datos incorrectos</b></span>";
}
else
{
echo "bgcolor='#cccccc'>Introduce tu clave de acceso";
}
echo "</td>
</tr>
<tr>
<td align='right'>USER:</td>
<td><input type='Text' name='usuario' size='8' maxlength='50'></td>
</tr>
<tr>
<td align='right'>PASSWD:</td>
<td><input type='password' name='contrasena' size='8' maxlength='50'></td>
</tr>
<tr>
<td colspan='2' align='center'><input type='Submit' value='ENTRAR'></td>
</tr>
</table>
</form>
<br>
<br>
Datos correctos:
<br>
<br>
User: miguel
<br>
Passwd: qwerty";

?>

control.php:
<?

//veo si el usuario y contraseña es váildo
if ($_POST["usuario"]=="miguel" && $_POST["contrasena"]="qwerty")
{
//usuario y contraseña válidos
//defino una sesion y guardo datos
session_start();
$_SESSION["autentificado"]= "SI";
header ("Location: aplicacion.php");
}
else
{
//si no existe le mando otra vez a la portada
header("Location: index.php?errorusuario=si");
}
?>

aplicacion.php:
<?
include ("seguridad.php");

echo "<h1>Si estás aquí es que te has autentificado</h1>
<br>
----
<br>
Aplicación segura
<br>
----
<br>
<br>
<a href='salir.php'>Salir</a>";
?>

seguridad.php:
<?
//Inicio la sesión
session_start();

//COMPRUEBA QUE EL USUARIO ESTA AUTENTIFICADO
if ($_SESSION["autentificado"] != "SI")
{
//si no existe, envio a la página de autentificacion
header("Location: index.php");
//ademas salgo de este script
exit();
}
?>
  #2 (permalink)  
Antiguo 04/06/2004, 08:19
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 15 años, 11 meses
Puntos: 126
En tu código NO propagas el SID de forma manual .. así que "asumes" que se va a propagar de forma automática ..

A su vez .. usas redireccionamientos tipo: header("location ..."), para este caso, aunque que PHP lo tengas configurado para que propage el SID de forma automática, NO va a sobrescribir ese tipo de funciones de PHP (entre otras cosas que no hace) para propagar ahí el SID de tu sesión iniciada.

Revisa la configuración -obligatoria- que debes usar (php.ini .. lo puedes ver también en phpinfo()):

session.use_cookies = 1 (u ON)
session.use_trans_sid = 1 (u ON .. opcional)

Y .. session.save_path = directorio donde quieras guardar las sesiones (sobre todo debes ajustarlo si usas Windows como S.O. En linux no suele ser necesario modificarlo ni en servicios de hosting)

De paso podrías leer sobre el "SID" en: www.php.net/session

Un saludo,
  #3 (permalink)  
Antiguo 04/06/2004, 08:22
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 15 años, 11 meses
Puntos: 126
Se me olvidó ..

Al propagar el SID en cookies requieres a su vez de un navegador que acepte cookies.

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 09:10.