2014-12-02 42 views
0

Ive создал простой сценарий входа, который работает в определенной степени. Все проверки правильны, поэтому, если я ввожу неправильное имя пользователя и пароль, он показывает мне сообщение об ошибке. Ваше имя пользователя или пароль неверны, но когда я ввожу правильное имя пользователя и пароль, оно не направляет меня на страницу users/index.php и сортирует просто перезагружает страницу входа.Простой скрипт входа не работает правильно

Вот мой код -

<?php 

    session_start(); 

    $errors = []; 

    $username = isset($_POST['username']) ? $_POST['username'] : null; 
    $password = isset($_POST['password']) ? $_POST['password'] : null; 

    if(!empty($_POST)) { 
    if(empty($username)) { 
     $errors[] = "Please enter a username"; 
     echo "<style type=\"text/css\"> #username { background-color:#F5A9A9;border:1px solid #DF0101; } </style>"; 
    } 
    if(empty($password)) { 
     $errors[] = "Please enter a password"; 
     echo "<style type=\"text/css\"> #password { background-color:#F5A9A9;border:1px solid #DF0101; } </style>"; 
    } else { 

    if(empty($errors)) { 
     $connect = new PDO('mysql:host=localhost;dbname=uacvideos;charset=utf8mb4', 'root', ''); 
     $connect->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); 
     if(!$connect) { 
       header("Location:"); // ADD ERROR LINK 
      } 

     $salt = "Thisismysalt"; 
     $hashedpass = hash('sha512', $password . $salt); 

     $result = $connect->query("SELECT COUNT(*) FROM users WHERE username = '$username' AND password = '$hashedpass'"); 
      if($result->fetchColumn() > 0) { 
        $_SESSION['loggedin'] = 'true'; 
        $_SESSION['username'] = $username; 
        header("Location: users/index.php"); // ADD LINK 
       } else { 
        $errors[] = "Your username or password is incorrect"; 
       } 
      } 
     } 
    } 
?> 
+0

Не '$ ошибки = [];' провоцирует фатальным ошибка? –

+0

@ S.Pols это не будет так, как это присваивает строковое значение массиву строк –

+2

Добавить 'exit;' после 'header (" Location: users/index.php ");' Также закомментируйте этот заголовок ' ("Место нахождения:"); // ADD ERROR LINK' и что-то там. – vaso123

ответ

0

Вы должны использовать эхо, чтобы дисплей код ошибки образца:

echo $errors[] = "Please enter a username"; 
Смежные вопросы