2017-03-13 45 views
-1

編輯:我已經檢查了所有的權限,他們所有定在755,這樣不應該成爲問題Php標題不能在服務器上工作?

我做了一個腳本,這是工作。但後來我把文件放在不同的文件夾,由於某種原因header();不再被

工作這是我的文件夾的樣子:

enter image description here

你有index.php形式,看起來像這樣:

<form action='../login.php' method="post"> 

Gebruikersnaam:<br> 
<input type="text" name="username" placeholder="Je leerlingnummer" required/><br> 
wachtwoord:<br> 
<input type="password" name="password" placeholder="Je wachtwoord" required/><br> 
<div class="g-recaptcha" data-sitekey="6LeLbhgUAAAAAKUTJmf9CeIB2JbgsG3C0ftJsJAp"></div> 
<input type="submit" name="submit" class="groottext" value="inloggen" /> 
</form> 

登錄腳本之前工作,但因爲我已經把文件放在一個特定的文件夾裏面,它不會重定向它保持頁面在login.php這看起來l IKE在此:

if ($rows['authlvl'] == '1') { 
    header('location: leerling/repairs.php'); //User1 
    session_register("username"); 
    session_register("password"); 

} else 
if ($rows['authlvl'] == '2') { 
    header('location: admin/lloverzicht.php'); //User2 
    session_register("username"); 
    session_register("password"); 

} else 
if ($rows['authlvl'] == '3') { 
    header('location: admin/overzicht.php'); //user 3 
    session_register("username"); 
    session_register("password"); 

} else { 

    echo "not authorised"; 
} 

?> 

有在login.php一些其他的代碼這是工作,因爲我已經測試過它,只是不工作的事情就是重定向:

<?php 
error_reporting(E_ALL); 
ini_set('display_errors', 1); 
<?php include($_SERVER['DOCUMENT_ROOT'] . '/var/www/includes/dbconnect.php'); ?> 
$tbl_name="users"; 

$username=$_POST['username']; 
$password=$_POST['password']; 



$username = stripslashes($username); 
$password = stripslashes($password); 


$password = md5($password); 

$sql="SELECT * FROM $tbl_name WHERE username='$username' and password='$password'"; 
$result=mysqli_query($conn,$sql); 

$rows = mysqli_fetch_assoc($result); 



if ($rows['authlvl'] == '1') { 
header('location: leerling/repairs.php'); //User1 
session_start("username"); 
session_start("password"); 

} 
else 
if ($rows['authlvl'] == '2') { 
header('location: admin/lloverzicht.php'); //User2 
session_start("username"); 
session_start("password"); 

} 
else 
if ($rows['authlvl'] == '3') { 
header('location: admin/overzicht.php'); //user 3 
session_start("username"); 
session_start("password"); 

} 

else 
{ 

echo "je hebt geen toegang tot deze pagina"; 
} 

?> 

它重定向到

<!DOCTYPE html> 
 
<html> 
 

 
<head> 
 
    <meta name="viewport" content="width=device-width, initial-scale=1.0"> 
 
    <title>Adatum Reparatie Syteem</title> 
 
    <link rel="stylesheet" href="style.css"> 
 
</head> 
 

 
<body> 
 
    <?php include "../includes/header2.php"; ?> 
 
    <div id="overzichtcontainer"> 
 
    <h1> Reparatie aanmaken </h1> 
 
    <div id="formdiv"> 
 
     <form action="insert1.php" method="post"> 
 
     Leerlingnummer: 
 
     <br> 
 
     <input type="text" name="leerlingnummer" required placeholder="Voer hier het leerlingnummer in" /> 
 
     <br> E-mailadres: 
 
     <br> 
 
     <input type="text" name="emailadres" required placeholder="Voer hier het e-mail adres van de leerling in" /> 
 
     <br> 
 
     <br> 2e e-mailadres: 
 
     <br> 
 
     <input type="text" name="emailadres2" required placeholder="Voer hier het e-mailadres van de ouder/verzorger in" /> 
 
     <br> 
 
     <br> Telefoonnummer: 
 
     <br> 
 
     <input type="text" name="telnr" required placeholder="Voer hier het telefoonnummer in waarop u bereikbaar bent" /> 
 
     <br> 
 
     <br> Serienummer: 
 
     <br> 
 
     <input type="text" name="serienummer" required placeholder="Het serienummer van het ingenomen Device" /> 
 
     <br> 
 
     <br> Serienummer (leen Device): 
 
     <br> 
 
     <input type="text" name="serienummer2" required placeholder="Het serienummer van het uitgegeven Device" /> 
 
     <br> 
 
     <br> Schermcode: 
 
     <br> 
 
     <input type="text" name="schermcode" required placeholder="De code om het scherm te ontgrendelen" /> 
 
     <br> 
 
     <br> Schade/Reparatie: 
 
     <br> 
 
     <input type="text" name="schade" required placeholder="Omschrijving schade" /> 
 
     <br> 
 
     <br> Waterschade: 
 
     <br> 
 
     <input type="radio" name="water" value="nee" checked/>Nee 
 
     <br> 
 
     <input type="radio" name="water" value="ja" />ja 
 
     <br> 
 
     <br> Valschade: 
 
     <br> 
 
     <input type="radio" name="val" value="nee" checked/>Nee 
 
     <br> 
 
     <input type="radio" name="val" value="ja" />ja 
 
     <br> 
 
     <br> Aankoopdatum Device: 
 
     <br> 
 
     <input type="text" name="date" required placeholder="dd-mm-yy" /> 
 
     <br> 
 
     <br> Leverancier Device: 
 
     <br> 
 
     <input type="text" name="levdevice" required placeholder="Waar is het Device gekocht" /> 
 
     <br> 
 
     <br> 
 
     <input type="submit" name="submit" class="groottext" value="Reparatie indienen" /> 
 
     </form> 
 
    </div> 
 
    </div> 
 
</body> 
 

 
</html>

+0

添加代碼的頂部加上'ob_start();'或最終回聲後加上'退出()'重定向後 –

+0

@MasivuyeCokile所以退出()? –

+1

沒有,頭之後'()' –

回答

-1

重要的是要注意,必須在發送任何實際輸出之前調用header()(在PHP 4及更高版本中,可以使用輸出緩衝來解決此問題)。

只是檢查你的php文件.. 也許你在header()函數之前打印了一些文本,也許是一個空格。

檢查的login.php文件的第一行並沒有空格,這樣的事情:

--- Blank space --- 
<?php 

如果存在,那麼將它更改爲

<?php 
+0

他爲什麼要用js? –

+0

我更新了我的回答 –

+0

仍然沒有解釋爲什麼他應該使用js而不是'header()' –

相關問題