Php 用于登录和注销的If-else语句
我在前端使用一个脚本,如果用户登录,它应该呈现用户名而不是登录按钮,否则它应该保持不变。但我的脚本不起作用Php 用于登录和注销的If-else语句,php,login,Php,Login,我在前端使用一个脚本,如果用户登录,它应该呈现用户名而不是登录按钮,否则它应该保持不变。但我的脚本不起作用 <?php if(!isset($_SESSION['txt_username']) || !isset($_SESSION['txt_pwd'])){ echo "<a href='login.php'>Log in</a>"; header("Location:login.php"); else {echo $_SESS
<?php
if(!isset($_SESSION['txt_username']) || !isset($_SESSION['txt_pwd'])){
echo "<a href='login.php'>Log in</a>";
header("Location:login.php");
else {echo $_SESSION['txt_username']}
}
?>
有几个语法错误。在尝试诊断错误时,正确格式化代码将大有帮助:
<?php
if(!isset($_SESSION['txt_username']) || !isset($_SESSION['txt_pwd'])){
//echo "<a href='login.php'>Log in</a>";
header("Location:login.php");
}else{
echo $_SESSION['txt_username'];
}
php的header函数在找到该行时立即执行重定向。它还做其他事情:阅读:
试试这个:
if(!isset($_SESSION['txt_username']) || !isset($_SESSION['txt_pwd'])){
echo "<a href='login.php'>Log in</a>";
else {
echo $_SESSION['txt_username'];
}
结尾:不要在$\u会话中保留密码。至少对该密码使用md5或某些加密。您是否先启动了会话?如果已给出输出,则无法发送头。尝试删除标头命令上方的回显。此外,您还应该打开错误报告-这会提醒您注意此问题。请看一看-它处理您应该得到的错误。是的,我打开了,启动会话。如果您在其他文件的{echo$_会话['txt_username']}后面有任何代码,则需要在其他{echo$_会话['txt_username']}末尾添加分号另外,var_dump$会话;你现在是你的朋友。你将遭受同样的隐藏错误。发送标题之前不能打印输出。哦?不久前我停止使用PHP,因此我不了解最新和最伟大的更新:P您能为该语句提供参考吗?啊,您的意思是当输出被缓冲时。在这种情况下,我们可以做类似的事情,但我不相信它与PHP版本有关。。。可能是更新版本更改了默认设置。