2012-03-27 16 views
2

我有一個數據庫系統開發的mysql和php,與登錄系統以及即時通訊使用會話,但是當用戶添加一個記錄我希望它也記錄用戶誰補充它,即時通訊思想的會議,讓我這樣做,但即時通訊失去interms如何從session中獲取的用戶名,並將其添加到表:例如一個簡單的插入的:從會話與mysql和php錄製用戶名到表

INSERT INTO table_name 
VALUES (value1, value2, value3) 

我要值3成爲會話的用戶名,我不知道你需要多少信息來幫助我解決這個問題,所以問問你認爲合適

+0

如果你在會話中保留用戶名,那麼你可以檢索它,但你如何保留它們? – 2012-03-27 18:39:10

+0

會話只是填充到$ _SESSION中的數據,PHP在腳本調用之間爲您神奇地保留了這些數據。將數據從$ _SESSION數組中拉出來比其他PHP變量沒有什麼不同,除了所需的session_start()來填充數組。 – 2012-03-27 18:39:36

+0

你將什麼信息存儲到會話中?如果你執行一個var_dump($ _ SESSION);你會得到什麼?如果您將用戶名存儲到您的$ _SESSION數組中,那麼您可以簡單地添加它,如果您存儲了用戶ID,則需要通過另一個請求獲取他的用戶名。 – Ronan 2012-03-27 18:40:33

回答

2

設置value3 = $_SESSION['username']用戶登錄後,然後將其插入表中。

下面是一些僞代碼:

$username = $_SESSION['username'] 

//connect to db 

INSERT INTO table_name 
VALUES (value1, value2, $username) 

//close db connection 

會話ID參考:http://php.net/manual/en/function.session-id.php

+0

非常感謝你 – dames 2012-03-28 02:51:06

1

首先,只要用戶登錄到系統(當你要驗證用戶數據和生成會話令牌的意思),你需要要將用戶標識保存在會話中,那麼當他執行任何插入操作時,您可以根據會話標記獲取用戶信息並插入它。

僞代碼

<?php 
//When user logged-in 
$_SESSION['user_id']=logged_in_user_id; 

//When you need to insert 
$userId = $_SESSION['user_id']; 
1
<?php 

session_start(); 

// On the page your login form submits to 

// Your authentication code is here make sure it is returning the USER ID if there is one 

$_SESSION['username'] = $result->username; // use this for user name 

$_SESSION['userid'] = $result->userid; // use this for user ID 
?> 

<?php 
    session_start(); 
    // Page that adds records 
    $sql = "INSERT INTO table_name VALUES (value1, value2, value3, $_SESSION['username'], $_SESSION['userid']); 
// I would rather see you use the user_id than the user name but you get the idea 
?> 
0

如果你想跟蹤用戶的話,我會建議是建立一個觸發的最簡單方法。

+1

你可以詳細介紹一下這個創建觸發器 – dames 2014-09-26 16:25:32