我是PHP的新手。所以是的,这段代码可能完全没有意义。但总是。我想请求帮助。如果有人可以告诉我什么是错的,或者只是写出正确的代码。
基本上我尝试使代码做的是检查用户是否已登录,如果没有,则显示他登录并注册链接。
如果他已登录,则显示他的用户名。
这是PHP代码:
<?php
require("common.php");
if(empty($_SESSION['user']))
{
echo("<a href="login.html"><b>Login</b></a>");
echo("<a>or<a>");
echo("<a href="register.html"><b>Register</b></a>");
}
else
{
echo 'Username: ' . $current_user->user_login . "\n";
}
?>
来自HTML的代码:(我用来包含此代码的代码。不确定它是否也......)
<header action="php/check.php" method="post">
感谢您的回答仍然没有工作:( 这是当前的代码,我编辑了你们的建议。
<?php
session_start()
require("common.php");
if(empty($_SESSION['user']))
{
echo '<a href="login.html"><b>Login</b></a>';
echo '<a>or<a>';
echo '<a href="register.html"><b>Register</b></a>';
}
else
{
echo 'Username: ' . $current_user->username . "\n";
}
?>
答案 0 :(得分:2)
您确定会话是自动启动的吗? 否则你需要添加:
编辑:并且还删除了回声中的parentet,它内置了语言,它不是一个功能。还有逃避引用。
<?php
session_start()
require("common.php");
if(empty($_SESSION['user']))
{
echo "<a href=\"login.html\"><b>Login</b></a>";
echo "<a>or<a>";
echo "<a href=\"register.html\"><b>Register</b></a>";
}
else
{
echo 'Username: ' . $current_user->user_login . "\n";
}
?>
您还可以添加php.ini并使用session auto_start。
http://www.php.net/manual/en/session.configuration.php#ini.session.auto-start
答案 1 :(得分:0)
试试这个:
if(empty($_SESSION['user']))
{
echo '<a href="login.html"><b>Login</b></a>';
echo ' or ';
echo '<a href="register.html"><b>Register</b></a>';
}
答案 2 :(得分:0)
首先,您需要在所有转义语句中转义双引号:
echo "<a href=\"login.html\"><b>Login</b></a>";
echo "<a>or<a>";
echo "<a href=\"register.html\"><b>Register</b></a>";
您不需要echo
的括号。
其次,为了使用$_SESSION
变量,您需要使用函数session_start()
在此之前启动会话。