Javascript 如何为登录用户读取和写入数据库数据

Javascript 如何为登录用户读取和写入数据库数据,javascript,php,database,wordpress,session,Javascript,Php,Database,Wordpress,Session,我不知道任何读过这篇文章的人怎么会把它等同于如何在PHP中运行WordPress函数?。我对在PHP中运行WordPress函数没有兴趣。我的问题是关于识别提交HTTP请求的用户/会话 当你加载一个页面时,你可以使用WordPress的get_current_user_id函数来识别用户。但这并不是运行WordPress函数的问题 我正在用WordPress、Javascript和PHP构建一个网站。我有PHP脚本,可以识别页面加载时登录的用户的WordPress用户id get_current

我不知道任何读过这篇文章的人怎么会把它等同于如何在PHP中运行WordPress函数?。我对在PHP中运行WordPress函数没有兴趣。我的问题是关于识别提交HTTP请求的用户/会话

当你加载一个页面时,你可以使用WordPress的get_current_user_id函数来识别用户。但这并不是运行WordPress函数的问题

我正在用WordPress、Javascript和PHP构建一个网站。我有PHP脚本,可以识别页面加载时登录的用户的WordPress用户id get_current_user_id。但是,当我试图通过Javascript XMLHttpRequest发送HTTP请求以执行PHP脚本时,PHP文件无法从get_current_user_id识别用户id

我认为使用PHP会话会有所帮助,但事实并非如此


那么,如何使用户能够写入数据呢?

我发现PHP会话ID存储在cookie中。它在cookie字符串中显示为。。。;PHPSESSID=fkldsjflksjlf;。。。。在我的Javascript XMLHttpRequest脚本中,我使用以下命令从cookie中提取会话ID。然后我将其作为参数发送

function test() {
    var idBegin = document.cookie.indexOf("PHPSESSID=") + 10;
    var sessId = document.cookie.substring(idBegin)
    var idEnd = sessId.indexOf(";");
    sessId = sessId.substring(0, idEnd);

    var request = new XMLHttpRequest();
    request.open("GET", "test.php?sessid="+sessId, true);
    request.onreadystatechange = function () {
        if (request.readyState === 4) {
            if ((request.status === 200) || (request.status === 0)) {
            }
        }
    };
    request.send(null);
}
在服务器端,我的MySQL数据库中有一个UserSessions表。该表有两列:SessionID;和用户ID。我有一个当用户加载页面时执行的PHP脚本。此时,get_current_user_id函数可用于获取WordPress用户id,并且$_COOKIE[PHPSESSID]可用。PHPSESSID是作为cookie存储在客户端上的内容

<?php

$sql = "INSERT INTO UserSessions (SessionID, UserID)";
$sql = $sql . " VALUES (" . $_COOKIE["PHPSESSID"] . ",";
$sql = $sql . get_current_user_id() . ")";

// I user the standard MySQLi stuff to execute the query and
// store the session ID, user ID pair

?>
在PHP中,我通过Javascript执行的脚本包括以下内容

<?php

$sql = "SELECT UserID FROM UserSessions ";
$sql = $sql . " WHERE SessionID = " . $_GET["sessid"];

// Again, standard MySQLi stuff to execute the query
// and retrieve the user id based on the session ID.
// I store the retrieved value in variable "$userid"

// When I have the user id, I can use it in other tables
// that have a UserID column

$sql = "SELECT column FROM table ";
$sql = $sql . " WHERE UserID = " . $userid;

$sql = "INSERT INTO table (column) VALUES (data) ";
$sql = $sql . " WHERE UserID = " . $userid;

?>
这似乎不是正确的方法。它对我有用。我不知道如何做得更好。无论如何,告诉我这是不正确的,并告诉我正确的方法。谢谢。

获取当前用户id是一项WP功能。如果您没有在PHP文件服务器中包含WP,则会导致PHP死亡致命错误:未捕获错误:调用未定义函数get\u current\u user id\i error。请参阅:。可能的副本