Я все еще учусь строить какой-то веб-сайт и хочу попробовать использовать Google Login.Однако я получил такую ошибку.Я искал много похожих вопросов, но пока не нашел решения.Это происходит, когда я хочу сделать авторизацию.Вот мое кодирование и файлы.
auth.php
<?php
require_once ('libraries/Google/autoload.php');
session_start(); //session start
$client_id = 'xxxxxxxxxxxxxxx.apps.googleusercontent.com';
$client_secret = 'xxxxxxxxxxxxxxxxxxxx';
$redirect_uri = 'http://localhost/google2/auth.php';
//database
$db_username = "root"; //Database Username
$db_password = ""; //Database Password
$host_name = "xxxxxxxxx"; //Mysql Hostname
$db_name = 'xxxxxxxx'; //Database Name
$client = new Google_Client();
$client->setClientId($client_id);
$client->setClientSecret($client_secret);
$client->setRedirectUri($redirect_uri);
$client->addScope("email");
$client->addScope("profile");
if (!isset ($_GET['code'])) {
$auth_url = $client->createAuthUrl();
header('Location: ' . filter_var($redirect_uri, FILTER_SANITIZE_URL));
}
else {
$client->authenticate($_GET['code']);
$_SESSION['access_token'] = $client->getAccessToken();
try {
$service = new Google_Service_Oauth2($client);
// $_SESSION['access_profile'] = $service->userinfo->get();
$user = $service->userinfo->get(); //get user info
$user = $_SESSION['access_profile'];
// connect to database
$mysqli = new mysqli($host_name, $db_username, $db_password, $db_name);
if ($mysqli->connect_error) {
die ('Error : (' . $mysqli->connect_errno . ') ' . $mysqli->connect_error);
}
//check if user exist in database using COUNT
$result = $mysqli->query("SELECT COUNT(google_id) as usercount FROM google_users WHERE google_id=$user->id");
$user_count = $result->fetch_object()->usercount; //will return 0 if user doesn't exist
//masukin ke mysql nih//
$statement = $mysqli->prepare("INSERT INTO google_users (google_id, google_name, google_email, google_link, google_picture_link) VALUES (?,?,?,?,?)");
$statement->bind_param('issss', $user->id, $user->name, $user->email, $user->link, $user->picture);
$statement->execute();
echo $mysqli->error;
}
catch (\Exception $e) {
echo $e->__toString();
unset ($_SESSION['access_token']);
die;
}
header('Location:afterlogin.php');
}
?>
И это мой afterlogin.php
<code><?php
session_start();
if (isset ($_SESSION['access_token']) && $_SESSION['access_token']) {
$user = $_SESSION['access_profile'];
//print user details
echo '<pre>';
print_r($_SESSION['access_profile']);
echo '
';}?>
Тогда это мой index.php
<?php
require_once ('libraries/Google/autoload.php');
session_start(); //session start
if (isset ($_SESSION['access_token']) && $_SESSION['access_token']) {
header('Location:afterlogin.php');
}
else {
echo "<a href='auth.php'> Login dengan akun Google</a>";
}
надеюсь, кто-нибудь найдет, где находится ошибка и как я могу ее исправить .. Заранее спасибо