Ver Mensaje Individual
  #6 (permalink)  
Antiguo 29/09/2015, 11:10
victor1333
 
Fecha de Ingreso: septiembre-2015
Mensajes: 16
Antigüedad: 9 años, 2 meses
Puntos: 1
Respuesta: Login y logout en misma pagina php

Cita:
Iniciado por mauriciovargasgarcia Ver Mensaje
Aun que se usa mucho el famoso "logout.php" en este caso (Hablo del codigo posteado) no es necesario implementarlo a menos de que el MVC (Modelo Vista Controlador) de tu App sea complejo, si lo que quieres es enviar a logout.php solo tendrías que hacer el re-direccionamiento con el header() a logout.php, así:

Código PHP:
Ver original
  1. header('Location: logout.php');

y luego en el archivo logout.php poner:

Código PHP:
Ver original
  1. //Mas lo que sea tu codigo

Pero reitero, si tu App es sencilla y no estas usando un MVC complejo, creo que mi codigo te sería de gran ayuda, saludos!
Hola mauricio que pasa si dentro de tu codigo en el form, tengo que meter esto: <?php echo $data["tucorreo"]; ?>.
Como lo hago ya que dentro de un php no puedo meter otro? Gracias

Cita:
<?php
/*
Titulo: Login y Logout en un mismo archivo.
Autor: Mauricio Vargas Garcia / @maurovgarcia

En este caso use GET para indicar si el user dio clic en el enlace de Cerrar Sesion.
A continuacion verifico si eso fue asi:
*/
if (isset($_GET['logout']) == 1) {
session_destroy();
header('Location: index.php');
}
else {// De no haber cerrado sesion.
/*
Instancio las variables que necesito.
*/
$form = '<form action="" method="post">
<label>Introduce tu correo y click en login</label>
<input type="text" name="<?php echo $data["tucorreo"]; ?>" placeholder="Introduce tu correo"/>
<input type="submit" value="Login" />
</form>';
$html = '';//Variable que concatenará las vistas HTML

if (isset($_SESSION['address'])) {//verifico si se ha iniciado una sesion, de ser asi, muestro el enlace de cerrar sesion y un mensaje de bienvenida.
$html.= '<a href="?logout=1">Cerrar sesion</a><h1>Bienvenido '.$_SESSION['address'].'</h1>';

}
else {//No ha iniciado sesion
if (isset($_POST['tucorreo'])) { //Si ingreso el correo en el formulario HTML?.
session_start();//Abro la sesion y muestro el enlace de cerra sesion.
$_SESSION['address'] = $_POST['tucorreo'];
$html.= '<a href="?logout=1">Cerrar sesion</a><h1>Bienvenido '.$_SESSION['address'].'</h1>';
}
else {//De no haber ingresado el correo, muestro el formulario, (Recuerde que $form la instancie arriba).
$html.= $form;
}
}
}
?>
<!DOCTYPE html>
<html lang="es">
<head>
<title>Tu App</title>
</head>
<body>
<?php
if (isset($html)) echo $html; //Finalmente imprimo el $html concatenado.
else 'Ha ocurrido un error en la App.';
?>
</body>
</html>