我已经被这几天困扰了,所以我觉得是时候寻求一些建议了。我正在构建一个使用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变量?提前谢谢!
答案 0 :(得分:0)
来自ajax,您正在调用user.php
,但是您尝试获取userid
变量形式viduploader.php
。那里不存在ajax数据,因为您已调用user.php
而不是viduploader.php
。因此,您可以通过调用viduploader.php
表单ajax而不是user.php
来尝试。
答案 1 :(得分:0)