$ _SESSION用于论坛或stackoverflow上的用户

时间:2012-02-03 09:54:13

标签: php mysql

假设我还编写了类似的登录表单,然后按名称通过$ _SESSION ['name']发出会话,如下所示

session_start();
    if(!isset($_SESSION['name'])){
            header("Location: login.php");
    }

然后在同一个文件上(display.php)我还会显示一个表单,向管理员发布一条消息,告诉他我的感受如何

    <td>
         <form action="tellhim.php" method="POST">
          Title:<input type="text" col="30" name="comment_title"/><br/>
          Your feeling:<br/><textarea name="comment_content" col="10"></textarea><br/>
          <input type="hidden" name="postfeeling" value="TRUE"/>          
          <input type="submit" value="Submit"/>
         </form>    
    </td>   

这意味着,在我点击按钮提交我的感觉后,我将被引导至tellhim.php。然后问题是在重新加载页面后会话似乎无效。有人可以帮帮我吗?

2 个答案:

答案 0 :(得分:2)

exit();

之后你应该header()

文件tellhim.php还需要:     session_start();

并且session_id已经以某种方式添加到tellhim.php,像这样自动添加:

ini_set('session.use_cookies', 1);
ini_set('session.use_trans_sid', TRUE);
ini_set('url_rewriter.tags', 'a=href,area=href,script=src,link=href,frame=src,input=src,form=fakeentry,form=post,form=action');
session_start();

答案 1 :(得分:0)

您需要在所有要使用的文件之前使用session start()

// login.php登录后重定向到display.php

在session_start();

//设置会话变量

$ _ SESSION ['name'] ='xxx';

// Display.php的

在session_start();

if(!isset($_SESSION['name'])){
        header("Location: login.php");exit;
}

{其余的表单代码在这里}