我是php的新手。这是一个代码,用于检查用户是否使用会话登录,然后允许用户。
<?php
session_start();
$uname = $_POST['uname'];
$pass = $_POST['pass'];
if($uname == "admin" && $pass == "admin")
{
$_SESSION['uname'] = $uname;
$_SESSION['auth'] = 1;
echo "Welcome Mr ".$uname.". You are now logged in ";
echo "<br>";
echo "<a href='TakeMeHome.html'>Click here to access the application </a>";
}
else
{
echo "Invalid username or password";
}
?>
<?php
session_start();
if($_SESSION['auth'] != 1)
{
echo "You are not logged in! ";
echo "<a href = \"TakeMeHome.html\">";
echo "Access Application";
echo "</a>";
exit();
}
?>
<html>
You are now logged in
</html>
但链接标签正在显示
"; echo "Access Application"; echo ""; exit(); } ?>
以及html数据。没有进行验证。我知道有很多更好的方法来验证用户是否已登录。但我正在学习课程,因此我正在使用课程。 你能告诉我哪里出错了吗? 问候。
答案 0 :(得分:1)
在回波代码中使用单引号,如下所示:
<html>
<head>
</head>
<body>
<?php
echo "<a href='pageToGoTo.html' title='Page to go to' class='whatEver'>Anchor text</a>";
?>
</body>
</html>
已经说过,html应该放在身体......
答案 1 :(得分:0)
我不知道为什么@Andy建议你将PHP放在头部标签中 - 它不是javascript。你有两种方法可以格式化你的PHP和HTML,第一种方法是把你所有的PHP放在你的开始html标签之上,就像这样
<?php
session_start();
if($_SESSION['auth'] != 1) {
$message = 'You are not logged in! <a href="TakeMeHome.html">Access Application</a>';
} else {
$message = 'You are logged in!';
}
?>
<html>
<head>
</head>
<body>
<?php echo $message; ?>
</body>
</html>
或者,将其放在页面正文中,如下所示:
<?php
session_start();
?>
<html>
<head>
</head>
<body>
<?php
if($_SESSION['auth'] != 1) {
echo 'You are not logged in! <a href="TakeMeHome.html">Access Application</a>';
} else {
echo 'You are logged in!';
}
?>
</body>
</html>
如果仍然无法获得所需的结果,请使用var_dump($_SESSION);
打印出会话数组,并确保其中包含正确的信息。