El problema es el siguiente:
Yo, para autentificar al usuario uso el siguiente script (el login y el password lo paso de un formulario):
Código PHP:
<?
include("C:\server\web\BDFPSalesianos\Otros\conexion.php");
//Sentencia SQL para buscar un usuario con esos datos
$login=$_POST["login"];
$password=$_POST["password"];
$sql = "SELECT * FROM profesores WHERE ((login='".$login."') && (password='".$password."'))";
$result = mysql_query($sql, $GLOBALS["miConexion"]) or die(mysql_error());
//vemos si el usuario y contraseña es váildo
//si la ejecución de la sentencia SQL nos da algún resultado
//es que si que existe esa combinación usuario/contraseña
if (mysql_num_rows($result)!=0){
//usuario y contraseña válidos
//defino una sesion y guardo datos
session_start();
$fila = mysql_fetch_assoc($result);
$_SESSION['autentificado'] = "SI";
header ("Location: http://localhost/BDFPSalesianos/index.php?login=".$fila['login']."");
}else {
//si no existe le mando otra vez a la portada
header("Location: autentificacion.php?errorusuario=si");
}
?>
seguridad.php:
Código PHP:
<?
session_start();
if ($_SESSION['autentificado'] != "SI") {
//si no existe, envio a la página de autentificacion
header("Location: autentificacion.php");
//ademas salgo de este script
exit();
}
?>
include("C:\server\web\BDFPSalesianos\Autentificac ion\seguridad.php");
Además en todos los script también incluyo la conexión a la base de datos:
include("C:\server\web\BDFPSalesianos\Otros\conexi on.php");
El fichero conexion.php contiene:
Código PHP:
<?
$miConexion = mysql_connect("localhost","root","root");
mysql_select_db("bdfpsalesianos", $miConexion);
?>
Warning: Cannot modify header information - headers already sent by (output started at C:\server\web\BDFPSalesianos\Otros\menuProfesor.ph p:12) in C:\server\web\BDFPSalesianos\Autentificacion\segur idad.php on line 6
¿Por qué aparece? No tengo la sentencia 'session_start();' en todos los acript porque hay algunos que no acceden a ninguna variable de sesión.
Espero que me podais ayudar, muchas gracias.