最近做计算机老师布置的作业。遇到了问题,希望各位帮忙。程序做的不太好,我不是专业学计算机的。我做的是一个论坛系统。但是SIEEION不能用,以前能用,现在不知道为什么不能用了。数据库里面有那个账号,登录也成功了,但是仍然不能发表贴子。    我把SESSION_START()函数放在了head.php中,然后每个文件都包含了head.php.代码很多,这是head.php中开启SESSION的代码,放在文件的最前面。      function CheckEmail($email) //这是检查邮箱格式的函数。
  {
    $check="/^[0-9a-zA-Z_-]+@[0-9a-zA-Z_-]+(\.[0-9a-zA-Z_-]+){0,3}$/";
if(preg_match($check,$email))
{
  return true;
}
else
{
  return false;
}
  }
  
  @session_start(); //开启SESSION。
    下面也是head.php中的代码,表示用户登录后出现的情况,但即使用户登录了,这些代码也不会被执行。不知道为什么。
        <?php
  if($_SESSION['username'])
  { //这里如果用户已经登录的话,显示“发表文章”、“退出登录”两个按钮。
?>
 <a href="write_view.php" target="_self">发表文章</a>   &nbsp;&nbsp;
 <a href="drop_out.php" target="_self">退出登录</a>   &nbsp;&nbsp;
<?php
  }
?>    谁知道我是在哪里出现问题了吗?这个问题我解决了很长时间了,也不知道为什么,现在头好乱。

解决方案 »

  1.   

    你给$_SESSION['username']赋值了吗 ,你就判断,哪有你这样的 ,你可以修改 PHP.ini 文件 把
    session.auto_start=0 改为 =1 一切问题就解决了 。。 
      

  2.   

    做测试的话你可以这样<?php
      if($_SESSION['username'])
      { 
           echo $_SESSION['username'];//这里如果用户已经登录的话,显示“发表文章”、“退出登录”两个按钮。}看看你的session到底是取没取上值.看看到底是因为你session没值的原因造成的还是因为后续程序中有错误造成的.
    ?> 
      

  3.   

    session_start(); session['username']!=""
      

  4.   

    if里的东西应该是true 或者false吧你那个是什么
      

  5.   

    看看php.ini 里面session存放路径(session.save_path),确认能够生成session,如果不能,linux下看看目录权限是否有问题(一般默认的不会有问题)
    在生成session的语句下面print_r该session,确定能够生成。
    另外,修改php.ini后记录重新启动apache
      

  6.   

     呵呵,你也在做论坛啊。我也在做呢。不过快成功了。我们老师说的session_start();是在php的第一行。也就是最前面才能写出来才能调用。反正我们老师是这样说的。我也是这样写的。不知道你是不是这样认为
      

  7.   

    session_start()前不能有任何输出,并不是说必须得放在开头