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

使用mysql和php将用户名从会话记录到表中,php,mysql,session,Php,Mysql,Session,我有一个用mysql和php开发的数据库系统,还有一个登录系统,im使用会话,但是当用户添加记录时,我希望它也记录添加记录的用户,我想sessions会允许我这样做,但我不知道如何从session中检索用户名并将其添加到表中:简单插入示例: INSERT INTO table_name VALUES (value1, value2, value3) 我希望值3是会话中的用户名,我不确定您还需要多少信息来帮助我解决这个问题,所以请在用户登录后根据需要询问设置value3=$\u会话['user

我有一个用mysql和php开发的数据库系统,还有一个登录系统,im使用会话,但是当用户添加记录时,我希望它也记录添加记录的用户,我想sessions会允许我这样做,但我不知道如何从session中检索用户名并将其添加到表中:简单插入示例:

INSERT INTO table_name
VALUES (value1, value2, value3) 

我希望值3是会话中的用户名,我不确定您还需要多少信息来帮助我解决这个问题,所以请在用户登录后根据需要询问设置
value3=$\u会话['username']
,然后将其插入表中

下面是一些伪代码:

$username = $_SESSION['username']

//connect to db

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

//close db connection

会话ID参考:

首先,当用户登录到系统时(意味着在验证用户数据和生成会话令牌时),您需要将用户ID保存在会话中,然后当他执行任何插入操作时,您可以根据会话令牌获取用户信息并将其插入

伪码

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

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



如果您试图跟踪用户,那么我推荐的最简单的方法就是创建一个触发器。

如果您在会话中保留用户名,那么您可以检索它,但如何保留用户名?会话只是填充到$\u会话中的数据,PHP会在脚本调用之间神奇地为您保留这些数据。从$\u会话数组中提取数据与任何其他PHP变量没有什么不同,除了填充数组所需的SESSION\u start()之外。您在会话中存储了哪些信息?如果执行变量转储($\u会话);你会得到什么?如果将用户名存储到$\u会话数组中,则可以简单地添加它。如果存储用户ID,则需要通过另一个请求获取他的用户名。您希望在用户登录时将用户ID号保存到会话中。然后,您将使用此用户id并将其附加到他们在登录时创建的记录。不要记录用户名,只记录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
?>