Wordpress * get_current_user_id *在远程服务器上返回0,但在本地服务器上不返回

时间:2017-05-09 11:26:53

标签: javascript php jquery ajax wordpress

请在使用wp函数 get_current_user_id()检索登录的用户ID后,使用WordPress并使用Ajax将一些数据存储到数据库中。

在我的本地服务器上一切正常 - localhost但在我的远程服务器 get_current_user_id()总是返回0而不是登录用户ID。

当我直接运行submit.php文件时 get_current_user_id()返回用户ID

请注意,submit.php和Ajax不是Wordpress的一部分,它位于wordpress根文件夹中的单独文件夹中

当我单独运行submit.php文件并测试以查看生成的执行查询时, get_current_user_id()输出正确的登录用户ID而不是0

submit.php

require_once("../../../wp-blog-header.php");

$connection = mysqli_connect("host", "user", "pass", 
"db"); // Establishing Connection with Server..
$db = mysqli_select_db($connection, "db"); // Selecting Database
//Fetching Values from URL
@$score = $_POST['score'];

$user_id = get_current_user_id();
//Insert query
$query = "update gamestats set bestscore = {$score} WHERE game='2048' AND 
playerid = {$user_id} and bestscore <= {$score}";
mysqli_query($connection, $query);

if (mysqli_affected_rows($connection) <= 0){
$ins_query = "INSERT INTO gamestats (bestscore, game, playerid) 
VALUES({$score}, '2048', {$user_id})";
mysqli_query($connection, $ins_query);
}
mysqli_close($connection); // Connection Closed

Ajax Call 文件与submit.php

位于同一文件夹中
$.ajax({
        type: "POST",
        url: "submit.php",
        data: dataString,
        cache: false,
        success: function(result){
            //alert(score + " :Post Best Score");
        }
});

WP模板中的启动代码

<iframe height="1057" scrolling="no" align="middle" frameborder="0" src="http://www.xxxx.com/wp-folder/custom-folder/index.html">

iframe是我用WP模板启动整个过程的原因。

在index.html中调用Ajax脚本

&#34;自定义文件夹&#34;是我自己的自定义文件夹放在WordPress文件夹

注意: get_current_user_id()在本地服务器上返回正确的用户ID,一切正常,但在远程服务器上,它返回0,将0作为playerid存入数据库每时每刻。可能有什么问题请帮帮忙?

1 个答案:

答案 0 :(得分:0)

通过清除Web浏览器和本地存储的缓存来修复。