我现在正在研究一个论坛软件,到目前为止我做得很好,一切正常,但我不能让它逃脱,我不确定如何。
每当我打电话
时,我都会收到未定义的索引:用户名$_SESSION['username']
我在单独的登录文件中启动会话,但每次调用时都会收到此错误,我只有在有人没有登录时才会收到,所以就像我登录时一样,它没有显示,只有当我没有登录时,我怎么能摆脱它?
这是我的整个页面代码:
<?php
session_start();
include_once("connect.php");
$find = "SELECT id,name,description FROM forums";
$run_find = mysql_query("$find");
if ($_SESSION['username']) {
print "Welcome, " . $_SESSION['username']. "!<br/>";
}
while($is = mysql_fetch_assoc ($run_find))
{
$id = $is['id'];
$name = $is['name'];
$des = $is['description'];
print "<div style='width:500px;background-color:#FFCCFF;'>";
print "Forum : <a href='topics.php?t=$id'>". $name . "</a><br/>" .$des . "<br/><hr>";
print "</div>";
}
if (!$_SESSION['username']) {
echo "
<form action='loginnext.php' method='post'>
Username: <input type='text' name='username'><br/>
Password: <input type='password' name='password'><br/>
<input type='submit' name='submit' value='Login'><br/></form>";
}
if ($_SESSION['username']) {
echo "<a href='logout.php'>Logout</a>";
}
?>
答案 0 :(得分:2)
if (!empty($_SESSION['username']))
是您想要的构造。 isset
和empty
无法发出通知。
答案 1 :(得分:2)
如果用户未登录,则不会设置会话变量,因此会显示错误消息。
使用if(isset($_SESSION['username']))
代替if($_SESSION['username'])