无法使用PHP_SELF进行重定向

问题描述:

我试图重定向我的页面,如果登录为真,也是新的会话,所以它应该像输入详细信息一样工作,它应该显示一条错误消息。请帮助我使用此代码。无法使用PHP_SELF进行重定向

<?php 
if(isset($_SESSION['validate'])){ 
if(isset($_POST['Username'])){ 
$username=$_POST['Username']; 
$password=$_POST['Passwd']; 
if($username=='admin' && $password=='admin'){ 
$_SESSION['validate']=true; 
echo "logged in.."; 
header('location:127.0.0.1/php/admin.php'); 
exit(0); 
} 
else{ 
    echo "Wrong Password"; 
} 
} 
else{ 
    echo "Set fields please.."; 
} 
} 

?> 
<html> 
<head><title>Login</title></head> 
<body> 
<br><br><br><br><br><br><br><br><br> 
<form action="<?php echo $_SERVER["PHP_SELF"]; ?>" method="POST"> 
<?php session_start(); ?> 
<table border="0" align="center"> 
<tr> 
    <td>Username:</td> 
    <td><input type="text" name="Username"></td> 
</tr> 
<tr> 
    <td>Password:</td> 
    <td><input type="Password" name="passwd"></td> 
</tr> 
<tr> 
    <td colspan="2"><center><input type="submit" name="submit"></center></td> 
</tr> 
</table> 
</form> 
</body> 
</html> 
+0

无法打印重定向前的任何内容。 – 2014-09-29 12:34:27

+0

输出后无法更改标题。如果你删除“回声”登录..“;”在第8行,它应该工作得很好! – AndVla 2014-09-29 12:35:28

<?php 
     if(isset($_SESSION['validate'])){ 
      echo "you are already logged in!"; 
     } 
     if ($_SERVER["REQUEST_METHOD"] == "POST"){ 
      $username=$_POST['Username']; 
      $password=$_POST['Password']; 
      if(!empty($username) && !empty($password)){ 
      if($username=='admin' && $password=='admin'){ 
       $_SESSION['validate']=true; 
       //echo "logged in.."; //not required because after redirecting it will         stateless. 
       header('location:127.0.0.1/php/admin.php'); 
       exit(0); 
      } 
      else{ 
       echo "Wrong Credential"; 
      } 
      } 
      else{ 
      echo "Set fields please..";//it will appear if credentials are empty.. 
      } 
     } 
     ?> 
    <html> 
    <head> 
     <title>Login</title> 
    </head> 
    <body> 
     <br><br><br><br><br><br><br><br><br> 
     <form action="<?php echo $_SERVER["PHP_SELF"]; ?>" method="POST"> 
    <?php session_start(); ?> 
    <table border="0" align="center"> 
     <tr> 
      <td>Username:</td> 
      <td><input type="text" name="Username"></td> 
     </tr> 
     <tr> 
      <td>Password:</td> 
      <td><input type="Password" name="password"></td> 
     </tr> 
     <tr> 
      <td colspan="2"><center><input type="submit" name="submit"></center></td> 
     </tr> 
     </table> 
     </form> 
    </body> 
    </html> 
+0

完成!它的工作虽然有一个小错误,但我纠正它!:) Thankx很多jan_sat! – m1lak0 2014-09-29 13:26:27

+0

你是受欢迎的..并感谢您选择我的答案最好。 – 2014-09-30 05:19:57

<?php 
session_start(); 
if(isset($_POST['Username'])){ 
    $username=$_POST['Username']; 
    $password=$_POST['passwd']; 
    if($username == "admin" && $password=="admin"){ 
     $_SESSION['validate'] = true; 
     echo "logged in.."; 
     header('location: http://127.0.0.1/php/admin.php'); 
     exit(0); 
    } 
    else{ 
     echo "Wrong Password"; 
    } 
} 
else{ 
    echo "Set fields please.."; 
} 


?> 
<html> 
<head><title>Login</title></head> 
<body> 
<br><br><br><br><br><br><br><br><br> 
<form action="<?php echo $_SERVER["PHP_SELF"]; ?>" method="POST"> 

<table border="0" align="center"> 
<tr> 
<td>Username:</td> 
<td><input type="text" name="Username"></td> 
</tr> 
<tr> 
<td>Password:</td> 
<td><input type="Password" name="passwd"></td> 
</tr> 
<tr> 
<td colspan="2"><center><input type="submit" name="submit"></center></td> 
</tr> 
</table> 
</form> 
</body> 
</html> 

删除,如果(isset($ _ SESSION [ '验证']))
原因的变量是不是在你的代码中定义
这对我的作品

+0

在页面上写着“请设置字段..”,但是在点击提交而没有提供任何输入而不是直接提交后,我想要它。 – m1lak0 2014-09-29 12:49:46

+0

如果没有输入,必须说“请设置字段..”。 :( 我真的很困惑 – m1lak0 2014-09-29 13:00:58