Buenas a todos.
Gente tengo una function login que quiero implementar por que me parecio bastante interesante, pero ya la he implementado la he volteado de pies a cabeza y no quiere funcionar. Lo curioso es que no me muestra un error de Ejecucion ni de sintaxis si no de validacion echo "solicitud invalida" Pero ya lo he cambiado y descambiado he leido miles de veces los codigos y todo esta igual,*Lo se es una muy mala practica tomar codigos, pero quiero aprender de un modo en que Pruebo y aprendo* y no se ya voy 3 dias en esto y no doy con el error Gracias Chicos quien me pueda hechar un Cable
*Codigos*
Funcion
Código PHP:
Ver originalfunction login($username, $password, $mysqli){
// usar delacaraciones preparadas significa que la inyeccion de SQL no sera posible
if ($stmt = $mysqli->prepare("SELECT Nombre, Apellidos, password FROM usuario WHERE username = ? LIMIT 1")){
$stmt->bind_param('s', $username); // Une $email a el parametro.
$stmt->execute();
$stmt->store_result();
// Obitne las variables del resultado
$stmt->bind_result($username, $Nombre, $Apellidos, $password);
$stmt->fetch();
//Hace le HASH de la contraseña con una sal unica.
$password = hash('sha512', $password); if ($stmt->num_rows == 1){
// Si el usuario existe, revisa si la cuenta esta bloqueada
// Por muchos intentos de conexion
if (checkbrute($username, $mysqli) == true) {
// La cuenta est bloqueada
// Obten el agente de usuario del usuario
$user_browser = $_SERVER['HTTP_USER_AGENT'];
// Proteccion XSS ya que podriamos imprimir este valor.
$_SESION['username'] = $username;
// Proteccion XSS ya que podriamos imprimir este valor.
$username = preg_replace("/[^a-zA-Z0-9_\-]+", "", $username); $_SESION['username'] = $username;
$_SESSION['login_string'] = hash('sha512', $password . $user_browser); // inicio de sesion exitoso
return true;
} else {
// La contraseña no es correcta
// Se graba este intento en la BASE DE DATOS.
$mysqli->query("INSERT INTO inyeccion(username, time) VALUE ('$username','$now)");
return false;
}
}
} else {
// Vos no xistis boludo
return false;
}
}
Login
Código PHP:
Ver original<?php
// muestra los errores de ejecucion que tengo
?>
<?php
include_once 'db_connect.php';
include_once 'function.php';
sec_session_start();
if (isset($_POST['username'], $_POST['p'])){ $username = $_POST['username'];
$password = $_POST['p']; // Contraseña con el HASH
if(login($username, $password, $mysqli) == true) {
// Inicio de session exitosa
header('Location: ../protected_page.php'); } else {
header('Location: ../index.php?error=1'); }
} else {
// Las variables POST correctas no se enviaron a esta pagina.
echo 'Solicitud invalida';
}
?>