PHP:有人知道像Facebook页面那样的会话处理吗?
问题: 用户已登录 所以当我打字的时候 local.test_php.com/form/ 它需要我登录页面。local.test_php.com/form/index.php 但是我想把它放到我的主页上 我想要的是当我们键入facebook.com(之前已经登录)并重定向到新闻提要时,facebook所做的事情。。。但在我的情况下,我会被重定向到登录页面(即使我已经登录),所以我必须再次登录或键入url才能进入主页 我不知道如何自定义会话,以便在用户登录时始终重定向到主页。它不应该采取我登录页面在任何情况下 主页如下所示:PHP:有人知道像Facebook页面那样的会话处理吗?,php,session,Php,Session,问题: 用户已登录 所以当我打字的时候 local.test_php.com/form/ 它需要我登录页面。local.test_php.com/form/index.php 但是我想把它放到我的主页上 我想要的是当我们键入facebook.com(之前已经登录)并重定向到新闻提要时,facebook所做的事情。。。但在我的情况下,我会被重定向到登录页面(即使我已经登录),所以我必须再次登录或键入url才能进入主页 我不知道如何自定义会话,以便在用户登录时始终重定向到主页。它不应该采取我登录页面
<!DOCTYPE html>
<html>
<script src="//code.jquery.com/jquery-1.9.1.js"></script>
<script src="//ajax.aspnetcdn.com/ajax/jquery.validate/1.9/jquery.validate.min.js"></script>
<head>
<title>My first PHP Website</title>
</head>
<body>
<h2 align="center">Home Page</h2>
<?php
session_start();
if(isset($_SESSION['user'])){
}else{
header("location: index.php");
}
$user = $_SESSION['user'];
echo "<br>";
echo "WELCOME ".$user." ";
echo "<br>";
echo "Do you want to ";
print '<a href="logout.php" align="left">logout</a>';
echo " ?";
echo "<br>";
?>
</body>
</html>
我的第一个PHP网站
主页
试试这个:
<?php
session_start();
if(isset($_SESSION['user'])){
}else{
header("location: index.php");
}
$user = $_SESSION['user'];
echo "<br>";
echo "WELCOME ".$user." ";
echo "<br>";
echo "Do you want to ";
print '<a href="logout.php" align="left">logout</a>';
echo " ?";
echo "<br>";
?>
<html>
<script src="//code.jquery.com/jquery-1.9.1.js"></script>
<script src="//ajax.aspnetcdn.com/ajax/jquery.validate/1.9/jquery.validate.min.js"></script>
<head>
<title>My first PHP Website</title>
</head>
<body>
<h2 align="center">Home Page</h2>
我的第一个PHP网站
主页
代码的问题在于,您希望在html输出后使用header函数,请尝试以下操作:
<?php
session_start();
if(isset($_SESSION['user'])){
}else{
header("location: index.php");
}
$user = $_SESSION['user'];
echo "<br>";
echo "WELCOME ".$user." ";
echo "<br>";
echo "Do you want to ";
print '<a href="logout.php" align="left">logout</a>';
echo " ?";
echo "<br>";
?>
<html>
<script src="//code.jquery.com/jquery-1.9.1.js"></script>
<script src="//ajax.aspnetcdn.com/ajax/jquery.validate/1.9/jquery.validate.min.js"></script>
<head>
<title>My first PHP Website</title>
</head>
<body>
<h2 align="center">Home Page</h2>
我的第一个PHP网站
主页
您的代码的问题是,您希望在html输出之后使用header函数,我稍微重写了您的代码,因此现在它更具可读性 首先,当您想在页面上使用
header
函数或启动会话时,您应该在输出缓冲区中进行任何操作之前进行操作
如您所见,我删除了echo
东西,如果您使用IDE作为编辑器,语法突出显示将帮助您阅读代码,并确保它是有效的
第二件事,如果您想让用户“记住”,当用户关闭所有存储会话变量的浏览器时,您需要给用户一个机会。但首先,修复代码
<?php
session_start();
if (!isset($_SESSION['user'])) {
header("location: index.php");
}
?><!DOCTYPE html>
<html>
<script src="//code.jquery.com/jquery-1.9.1.js"></script>
<script src="//ajax.aspnetcdn.com/ajax/jquery.validate/1.9/jquery.validate.min.js"></script>
<head>
<title>My first PHP Website</title>
</head>
<body>
<h2 align="center">Home Page</h2>
<?php
if (!empty($_SESSION['user'])) {
?>
<p>WELCOME <?php echo $_SESSION['user']; ?></p>
<p>Do you want to <a href="logout.php" align="left">logout</a>?</p>
<?php
}
?>
</body>
</html>
我的第一个PHP网站
主页
欢迎光临
你想去吗
我稍微重写了您的代码,因此现在可读性更强
首先,当您想在页面上使用header
函数或启动会话时,您应该在输出缓冲区中进行任何操作之前进行操作
如您所见,我删除了echo
东西,如果您使用IDE作为编辑器,语法突出显示将帮助您阅读代码,并确保它是有效的
第二件事,如果您想让用户“记住”,当用户关闭所有存储会话变量的浏览器时,您需要给用户一个机会。但首先,修复代码
<?php
session_start();
if (!isset($_SESSION['user'])) {
header("location: index.php");
}
?><!DOCTYPE html>
<html>
<script src="//code.jquery.com/jquery-1.9.1.js"></script>
<script src="//ajax.aspnetcdn.com/ajax/jquery.validate/1.9/jquery.validate.min.js"></script>
<head>
<title>My first PHP Website</title>
</head>
<body>
<h2 align="center">Home Page</h2>
<?php
if (!empty($_SESSION['user'])) {
?>
<p>WELCOME <?php echo $_SESSION['user']; ?></p>
<p>Do you want to <a href="logout.php" align="left">logout</a>?</p>
<?php
}
?>
</body>
</html>
我的第一个PHP网站
主页
欢迎光临
你想去吗
只是一个快速观察,您需要将您的标题()
放在任何html/输出之前,否则您将得到一个“Headers all ready sent”错误,除此之外,您已经准备好了大部分逻辑,对吗?如果用户设置为空或不为空,请重定向到主页?@epodax能否请您详细说明使用代码…非常感谢。。!!在您自己提供的代码中,您已经准备好检查用户是否已登录,据我所知,您只有在未登录时才会被重定向?@epodax yes correct。但我想知道的是,当我们键入facebook.com时,facebook会做什么,我们会重定向到新闻提要。。。但在我的情况下,我会被重定向到登录页面,所以我必须再次登录或键入主页的url“记住我”功能?设置cookie,或将会话设置为更晚的过期日期。只需快速观察,您需要将header()
放在任何html/输出之前,否则会出现“Headers all ready sent”错误,除此之外,您已经准备好了大部分逻辑,对吗?如果用户设置为空或不为空,请重定向到主页?@epodax能否请您详细说明使用代码…非常感谢。。!!在您自己提供的代码中,您已经准备好检查用户是否已登录,据我所知,您只有在未登录时才会被重定向?@epodax yes correct。但我想知道的是,当我们键入facebook.com时,facebook会做什么,我们会重定向到新闻提要。。。但在我的情况下,我会被重定向到登录页面,所以我必须再次登录或键入主页的url“记住我”功能?设置cookie,或将会话设置为更晚的过期日期。请添加$\u会话['user']=“user”;会话结束后,请启动,以确保此会话已设置。此方法在此处有效。引号中的用户是一个变量。?不,这将是值,因此您的输出将是:“欢迎用户”兄弟,你不明白我的问题,我不想要任何我知道如何得到的输出…这是我遇到的页面重定向问题…在facebook上,除非你注销,否则你永远无法登录页面…但在我的情况下,这是不应该发生的…你必须用SESSION_destroy()替换$_SESSION['user'];以确保取消设置会话。然后,您可以尝试转到页眉。对不起,我把你的问题搞错了。请添加$\u会话['user']=“user”;会话结束后,请启动,以确保此会话已设置。此方法在此处有效。引号中的用户是一个变量。?不,这将是值,因此您的输出将是:“欢迎用户”兄弟,你不明白我的问题,我不想要任何我知道如何得到的输出…这是我遇到的页面重定向问题…在facebook上,除非你注销,否则你永远无法登录页面…但在我的情况下,这是不应该发生的…你必须用SESSION_destroy()替换$_SESSION['user'];以确保取消设置会话。然后,您可以尝试转到页眉。对不起,我把你的问题搞错了。