2012-07-14 57 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