【发布时间】:2015-10-18 22:02:51
【问题描述】:
您好,我尝试了一些我在 SO 上看到的解决方案,但似乎都没有解决我的问题。
我的登录页面 (login.php) 中有一个变量 $C_userUsername,我试图将其传递给包含文件 (head.php强>)。这个想法是,成功登录后,用户名将显示在页面上。
这里是一些代码。
login.php:
if ($valid) {
global $C_userUsername;
$T_userUserName = trim($userUsername);
$C_userUsername = htmlentities($T_userUserName);
} else {
echo "<br>Invalid user name or password<br>";
}
head.php:
echo "<ul>";
echo "<li id='regLi'><a href='registration.php'>Register</a></li>";
echo "<li id='onLi'><a href='login.php'>Login</a></li>";
echo "<li id='userLi'><a href='#'>$C_userUsername is logged in</a></li>";
echo "</ul>";
【问题讨论】:
-
使用错误报告 php.net/manual/en/function.error-reporting.php - 不知道
$valid和$userUsername是在哪里定义的或如何包含它们。 -
这一切都发生在理智的执行中吗? PHP 变量,无论是否为全局变量,仅在执行范围内可用。将值存储在会话中或一些存储之王将解决您的问题
-
代码的第二个 sn-p,来自
head.php,是在函数内定义的,还是在login.php的函数内定义的included?如果是这样,那可能是您的问题,因为PHP variable scope 规则规定局部变量(在函数中初始化的任何变量)默认情况下是该函数的本地变量,并且不会从全局范围显式导出。由于include构造继承了调用范围,因此在函数内部使用include 'head.php'会使$C_userUsername默认成为局部变量。
标签: php variables scope include