2012-07-14 56 views
10

我有这个疑问在MySQL中一个PHP页面:会议在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['user_id']不适用于社交引擎。如何纠正?我也在我的xampp中创建了本地主机版本,并且一切正常,但是当我将它转换为社交引擎时,会话不起作用。

+4

你叫'session_stat();'在文件的开头吗? – David 2012-07-14 08:16:03

+1

检查是否有任何本机社交引擎函数用于处理会话并使用它们存储/从中获取信息。 – 2012-07-14 08:16:45

+0

@大卫是的。我已经开始了会议。 – KazuNino 2012-07-14 08:20:06

回答

0
session_start(); 
$_SESSION["test"] = "hello world"; 
session_start(); 
echo $_SESSION["test"]; 

做上面的代码工作的?如果没有,请检查您的的session.save_path在php.ini

注意:保留该变量记住,要求从会话变量之前调用session_start()每个php脚本/页。

+0

中,但代码工作正常,但社交引擎不会保留会话的价值。 – KazuNino 2012-07-14 11:53:47

+1

查看此链接:http://www.socialengineforum.com/index.php?/topic/15992-bug-fix-your-session-configuration-is-incorrect/ – Sathishkumar 2012-07-14 11:56:49

+0

我也试过这个,但没有任何反应: ( – KazuNino 2012-07-14 12:15:23

2

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

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

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

0

同比可能会被忘记可能没有存储的值在页面

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

$ _SESSION [ 'user_ID的']顶部启动会话。检查您的登录页面(后基本上登录会话变量将设置)或寄存器天气后您分配一个值,会话变量..

的值设置为会话变量:

$ _SESSION ['USER_ID '] =“1234567”;

1

这就是我如何得到我的用户ID通过会话

session_start(); 

$userID = $viewer->getIdentity(); 

$_SESSION['user_id'] = $userID; 

echo $_SESSION['user_id']; 
1

使用会话存储user_id是完全错误的。要获得user_id,请尝试

$viewer_id = Engine_Api::_()->user()->getViewer()->getIdentity();(或$ user-> getIdentity,如果您有其他用户的对象)。

如果仍然需要使用会话来存储此数据,请使用Zend-approach