php会话无法找到accrose页面

时间:2015-06-06 17:16:06

标签: php session login

我有一个简单的登录页面 login.html - 获取表单中的输入用户名和密码 login_result.php - 连接到服务器并启动会话&形成小形式验证 note.php - 这是用户选择其他子页面的主页面。到目前为止,我只在屏幕上显示用户名以测试会话的工作情况。

为了查看目的,我已更改为html。请按照链接查看错误...

login_result

note

2 个答案:

答案 0 :(得分:3)

您的链接似乎毫无帮助。无论如何,我将介绍如何使用基本登录和会话。

login.html:应该在login.html页面中的表单。当您将敏感信息传递到另一个页面时,方法必须成为POST。另请注意输入字段的名称。

<form role="form" method="POST" action="login_result.php">
<label for="UID">UserID:</label>
<input class="form-control" type="text" name="UID" required>
<br>
<label for="pwd">Password:</label>
<input class="form-control" type="password" name="pwd" required><br>
<button class="btn btn-default" type="submit">Login</button>
</form>

login_result.php:这是进行验证的地方。

<?php $username = trim($_POST['UID']); //UID is the name of the username input field
$pass = trim($_POST['pwd']); //So is pwd         
if(strcmp($username,"admin") === 0 && strcmp($pass,"admin") === 0 )
{       
    session_start(); //start session
    $_SESSION['username'] = $username; 
   //store userdata for further use. 
   //My page is simple so it just stores the username
    header("Location: note.php"); //redirect to your "success" page
}   
else
{
    //Wrong credentials
    header("Location: login.html");
}?>

验证是基本的。我通常使用哈希,但现在这样做会很好

note.php:重复使用Session变量来显示用户名,

<h3>Welcome, <?php echo $_SESSION['username']; ?> </h3>

如果会话处于活动状态,您还必须检查每个页面,如果不是,则必须重定向到登录名,否则登录没有意义。

in_all_pages:在开头添加此内容,

<?php
session_start(); //start the session
if (!isset($_SESSION['username']) || empty($_SESSION['username'])) 
{
  //redirect to the login
  header("Location: login.html");
  exit();
}

请记住破坏会话,如:

<强> logout.php:

<?php
session_start();
// Unset all of the session variables.
$_SESSION = array();
// If it's desired to kill the session, also delete the session cookie.
if (ini_get("session.use_cookies")) {
    $params = session_get_cookie_params();
    setcookie(session_name(), '', time() - 42000,
        $params["path"], $params["domain"],
        $params["secure"], $params["httponly"]
    );
}
// Finally, destroy the session.
session_destroy();
header("Location: login.html");
?>

答案 1 :(得分:0)

要使用PHP,文件必须具有.php扩展名。

说,要使用会话,你必须在每个php行的开头使用这个代码行:

curl -i localhost:25000/ping
HTTP/1.0 504 Gateway Time-out
Cache-Control: no-cache
Connection: close
Content-Type: text/html

<html><body><h1>504 Gateway Time-out</h1>
The server didn't respond in time.
</body></html>