Perl en Español

  1. Home
  2. Tutoriales
  3. Foro
  4. Artículos
  5. Donativos
  6. Publicidad
 
Índice general » Otros Temas » HTML » Problema con sesiones Responder al tema
Nuevo tema


Página 1 de 1  [ 3 mensajes ] 
 
Nota 2007-08-27 01:44 @114

Perlero Nuevo
Registrado: 2007-05-14 06:23 @307
Mensajes: 87
Problema con sesiones
¡Hola! Estoy programando en PHP y JavaScript y tengo un problemilla con el uso de sesiones.

Hasta ahora me funcionaban bien las sesiones, pero al introducir la identificación del usuario y la seguridad en mi programa me está fallando.

El problema es el siguiente:

Yo, para autentificar al usuario uso el siguiente script (el login y el password lo paso de un formulario):

Syntax: [ Download ] [ Hide ]
Using php Syntax Highlighting
<?
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: <!-- m --><a class="postlink" href="http://localhost/BDFPSalesianos/index.php?login=">http://localhost/BDFPSalesianos/index.php?login=</a><!-- m -->".$fila['login']."");
               
}else {
    //si no existe le mando otra vez a la portada
        header("Location: autentificacion.php?errorusuario=si");
}

?>


Y para saber si un usuario está autenticado bien, uso la variable de sesión 'autentificado', de manera que para aumentar la seguridad en mi programa uso el siguiente script (que incluyo en todos los script que quiero mantener seguros, todos los de la base de datos):

seguridad.php
Syntax: [ Download ] [ Hide ]
Using php Syntax Highlighting
<?
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();
}
?>


Lo incluyo de la siguiente manera:

Syntax: [ Download ] [ Hide ]
Using php Syntax Highlighting
include("C:\server\web\BDFPSalesianos\Autentificacion\seguridad.php");


Además en todos los script también incluyo la conexión a la base de datos:

Syntax: [ Download ] [ Hide ]
Using php Syntax Highlighting
include("C:\server\web\BDFPSalesianos\Otros\conexion.php");


El fichero conexion.php contiene
Syntax: [ Download ] [ Hide ]
Using perl Syntax Highlighting
<?
$miConexion = mysql_connect("localhost","root","root");
mysql_select_db("bdfpsalesianos", $miConexion);
?>


Y al ejecutar cualquier script en los que incluya el script 'seguridad.php' y en el que no esté la sentencia 'session_start();' aparece el mensaje de error:

Código:
Warning: Cannot modify header information - headers already sent by (output started at C:\server\web\BDFPSalesianos\Otros\menuProfesor.php:12) in C:\server\web\BDFPSalesianos\Autentificacion\seguridad.php on line 6


¿Por qué aparece? No tengo la sentencia 'session_start();' en todos los script porque hay algunos que no acceden a ninguna variable de sesión.

Espero que me podáis ayudar, muchas gracias.


Nota 2007-08-27 03:47 @199
Avatar de Usuario
Administrador
Registrado: 2005-07-24 18:12 @800
Ubicación: Valladolid, España
Mensajes: 10270
El mensaje de error dice que menuProfesor.php, en la línea 12, ha emitido las cabeceras HTTP de respuesta a la petición del usuario, antes que la 'header()' de seguridad.php.

Revisa el código. A veces es simplemente un espacio o línea en blanco, al principio, y fuera del código PHP.

Otra cosa. Aunque existe el verbo autentificar, que es lo mismo que autenticar, lo que no existe es la palabra autentificación.

_________________
JF^D Perl programming


Nota 2007-08-27 04:02 @209

Perlero Nuevo
Registrado: 2007-05-14 06:23 @307
Mensajes: 87
Pero ¿tiene algo que ver que el error sólo me lo dé en los script en los que incluyo 'seguridad.php' que no tienen la sentencia 'session_start()'?


Responder al tema  [ 3 mensajes ] 

Reglas del Foro
No puedes abrir nuevos temas en este Foro
No puedes responder a temas en este Foro
No puedes editar tus mensajes en este Foro
No puedes borrar tus mensajes en este Foro
No puedes enviar adjuntos en este Foro

Publicidad

Socializa

Síguenos por Twitter

Suscríbete GRATUITAMENTE al Boletín de Perl en Español

Saltar a:  
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
Traducción al español por Huan Manwë para phpbb-es.com
phpBB SEO