PHP - 重定向页面

时间:2011-05-18 18:45:14

标签: php authentication

所有

我的应用程序中有几个html页面在WAMP上。

我需要一个登录页面,成功登录后会将用户重定向到应用程序中的其他页面。

我:

1>无法重定向。我已经定义了header('Location: /X/Y/abc.html')。这是来自wamp home的相对路径,即C:\wamp\www\。我认为这里提到的路径存在问题。

2 - ;登录失败后,用户应重定向到同一页面。当我使用header('Location: '.$_SERVER['PHP_SELF'])尝试时。试图执行代码给我

所以我基本上有两个文件夹:

文件夹Z包含以下名为index.html和abc.php的HTML代码 Folder / X / Y /包含为其设置身份验证的实际应用程序。

HTML代码:

<html>
   <head>
      <title>
         Login
      </title>
   </head>
   <body>
      <form action="/Z/abc.php" method="post">
         <table id="input">
         <tr>
               <td>Admin Username <input type="text" name="username"></td>
         </tr>
         <tr>
               <td>Password <input type="text" name="passwd"></td>
         </tr>
         <tr>
               <td><input type = "submit" id="submitButton"></td>
         </tr>
      </form>
   </body>
</html>

PHP代码:

<?php 
   $username="ab";
   $password="cd";

   if (isset($_POST["username"]) && strcasecmp($username, $_POST["username"]))
   {
      header('Location: /X/Y/navigation.html');
   }
?>

执行代码并不会将我重定向到navigation.html,而是停在abc.php,即网址重新登录:http://localhost:81/Z/validate.php

1 个答案:

答案 0 :(得分:1)

如果登录失败,您需要将abc.php重定向回登录页面:

abc.php:

<?php

$username = 'ab';
$password = 'cd';

if ($_SERVER['REQUEST_METHOD'] == 'POST') {
   if ((isset($_POST['username']) && ($_POST['username'] == $username)) &&
      (isset($_POST['password']) && ($_POST['password'] == $password))) {
         header("Location: /X/Y/navigation.html");
         exit();
   }
}

header("Location: login.html");