Ver Mensaje Individual
  #1 (permalink)  
Antiguo 29/04/2016, 08:35
Skorge
Invitado
 
Mensajes: n/a
Puntos:
Problemas con funcion login

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 original
  1. function login($username, $password, $mysqli){
  2.     // usar delacaraciones preparadas significa que la inyeccion de SQL no sera posible
  3.     if ($stmt = $mysqli->prepare("SELECT Nombre, Apellidos, password FROM usuario WHERE username = ? LIMIT 1")){
  4.         $stmt->bind_param('s', $username); // Une $email a el parametro.
  5.         $stmt->execute();
  6.         $stmt->store_result();
  7.        
  8.         // Obitne las variables del resultado
  9.         $stmt->bind_result($username, $Nombre, $Apellidos, $password);
  10.         $stmt->fetch();
  11.        
  12.         //Hace le HASH de la contraseña con una sal unica.
  13.         $password = hash('sha512', $password);
  14.         if ($stmt->num_rows == 1){
  15.             // Si el usuario existe, revisa si la cuenta esta bloqueada
  16.             // Por muchos intentos de conexion
  17.            
  18.             if (checkbrute($username, $mysqli) == true) {
  19.                 // La cuenta est bloqueada
  20.                 // Obten el agente de usuario del usuario
  21.                 $user_browser = $_SERVER['HTTP_USER_AGENT'];
  22.                 // Proteccion XSS ya que podriamos imprimir este valor.
  23.                 $username = preg_replace("/[^0-9]+/", "", $username);
  24.                 $_SESION['username'] = $username;
  25.                 // Proteccion XSS ya que podriamos imprimir este valor.
  26.                 $username = preg_replace("/[^a-zA-Z0-9_\-]+", "", $username);
  27.                 $_SESION['username'] = $username;
  28.                 $_SESSION['login_string'] = hash('sha512', $password . $user_browser);
  29.                 // inicio de sesion exitoso
  30.                 return true;
  31.             } else {
  32.                 // La contraseña no es correcta
  33.                 // Se graba este intento en la BASE DE DATOS.
  34.                 $now = time();
  35.                 $mysqli->query("INSERT INTO inyeccion(username, time) VALUE ('$username','$now)");
  36.                 return false;
  37.                 }
  38.             }
  39.         } else {
  40.         // Vos no xistis boludo
  41.         return false;
  42.         }
  43.     }

Login
Código PHP:
Ver original
  1. <?php
  2. // muestra los errores de ejecucion que tengo
  3. error_reporting(E_ERROR | E_WARNING | E_PARSE);
  4.  
  5. error_reporting(E_ERROR | E_WARNING | E_PARSE | E_NOTICE);
  6. ?>
  7. <?php
  8. include_once 'db_connect.php';
  9. include_once 'function.php';
  10.  
  11. sec_session_start();
  12.  
  13. if (isset($_POST['username'], $_POST['p'])){
  14.     $username = $_POST['username'];
  15.     $password = $_POST['p']; // Contraseña con el HASH
  16.  
  17. if(login($username, $password, $mysqli) == true) {
  18.     // Inicio de session exitosa
  19.     header('Location: ../protected_page.php');
  20.     exit();
  21.     } else {
  22.     header('Location: ../index.php?error=1');
  23.     exit();
  24.     }
  25. } else {
  26.     // Las variables POST correctas no se enviaron a esta pagina.
  27.     echo 'Solicitud invalida';
  28. }
  29. ?>