我正在创建一个可以使用HTTP基本身份验证登录的网站。一旦一个人使用正确的凭据登录,它将启动一个新会话并有一个链接继续到另一个页面。在另一个页面上,我希望它通过获取我在最后一页上创建的用户名会话变量来检查是否已启动会话。如果会话变量存在,我希望它执行页面HTML代码。如果会话变量不存在,它应该为用户提供指向登录页面的链接。有谁知道如何实现这一目标?
// Second page checking to see if the session variables exists code
<?php
session_start();
if (isset($_SESSION['username'])) {
$username = $_SESSION['username'];
// Command to execute rest of webpage after PHP closing tag
} else {
die("<a href='index.php'>Login</a>");
}
?>
<!-- HTML CODE THAT NEEDS TO BE EXECUTED -->
<p>Hi!</p>
答案 0 :(得分:3)
您可以尝试将您的网页内容包装在PHP代码中的if
周围。
<?php
session_start();
if (isset($_SESSION['username'])) {
$username = $_SESSION['username'];
?>
<p>Hi!</p>
<?php
} else {
die("<a href='index.php'>Login</a>");
}
?>
修改强>
经过一番考虑后,die
将不再需要。你可以对if做同样的事情。这将返回结果,如果需要,还可以在文件中执行其他PHP代码。
<?php
session_start();
if (isset($_SESSION['username'])) {
$username = $_SESSION['username'];
?>
<p>Hi!</p>
<?php
} else {
?>
<a href='index.php'>Login</a>
<?php
}
?>
答案 1 :(得分:1)
<?php
session_start();
if (isset($_SESSION['username'])) {
$username = $_SESSION['username'];
// Command to execute rest of webpage after
?>
<p>Hi!</p>
<?php
} else {
die("<a href='index.php'>Login</a>");
}
?>
您需要将条件HTML移动到if
语句中。
答案 2 :(得分:0)
<?php
session_start();
if (isset($_SESSION['username']))
{
$username = $_SESSION['username'];
}
else
{
echo "<a href='index.php'>Login</a>";
}
?>
<p>Hi!</p>
Die将终止脚本的执行