我已经开始学习PHP Sessions,recently.That真的帮助我正确地登录了。
我应该先给你链接:mk-appform.net16.net/login.php(你可以随意使用,这是一个一旦修复就可以更改pass的testing.Im )用户名:管理员密码:1234请测试它
问题是,当您没有登录并直接在地址栏中输入mk-appform.net16.net/advsearch.php时,我要求预先登录的页面内容对于它重定向到登录page.But的second.Then是可见的。您知道,我不希望这显示在任何需要登录的way.It中。
下面是login.php的PHP代码
<?php
if (isset($_POST['submit']))
{
if(isset($_POST['user']) && isset($_POST['password']))
{
$user = $_POST['user'];
$password = $_POST['password'];
if(empty($user) || empty($password))
{
echo 'Please fill the form';
}
else
{
if($user == 'admin' && $password == '1234')
{ // check the infos
session_start();
$_SESSION['user'] = 'admin';
$_SESSION['password'] = '1234';
echo 'Login Succeeded.Now redirecting to panel...';
header("refresh:2; url=advsearch.php");
}
else
{
echo 'Invalid Username or Password';
}
}
}
else
{
echo 'Please use the form';
}
}
?>以及,成功登录后显示的内容代码(advsearch.php)
<?php
session_start();
if(isset($_SESSION['user']) && isset($_SESSION['password']))
{
if($_SESSION['user'] == 'admin' && $_SESSION['password'] == '1234')
{
header("url=advsearch.php");
}
else
{
session_destroy();
echo 'Redirecting..';
}
}
else
{
header("refresh:0; url=login.php");
}?>
发布于 2016-09-23 23:58:09
header重定向不是即时的。浏览器需要一段时间才能开始关闭连接并启动新连接。这意味着在输出location标题之后,您在页面上输出的任何内容仍然可以查看。你必须在输出标题后中止你的脚本。例如:
<?php
if (need to redirect) {
header('Location: login.php');
echo 'redirecting to login page, please wait ...';
exit(); // you need this
}
... regular page contents ...简而言之,如果你不想让用户看到一些东西,那么一开始就不要输出它。不要依赖于一切都能正常工作(甚至是快速工作)。他们很少这样做。
https://stackoverflow.com/questions/39664914
复制相似问题