从会话与mysql和php录制用户名到表

从会话与mysql和php录制用户名到表

问题描述:

我有一个数据库系统开发的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

设置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

首先,只要用户登录到系统(当你要验证用户数据和生成会话令牌的意思),你需要要将用户标识保存在会话中,那么当他执行任何插入操作时,您可以根据会话标记获取用户信息并插入它。

伪代码

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

//When you need to insert 
$userId = $_SESSION['user_id']; 

<?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 
?> 

如果你想跟踪用户的话,我会建议是建立一个触发的最简单方法。

+1

你可以详细介绍一下这个创建触发器 – dames 2014-09-26 16:25:32