2016-03-31 3 views
1

У меня возникли трудности с заголовком, перенаправляющим меня на index.html с моей страницы входа. Я не уверен, что заголовок - это даже путь, но это все, что я мог найти в перенаправлении страницы.php перенаправление на другую страницу проблема

Этот код является простой страницей входа в систему, которая проверяет имя пользователя и пароль на базе базы данных MySQL.

Проблемы я имею внутри если утверждения:

if(mysqli_num_rows($res) == 1){ 
     header("Location: index.php"); 
     exit(); 
} 

полный код для login.php:

<?php 
     //Connects to MySQL database using sql_connect.php 
     require "sql_connect.php"; 
    ?> 

    <?php 
     if(isset($_POST['username'])) { 
      $username = $_POST['username']; 
      $password = $_POST['password']; 
      $sql = "SELECT * FROM login_test WHERE username='".$username."' AND password='".$password."' LIMIT 1"; 
      $res = mysqli_query($connection, $sql); 
      if(mysqli_num_rows($res) == 1){ 
       header("Location: index.php"); 
       exit(); 
      } else { 
       echo "Invalid login information!"; 
       exit(); 
      } 
     } 
    ?> 

    <!DOCTYPE html> 
     <html lang="en"> 
     <head> 
      <meta charset="UTF-8"> 
      <title>login</title> 
      <link rel="stylesheet" href="../style.css"> 
     </head> 
     <body> 
      <form name="login" method="post" action="login.php"> 
       <h3>Login</h3> 
       <p>Username: </p><input type="text"name="username"> 
       <p>Password: </p><input type="password" name="password"> 
       <br/> 
       <input type="submit"name="submit"value="log in"> 
      </form> 
      <script src="../script.js" type="text/javascript"></script> 
     </body> 
    </html> 

Хотя я уверен, что остальная часть моего кода далек от совершенства Я просто смотрю, как перенаправить на новую страницу, если пользователь аутентифицирован в базе данных? Есть ли лучший вариант, чем заголовок в моем случае, или я просто неправильно его внедряю?

+0

Что не позволяет пользователю, не прошедшему проверку подлинности, сразу перейти на страницу? – Tim

+0

Проверьте журнал своего сервера, чтобы узнать, получаете ли вы предупреждение «Заголовки уже отправлены». – Barmar

+0

Ничего в настоящее время. Я преподаю себе шаг за шагом – Hunter

ответ

1

Раньше я использовал заголовок php, но имел плохой опыт.
Обычно я использую Javascript функции

echo '<script type="text/javascript">' . "\n"; 
if(isset($from)) 
{ 
    echo 'window.location="..";'; 
} 
else 
{ 
    echo 'window.location="..";'; 
} 
echo '</script>'; 
0

заголовка() не работает хорошо, может привести к вашему "mysqli_num_rows ($ рес) == 1" результат является ложным.

И между пространством «Местоположение» и вашим «index.php» нет места: header («Location: index.php»);

Или вы можете создать функцию php и использовать JavaScript, это хороший способ избежать этого.

function redirect($url, $prompt) { 
    $js_string = "<script>"; 
    $js_string .= $prompt ? "alert('". $prompt ."');" : ""; 
    $js_string .= "window.location = '{$url}';"; 
    $js_string .= "</script>"; 
    exit($js_string); 
} 
Смежные вопросы