这只是一个一般性问题,因为我找不到任何答案(或为 google 想出正确的关键字)。问题是我最近刚刚在我的网站上启用了谷歌登录,它在我的笔记本电脑浏览器上就像一个魅力一样,但由于某种原因在我的安卓手机上它不起作用。就像我可以看到该按钮一样,但是当我在手机上按下它时,它会将我带到另一个浏览器选项卡,然后它关闭了,什么也没有发生。
<div class="btn mr-16pt g-signin2" data-onsuccess="onSignIn"></div>
<script>
function onSignIn(googleUser) {
var profile = googleUser.getBasicProfile();
if (profile) {
$.ajax({
type: 'POST',
url: 'login_g.php',
data: {
id: profile.getId(),
name: profile.getName(),
email: profile.getEmail(),
image: profile.getImageUrl()
}
}).done(function(data) {
console.log(data);
if (data == 1) {
window.location.href = '../profile';
} else {
location.href = "../register/step-2.php?id=" + profile.getId();
}
}).fail(function() {
alert("Posting failed.");
});
}
}
</script>
这是唱歌的代码,它会带您进入个人资料,或者如果您是新人,那么它会保存您的详细信息并带您进入注册过程的其余部分。
$email = $_POST['email'];
$name = $_POST['name'];
$image = $_POST['image'];
$id = $_POST['id'];
$stu_id = $_POST['id'];
$pwdCheck = "SELECT * FROM `login` WHERE email=?";
$stmt = mysqli_stmt_init($conn);
if(mysqli_stmt_prepare($stmt,$pwdCheck)){
mysqli_stmt_bind_param($stmt,"s", $email);
mysqli_stmt_execute($stmt);
$result = mysqli_stmt_get_result($stmt);
$row = mysqli_fetch_array($result);
mysqli_stmt_close($stmt);
if (mysqli_num_rows($result) > 0) {
include "../session/session.php";
$_SESSION['email'] = $email;
$_SESSION['token'] = $token;
$_SESSION['image'] = $image;
echo 1;
}else{
$login = mysqli_query($conn, "SELECT * FROM `login` WHERE email='$email'");
if (!mysqli_num_rows($login) > 0) {
$reg = "INSERT INTO `login`(`name`,`stu_id`,`email`,`google_id`) VALUES ('$name','$id','$email','$id')";
$query = mysqli_query($conn, $reg);
}
}
}
这是 login_g.php 代码
您可以避免使用变量名称(如 pwdcheck),因为我从当前登录系统中选择了这些名称并且没有更改它们
让我知道我在这里做错了什么,我的意思是它在计算机浏览器上运行良好,但在移动设备上运行得很好。