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");
}
?>
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();
}
?>
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
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,