从会话与mysql和php录制用户名到表
问题描述:
我有一个数据库系统开发的mysql和php,与登录系统以及即时通讯使用会话,但是当用户添加一个记录我希望它也记录用户谁补充它,即时通讯思想的会议,让我这样做,但即时通讯失去interms如何从session中获取的用户名,并将其添加到表:例如一个简单的插入的:从会话与mysql和php录制用户名到表
INSERT INTO table_name
VALUES (value1, value2, value3)
我要值3成为会话的用户名,我不知道你需要多少信息来帮助我解决这个问题,所以问问你认为合适
答
设置value3 = $_SESSION['username']
用户登录后,然后将其插入表中。
下面是一些伪代码:
$username = $_SESSION['username']
//connect to db
INSERT INTO table_name
VALUES (value1, value2, $username)
//close db connection
+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
?>
如果你在会话中保留用户名,那么你可以检索它,但你如何保留它们? – 2012-03-27 18:39:10
会话只是填充到$ _SESSION中的数据,PHP在脚本调用之间为您神奇地保留了这些数据。将数据从$ _SESSION数组中拉出来比其他PHP变量没有什么不同,除了所需的session_start()来填充数组。 – 2012-03-27 18:39:36
你将什么信息存储到会话中?如果你执行一个var_dump($ _ SESSION);你会得到什么?如果您将用户名存储到您的$ _SESSION数组中,那么您可以简单地添加它,如果您存储了用户ID,则需要通过另一个请求获取他的用户名。 – Ronan 2012-03-27 18:40:33