【问题标题】:Session in PHP in Social Engine社交引擎中的 PHP 会话
【发布时间】:2012-07-13 23:46:50
【问题描述】:

我在 mysql 的一个 php 页面中有这个查询:

mysql_query("INSERT INTO tz_todo SET text='".$text."', 
                                     position = ".$position.", 
                                     user_id=".$_SESSION['user_id'].", 
                                     view_stat=0");

我尝试回显查询,结果如下:

INSERT INTO tz_todo SET text='trial text', position = 21, user_id=, view_stat=0

好像获取不到user_id的session值。

$_SESSION['user_id'] 不在社交引擎中工作。如何纠正这个?我还在我的 xampp 中制作了一个 localhost 版本,一切都很好,但是当我将其转换为社交引擎时,会话无法正常工作。

【问题讨论】:

  • 文件开头是否调用session_stat();
  • 检查是否有任何本地社交引擎功能来处理会话并使用它们来存储/获取信息。
  • @David 是的。我已经开始了会议。
  • @Ivanhoe123 这就是社交引擎的问题。我对社交引擎真的很陌生,他们没有太多的文章和教程。
  • 有什么错误吗? error_reporting(-1); 并确保它们可见 (display_errors)

标签: php mysql session socialengine


【解决方案1】:

使用 session 存储 user_id 是完全错误的。要获得 user_id 试试

$viewer_id = Engine_Api::_()->user()->getViewer()->getIdentity();(或者 $user->getIdentity 如果你有另一个用户的对象)。

如果您仍需要使用 session 来存储这些数据,请使用Zend-approach

【讨论】:

  • $user = Engine_Api::_()->getItem('user', $user_id);通常让用户获得完整的对象会更好。
【解决方案2】:

这就是我通过会话获取用户 ID 的方式

session_start();

$userID = $viewer->getIdentity();

$_SESSION['user_id'] = $userID;

echo $_SESSION['user_id'];

【讨论】:

    【解决方案3】:

    Yoy 可能会忘记在页面顶部开始会话

    <?php if(!isset($_SESSION)){ session_start(); } ?>

    $_SESSION['user_id'] 可能没有存储值。检查您的登录页面(基本上在登录会话变量将设置之后)或在注册天气后您为该会话变量分配了一个值..

    为会话变量设置值:

    $_SESSION['user_id'] = "1234567";

    【讨论】:

      【解决方案4】:

      在您使用会话对象的任何页面中,将此代码放在文件的开头:

      if(!isset($_SESSION)){session_start();}
      

      这样,如果会话尚未启动,它会启动它;否则,如果会话已经开始,它将忽略会话开始。 这很重要,因为如果会话已经启动,调用 session_start() 有时会导致错误。

      【讨论】:

        【解决方案5】:
        session_start(); 
        $_SESSION["test"] = "hello world";
        
        session_start();
        echo $_SESSION["test"];
        

        上面的代码有效吗?如果没有,请检查 php.ini 中的 session.save_path

        注意:要保留此变量,请记住在从会话中调用变量之前在每个 php 脚本/页面上调用 session_start()。

        【讨论】:

        猜你喜欢
        • 2016-06-26
        • 1970-01-01
        • 1970-01-01
        • 2014-08-14
        • 1970-01-01
        • 2015-01-24
        • 2012-12-14
        • 2012-04-29
        • 1970-01-01
        相关资源
        最近更新 更多