2014-12-04 49 views
0

我創建了一個登錄腳本,當用戶登錄時它應該將它們重定向到一個名爲users的目錄內的不同頁面,但它似乎不工作。下面是我的劇本我已經創造 -登錄腳本正在重定向

<?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)) { 
    $dir = dirname("link/tooutside/wroot"); 
    include($dir . '/directory/myconnect.php'); 

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

    $result = mysqli_query($conusers, "SELECT * FROM users WHERE username = '$username' AND password = '$hashedpass'"); 
     if(mysqli_num_rows($result) == 1) { 
       $_SESSION['loggedin'] = 'true'; 
       $_SESSION['username'] = $username; 
       header('Location: users/index.php'); 
      } else { 
       $errors[] = "Your username or password is incorrect"; 
      } 
     } 
    } 
} 
?> 

現在,如果我用echo語句echo語句作品,但是當與重定向鏈接它不重定向我更換重定向代碼,它只是停留在index.php頁面上。

任何想法?

+0

有什麼錯誤?嘗試使用'error_reporting(E_ALL)' – SheperdOfFire 2014-12-04 12:17:30

回答

1

請記住,必須在發送任何實際輸出之前調用header(),或者使用普通的HTML標籤,文件中的空行或PHP。見http://php.net/manual/en/function.header.php

+0

我必須承認我不是最好的PHP,說實話,我只是開始如此努力去理解哪裏出錯了,我查看你的鏈接,但仍然掙扎。 – 2014-12-04 12:33:45

+0

'header()'HTTP Headers直接發送到瀏覽器,清除包含此函數的被調用頁面無法顯示任何數據,因爲它不是爲了這麼做的 - 所以不可能在'頭()' – toto21 2014-12-04 13:30:23

+0

哦,我看到真的我需要刪除內部的CSS回聲線? – 2014-12-05 18:43:35