所以我正在尝试创建一个登录系统,并且我已经测试过 login.php 是否正确获取了 POST 数据,我可以在那里打印出来。但是我创建的应该发送回 index.php 并找到会话变量 'password' 设置并且不为空,但它总是再次打印登录页面。为什么我不能访问我的会话变量?
我的functions.php文件:
<?php
function sec_session_start() {
$session_name = 'quassist_session';
session_name($session_name);
$secure = true;
$httponly = true;
if (ini_set('session.use_only_cookies', 1) === FALSE) {
header("Location: ../error.php?err=Could not initiate a safe session (ini_set)");
exit();
}
$cookieParams = session_get_cookie_params();
session_set_cookie_params($cookieParams["lifetime"], $cookieParams["path"], $cookieParams["domain"], $secure, $httponly);
session_start();
session_regenerate_id(true);
}
function sec_session_logout() {
$_SESSION = array();
$params = session_get_cookie_params();
setcookie(session_name(), '', time() - 42000,
$params["path"], $params["domain"],
$params["secure"], $params["httponly"]);
session_destroy();
}
?>
我的 login.php 文件:
<?php
include_once 'functions.php';
sec_session_start();
$_SESSION['username'] = $_POST['formuser'];
$_SESSION['password'] = $_POST['formpass'];
header("Location: index.php"); /* Redirect browser */
exit();
?>
我的 index.php 文件:
<?php
include_once("functions.php");
sec_session_start();
echo "<html>";
echo "<head>";
echo "<title>Login</title>";
echo "<link rel='stylesheet' href='style.css'>";
echo "</head>";
echo "<body>";
if(isset($_SESSION['password']) && !empty($_SESSION['password'])) {
// user entered password
echo $_SESSION['username'] . "<br>" . $_SESSION['password'];
// logout
// sec_session_logout();
} else {
echo "<div class='login-page'>";
echo "<div class='form'>";
echo "<form class='login-form' action='http://www.quassist.com/login.php' method='post'/>";
echo "<input name='formuser' type='text' placeholder='username'/>";
echo "<input name='formpass' type='password' placeholder='password'/>";
echo "<button type='submit' value='Submit'>login</button>";
echo "</form>";
echo "</div>";
echo "</div>";
}
echo "</body>";
echo "</html>";
?>
这
$secure = true;
仅当您使用 TLS/HTTPS 时才能使用。否则它会阻止 cookie 工作。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句