Foros del Web » Programando para Internet » PHP »

Logarse solo una vez

Estas en el tema de Logarse solo una vez en el foro de PHP en Foros del Web. Buenas a todos. He echo, con PHP, un código de validación de usuario. La cosa es la siguiente: Para cargar una página a la que ...
  #1 (permalink)  
Antiguo 04/01/2012, 04:12
Avatar de interjsr  
Fecha de Ingreso: octubre-2011
Ubicación: Madrid
Mensajes: 81
Antigüedad: 12 años, 6 meses
Puntos: 2
Logarse solo una vez

Buenas a todos.

He echo, con PHP, un código de validación de usuario. La cosa es la siguiente:
Para cargar una página a la que se debe entrar con usuario le he puesto un formulario. Este se rellena y llama a Valida.php el cual validará en la BBDD si extste o no, en caso afirmativo mostrará la página correcta y en caso contrario mostrará la pantalla anterior. Como de las x pantalla de mi aplicación la mitad tienen restringido el paso, lo que intento es por medio de session que si ya esta logado se salte la validación y pase directamente a la página correcta. ¿Cómo?. Pues poniendo antes un primero.php que lo que haga sea ver si hay session, sino hacer lo que he dicho antes, y si ya hay pues header("pagina correcta"); He probado y no me funciona el código de si existe la sesion pues haces una cosa y no existe otra cosa.
if ($_SESSION["autentificado"] != "SI") {

Anterior: PaginaFormulario.xml --> Valida.php --> PaginaCorrecta.xml
--> PaginaFormulario.xml


Lo que necesito:

Primero.php --> PaginaCorrecta.xml
--> PaginaFormulario.xml -->Valida.php -->PaginaCorrecta.xml
-->PaginaFormualrio.xml
  #2 (permalink)  
Antiguo 04/01/2012, 04:29
Avatar de DooBie  
Fecha de Ingreso: septiembre-2004
Mensajes: 1.101
Antigüedad: 19 años, 7 meses
Puntos: 71
Respuesta: Logarse solo una vez

Por que no posteas el código de primero.php?
  #3 (permalink)  
Antiguo 04/01/2012, 05:15
Avatar de interjsr  
Fecha de Ingreso: octubre-2011
Ubicación: Madrid
Mensajes: 81
Antigüedad: 12 años, 6 meses
Puntos: 2
Respuesta: Logarse solo una vez

primero.php
-----------------------------
<?php
session_start();

if ($_SESSION["autentificado"] != "SI") {
//si no existe, va a la página de autenticacion
echo ("Aún no está logado");
header("Location: Usuario.xml");
exit();
}
else{
echo ("Ya está logado");
header("Location: Matricula.xml");
exit();
}

?>
  #4 (permalink)  
Antiguo 04/01/2012, 05:17
Avatar de interjsr  
Fecha de Ingreso: octubre-2011
Ubicación: Madrid
Mensajes: 81
Antigüedad: 12 años, 6 meses
Puntos: 2
Respuesta: Logarse solo una vez

Bueno, Usuario.xml sería la página con el formulario para logarse y Matricula sería la página Correcta porque supongo que ya está logado. De Usuario.xml se llama a Valida.php que mira en BBDD si existe el usuario y en caso afirmativo llama a Matricula.xml, sino a Usuario.xml otra vez.
  #5 (permalink)  
Antiguo 04/01/2012, 05:24
Avatar de Eleazan  
Fecha de Ingreso: abril-2008
Ubicación: Ibiza
Mensajes: 1.879
Antigüedad: 16 años
Puntos: 326
Respuesta: Logarse solo una vez

Ese "primero.php" deberia darte error....


No puedes hacer un header después de un echo. AL mandar el echo (o cualquier respuesta al navegador) ya has establecido la conexion, y los header por defecto, asiq no puedes mandar otro header distinto.

Debes quitar los echo ;)
__________________
>> Eleazan's Source
>> @Eleazan
  #6 (permalink)  
Antiguo 04/01/2012, 05:29
Avatar de interjsr  
Fecha de Ingreso: octubre-2011
Ubicación: Madrid
Mensajes: 81
Antigüedad: 12 años, 6 meses
Puntos: 2
Respuesta: Logarse solo una vez

Yuhuuuuuu!, pues era eso, los echo de los coj.... Ya funciona, mil gracias. Por querer ir despacio y testear el código.
  #7 (permalink)  
Antiguo 04/01/2012, 05:30
Avatar de Eleazan  
Fecha de Ingreso: abril-2008
Ubicación: Ibiza
Mensajes: 1.879
Antigüedad: 16 años
Puntos: 326
Respuesta: Logarse solo una vez

Cita:
Iniciado por interjsr Ver Mensaje
Yuhuuuuuu!, pues era eso, los echo de los coj.... Ya funciona, mil gracias. Por querer ir despacio y testear el código.
El header debería haberte arrojado un error informándote de ello, diciendo algo asi como "No se ha podido modificar el header pq ya se habia enviado información" (aunq en inglés!).

Un poco de google, o leerte la documentacion de header, te habria ayudado rápido xD
__________________
>> Eleazan's Source
>> @Eleazan
  #8 (permalink)  
Antiguo 04/01/2012, 06:50
Avatar de DooBie  
Fecha de Ingreso: septiembre-2004
Mensajes: 1.101
Antigüedad: 19 años, 7 meses
Puntos: 71
Respuesta: Logarse solo una vez

Cita:
Iniciado por Eleazan Ver Mensaje
El header debería haberte arrojado un error informándote de ello, diciendo algo asi como "No se ha podido modificar el header pq ya se habia enviado información" (aunq en inglés!).

Un poco de google, o leerte la documentacion de header, te habria ayudado rápido xD
igual tiene el control de errores desactivado, por que yo, al ver el código, he pensado lo mismo.

Etiquetas: formulario, vez, usuarios
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 10:10.