Buenas a todos comunidad de ForosdelWeb, ando yo en mis cosas y mis proyectos pequeños, y he llegado a la parte de sesiones, y esto me preocupa mucho ya que es un proyecto que montaré online y en realidad hay poca información al respecto de como debería estar estructurado un sistema de logueo correctamente en PHP.
Mi progreso ha sido el siguiente...
index.php:
Código php:
Ver original<?php
if (isset($_GET[login_failed
]) and
$_GET[login_failed
] === "yes") {$error = TRUE; $errorMsg = "Nombre de Usuario o Password inválidos.";}
if (isset($_GET[db_error
]) and
$_GET[db_error
] === "yes") {$error = TRUE; $errorMsg = "No se pudo establecer conexión con la Base de Datos de Login.";}
if (isset($_GET[logoff
])) {
$logoff = TRUE;
unset($_SESSION[username
]); unset($_SESSION[userpass
]); }
?>
No estoy bien ubicado con el uso de cookies y el delogueo, ahí sale si hubo error de login, de BD, o si hice un logoff.
login.php
Código php:
Ver original<?php
$username = $_POST[username];
$userpass = $_POST[userpass];
include ("includes/connect.php");
$sql_identify = "SELECT userpass FROM admin WHERE username = '$username'";
$sql_query = mysql_query ($sql_identify, $sql_connect);
$auth = FALSE;
if ($sql_query === FALSE)
{
$db_error = "yes";
header ("Location: index.php?db_error=$db_error"); }
if ($row[0] === $userpass)
{
$auth = TRUE;
}
else
{
$auth = FALSE;
$login_failed = "yes";
header ("Location: index.php?login_failed=$login_failed"); }
if ($auth === TRUE)
{
$_SESSION[username] = $username;
$_SESSION[userpass] = $userpass;
header ("Location: main.php"); }
?>
Aquí es donde se autentifíca el usuario. Siento que es completamente inseguro y n00b ese script... me encantaría saber como se hace DE VERDAD.
main.php y los demás sitios dentro de la sesión:
Código php:
Ver original<?php
if (!isset($_SESSION[username
]) and
!isset($_SESSION[password
])) {header ("Location: session_error.php");} else
?>
Aquí se identifica si hay o no sesión.
No se controlar muy bien esto, ni se ocmo trabajan correctamente las sesiones, por favor, si me pueden decir que hago mal y que debo cambiar, consejos, etc, estaría muy agradecido.