我应该如何正确使用“ <?php
”和“ ?>
”语法。我发现您可以将“打开”和“关闭”标签与“大括号”和“关闭大括号”混合使用,以允许两者之间使用其他语言,但是我做得对吗?欢迎页面在应输入if语句时触发else语句。
除非用户已登录,否则我想使每个页面都无法访问,因此我以这种方式进行设置。
这是登录文件代码
<?php
$uname=$_POST['uname'];
$password=$_POST['password'];
$password = md5($password);
require_once('connection.php');
$query = "SELECT * FROM `login_info` WHERE `uname`='$uname' && `password`='$password'";
$stmt = $pdo->prepare($query);
$stmt->execute();
$count=$stmt->rowCount();
if($count==1)
{
echo "Login success";
$_SESSION['log']=1;
$_SESSION['uname'] = $_POST['uname'];
header("refresh:1;url=welcome.php");
}
else
{
echo "Login Credentials Not Found";
echo"<a href='index.php'><br/><br/>Back to Login Page</a>";
}
?>
这是welcome.php
<?php
require_once('connection.php');
session_start();
if(isset($_SESSION['log']))
{
?>
<!DOCTYPE html>
<html>
<style>
#quicklinks
{
padding-right: 15px;
}
</style>
<body>
<h2>LINKS</h2>
<a id="quicklinks" href="welcome.php" >Welcome</a>
<a id="quicklinks" href="findwords.php" >search users favourite words</a>
<a id="quicklinks" href="editwords.php" >edit your favourite word</a>
<a id="quicklinks" href="antclicker.php" >play the ant game</a>
<a id="quicklinks" href="antgameleaderboard.php" >ant game world leaderboard</a>
<a id="quicklinks" href="chat.php" onclick="window.open('chat.php','newwindow','width=450,height=650'); return false;">chat</a>
<a href="index.php" >logout</a>
<p>Hello and welcome to my website!</p>
</body>
</html>
<?php
}
else
{
echo "You are not logged in, please login";
echo"<a href='index.php'><br/><br/>Login Page</a>";
}
?>
如您所见,php代码在html代码周围破裂,但是单独的php块直接相关。我想象$_SESSION['log']=1;
和if(isset($_SESSION['log']))
的简单性应该起作用。问题是,尽管必须设置'log'索引,但欢迎页面恢复为else语句,对吗?这就是为什么我认为这一定是一个范围问题。
答案 0 :(得分:1)
您忘记将session_start();
添加到登录文件中。没有这个,SESSION超级全局将无法工作。
答案 1 :(得分:1)
简短答案:您正确使用了语法。除了在第一个示例中您忘记调用session_start();
。
更长的答案:您还可以使用alternate syntax,使代码更具可读性:
<?php
require_once('connection.php');
session_start();
if(isset($_SESSION['log'])):
?>
<!DOCTYPE html>
<html>
<style>
#quicklinks
{
padding-right: 15px;
}
</style>
<body>
<h2>LINKS</h2>
<a id="quicklinks" href="welcome.php" >Welcome</a>
<a id="quicklinks" href="findwords.php" >search users favourite words</a>
<a id="quicklinks" href="editwords.php" >edit your favourite word</a>
<a id="quicklinks" href="antclicker.php" >play the ant game</a>
<a id="quicklinks" href="antgameleaderboard.php" >ant game world leaderboard</a>
<a id="quicklinks" href="chat.php" onclick="window.open('chat.php','newwindow','width=450,height=650'); return false;">chat</a>
<a href="index.php" >logout</a>
<p>Hello and welcome to my website!</p>
</body>
</html>
<?php else: ?>
You are not logged in, please login
<a href='index.php'><br/><br/>Login Page</a>
<?php endif; ?>
最后,选择一个样式并坚持使用以保持一致是一个问题。