使用mysql和php将会话记录到表中

时间:2012-03-27 18:35:14

标签: php mysql session

我有一个用mysql和php开发的数据库系统,还有一个登录系统,即时通讯使用会话,但是当用户添加一条记录时,我希望它也记录添加它的用户,我认为会话会让我要做到这一点,但我失去了如何从会话中检索用户名并将其添加到表中的插入:简单插入的示例:

INSERT INTO table_name
VALUES (value1, value2, value3) 

我希望将值3作为会话的用户名,我不确定您需要多少信息来帮助我解决这个问题,所以问你认为合适

4 个答案:

答案 0 :(得分: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

答案 1 :(得分:1)

首先,一旦用户登录系统(意味着您正在验证用户数据并生成会话令牌),您需要在会话中保存用户ID,然后当他执行任何插入操作时,您可以获得基于会话令牌的用户信息并插入它。

伪代码

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

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

答案 2 :(得分: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
?>

答案 3 :(得分:0)

如果您尝试跟踪用户,那么我建议的最简单方法是创建触发器。