2017-03-13 47 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()' –

相关问题