将数据从Firebase传递到PHP变量

时间:2016-01-15 05:28:11

标签: php jquery ajax forms firebase

我已经被这几天困扰了,所以我觉得是时候寻求一些建议了。我正在构建一个使用Firebase进行身份验证的应用程序,并将用户视频存储在MySQL数据库中。 Firebase会返回包含唯一ID的对象。目标是将UID与用户上传的视频一起保存,以便用户可以轻松过滤视频。最初我尝试过这样的事情:

if(authData){ //this is provided by Firebase
var current_user = authData.uid;
$.ajax({      //I fire the UID from Firebase to user.php
        type: "post",
        url: "user.php",
        data: {
            user: current_user
        },
        success: function (data) {
            alert(data);
        }
    });
}

然后在user.php中:

<?php

$userid = $_POST['user'];


?>

我可以回显$ userid并验证它是否正好传递给user.php,但困境是我希望能够在viduploader.php中包含$ userid,它看起来像这样:

<?php  
require 'conn.php';
include 'user.php';

$target = $_FILES['userfile']['name'];

mysqli_select_db($connector, "uservideos");

if (!mysqli_select_db($connector, "uservideos")) {
die("Uh oh, couldn't select database");
}

$sql = "INSERT INTO uservideos (user, uservideo) VALUES ('$userid','$target')";

mysqli_query($connector, $sql)

?> 

当我提交表单以上传用户视频(viduploader.php)时,$ userid变量为null。我可以在user.php中设置静态变量并检查它们没有问题,所以我假设问题是因为我在ajax调用中传递了$ userid的值,这显然是在.php文件全部初始化之后发生的所以当我在viduploader.php中包含user.php时,$ userid的值尚未设置。有关如何最好地实现我的目标的任何想法,即当用户登录我的PHP时提供的Firebase变量?提前谢谢!

2 个答案:

答案 0 :(得分:0)

来自ajax,您正在调用user.php,但是您尝试获取userid变量形式viduploader.php。那里不存在ajax数据,因为您已调用user.php而不是viduploader.php。因此,您可以通过调用viduploader.php表单ajax而不是user.php来尝试。

答案 1 :(得分:0)

您可以尝试使用会话或Cookie。将$ userid设置为session或cookie,并在项目的任何位置使用它。您可以找到有关PHP会话here和cookie here的更多信息。

或者你可以简单地对viduploader.php进行ajax调用