[英]php Login / Logout as one page
我正在尝试使用案例,开关和会话来做一个页面管理面板。
我的代码是:
<?php
if (isset($_SERVER['QUERY_STRING'])) {
switch ($_SERVER['QUERY_STRING']) {
case "logout":
break;
case "restpassword":
break;
// Default Page
default:
session_start();
if (isset($_POST['username']) && isset($_POST['password']) && $_POST['username']) {
$username = $_POST['username'];
$password = $_POST['password'];
$userid = login($username, $password);
if ($userid != "0") {
//Correct username and password set session & redirect
if (isset($_SESSION['user_id'])) {
$userid = $_SESSION['user_id'];
$username = $_SESSION['username'];
echo "Welcome " . $username;
}
break;
} else {
$msg = "Incorrect username or password";
}
}
?>
<html>
<head>
</head>
<body>
<form method="post">
<?php
//Print error message
if (isset($msg)) {
echo $msg;
}
?>
<label>Username:</label>
<input name="username" type="text" required="true"/>
<label>Password :</label>
<input name="password" type="password" required="true"/>
<input type="submit" name="submit" value="Login" required="true"/>
</form>
</body>
</html>
<?php
break;
}
}
?>
问题是,如果我重新进入该页面,它不会保存任何会话,我必须再次登录。
我应该如何解决,这样是否安全?
非常感谢
将session_start()移到页面的顶部。 php开头标记后的第一行...
session_start()
需要添加到页面的顶部。 我认为这会起作用。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.