Les dejo los script, haber si alguien puede ayudarme a observar qué errores hay… estuve haciendo pruebas como de usuarios y contraseñas y todo funciona bien, el problema radica en la función que protege el acceso a la página… “es lo que creo”
Dejo los codigos a continuación...
INDEX.PHP
Código PHP:
Ver original
require('conexion.php'); sec_session_start(); // Esta funcion detiene a JavaScript en ataques a la identificación de la sesión. if (login_check($cnx) == true){ } $error = ''; if (login($email, $sha1_pass, $cnx) == true) { // Login success } else { $error = "El nombre o contraseña son incorrectos"; } }
Código HTML:
Ver original
<form action="<?php $_SERVER['PHP_SELF']; ?>" method="post"> <div> <input name="email" type="text" placeholder="Usuario"> </div> <div> <input name="password" type="password" id="password" placeholder="Password"> </div> <div> <label> <input type="checkbox" name="remember_me"> Recuerdame </label> </div> <input type="submit" value="Entrar"/> </form>
FUNCIONES.PHP
Código PHP:
Ver original
function sec_session_start() { $session_panel_admin = 'user_id'; // Configura sesión personalizado. $secure = 'SECURE'; // Esto detiene que JavaScript sea capaz de acceder a la identificación de la sesión. $httponly = true; // Obliga a las sesiones a solo utilizar cookies. } // Obtiene los params de los cookies actuales. $cookieParams["path"], $cookieParams["domain"], $secure, $httponly); // Configura el nombre de sesión al configurado arriba. } function login($email, $sha1_pass, $cnx) { // Usar declaraciones preparada - inyección de SQL no será posible. if ($stmt = $cnx->prepare("SELECT ID_USUARIO, NOMBRE, PASSWORD FROM usuarios WHERE EMAIL = ? LIMIT 1")) { $stmt->bind_param('s', $email); // Une “$email” al parámetro. $stmt->execute(); // Ejecuta la consulta preparada. $stmt->store_result(); // Obtiene las variables del resultado.. $stmt->bind_result($user_id, $username, $db_password); $stmt->fetch(); if ($stmt->num_rows == 1) { if ($db_password == $sha1_pass) { //¡La contraseña es correcta! //Obtén el agente de usuario del usuario. $user_browser = $_SERVER['HTTP_USER_AGENT']; // Protección XSS ya que podríamos imprimir este valor. $_SESSION['user_id'] = $user_id; // Protección XSS ya que podríamos imprimir este valor. $_SESSION['username'] = $username; $_SESSION['login_string'] = ($sha1_pass . $user_browser); // Inicio de sesión exitoso. return true; } else { return false; } } } }
El problema creo que radica en esta parte de la función login_check..
Código PHP:
Ver original
function login_check($cnx) { // Revisa si todas las variables de sesión están configuradas. $user_id = $_SESSION['user_id']; $username = $_SESSION['username']; $login_string = $_SESSION['login_string']; // Obtiene la cadena de agente de usuario del usuario. $user_browser = $_SERVER['HTTP_USER_AGENT']; if ($stmt = $cnx->prepare("SELECT PASSWORD FROM usuarios WHERE ID_USUARIO = ? LIMIT 1")) { // Une “$user_id” al parámetro. $stmt->bind_param('i', $user_id); $stmt->execute(); // Ejecuta la consulta preparada. $stmt->store_result(); if ($stmt->num_rows == 1) { // Si el usuario existe, obtiene las variables del resultado. $stmt->bind_result($sha1_pass); $stmt->fetch(); $login_check = $sha1_pass; if ($login_check == $login_string) { // ¡¡Conectado!! return true; } else { // No conectado. return false; } } else { // No conectado. return false; } } else { // Could not prepare statement } } else { // No conectado. return false; } }
Y esta es la pagina protegida
VER.PHP
Código PHP:
Ver original
require('conexion.php'); include_once 'includes/functions.php'; sec_session_start(); <?php if (login_check($cnx) == true) : ?> <p>Bienvenido <?php echo ($_SESSION['username']); ?>!</p> <p> Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. </p> <p>Retornar a <a href="index.php">Página de acceso</a></p> <?php else : ?> <p> <span class="error">Usted no esta autorizado al acceso de esta página.</span> Favor <a href="index.php">Inicie sesión</a>. </p> <?php endif; ?>
Cualquier info, quedo muy agradecido... ojala me puedan ayudar! saludos a todos..