Hola amigos,
Estoy pasando todo el control de sesiones para que funcione independientemente de que el usuario en su navegador tenga deshabilitadas las cookies.
El código es bastante simple:
Hago un control de usuario y contraseña:
Código PHP:
<?
if ($_POST["login"]!="") $login = $_POST["login"];
else $login = $_GET["login"];
if ($_POST["password"]!="") $password = md5($_POST["password"]);
else $password = md5($_GET["password"]);
//Conexión con la BD
include("./includes/conexionbd.php");
//Sentencia SQL para obtener datos sobre el usuario
$sSQL="SELECT password, perfil_pv FROM acceso WHERE usuario='" . $login . "' AND password='" . $password . "'";
$result=mysql_db_query($bd,$sSQL);
//Obtención del perfil del usuario
$row=mysql_fetch_array($result);
$pfl=$row["perfil_pv"];
if(mysql_num_rows($result)!=0)
{
session_name();
session_start();
session_register("bien");
session_encode();
$url = "Location: default.php?pfl=".$pfl."&PHPSESSID=".$PHPSESSID;
header($url);
}else{
//si no existe le mando otra vez al inicio
header("Location: index_err.php");
}
?>
En la pagina destino tengo como include el siguiente codigo:
Código PHP:
<?
<?
//Inicio la sesión
session_name();
session_start("bien");
//Comprobación de autentificación
if (!(session_is_registered("bien")))
{
session_destroy();
header("Location:index.php");
exit();
}
?>
Y me pasa algo curioso, ya que deberia funcionar incluso bloqueando todas las cookies. Si le pongo en el navegador hasta proteccion de privacidad alta funciona a las mil maravillas pero si le pongo "bloquear todas las cookies" me muestra:
Código PHP:
Warning: session_start() [function.session-start]: The session id contains illegal characters, valid characters are only a-z, A-Z and 0-9 in /home/html/back_pv/includes/seguridad.php on line 4
Warning: session_start() [function.session-start]: Cannot send session cache limiter - headers already sent (output started at /home/html/back_pv/includes/seguridad.php:4) in /home/html/back_pv/includes/seguridad.php on line 4
Warning: session_destroy() [function.session-destroy]: Session object destruction failed in /home/html/back_pv/includes/seguridad.php on line 7
Warning: Cannot modify header information - headers already sent by (output started at /home/html/back_pv/includes/seguridad.php:4) in /home/html/back_pv/includes/seguridad.php on line 8
Me habla de caracteres invalidos cuando creo que no los tiene y tb del famoso "headers already sent" que aparece cuando tienes espacios en blanco.
Lo mas curioso del tema es que si estos dos problemas existierna realmente me los tendria que dar en cualqueir caso y no en este.
¿Alguna idea?
Muchas gracias amigos,