Bunu githublogin.php sayfasına header ile yönlendirme yapmadan öncesine yazdığımda hata veriyor nasıl yapılmalı acaba? Bunları yazıp ardınsan veritabanına kaydetme işlemi yapıyorum acaba orası mı yanlış oluyor. O zaman tüm değerleri session olarak kaydedeyim ana sayfadan session ları dinleyip veritabanına kaydederim diyorum. Acaba olur mu
<?php
require 'vendor/autoload.php';
use Github\Client;
session_start();
$githubClientId = 'xxxxxxx';
$githubClientSecret = 'xxxxxx';
$redirectUri = 'http://xx.xx.xx.xx/githublogin.php';
$client = new Client();
try {
if (isset($_GET['code'])) {
// GitHub'tan gelen code parametresini kullanarak token al
$token = $client->authenticate($githubClientId, $githubClientSecret, $_GET['code']);
// Kullanıcı bilgilerini al
$userInfo = $client->api('current_user')->show();
$githubUsername = $userInfo['login'];
$githubEmail = $userInfo['email'];
$githubAvatarUrl = $userInfo['avatar_url'];
// Kullanıcı bilgilerini session'a kaydet
$_SESSION['github_username'] = $githubUsername;
$_SESSION['github_email'] = $githubEmail;
$_SESSION['avatar_url'] = $githubAvatarUrl;
// Kullanıcı bilgilerini veritabanına kaydet
// Bu kısmı istediğiniz şekilde veritabanınıza uygun şekilde düzenleyin
$servername = "localhost";
$username = "kullanici_adi";
$password = "sifre";
$dbname = "veritabani_adi";
$conn = new mysqli($servername, $username, $password, $dbname);
if ($conn->connect_error) {
die("Bağlantı hatası: " . $conn->connect_error);
}
$sql = "INSERT INTO kullanici_tablosu (github_username, github_email, avatar_url) VALUES ('$githubUsername', '$githubEmail', '$githubAvatarUrl')";
if ($conn->query($sql) === TRUE) {
echo "Kullanıcı bilgileri başarıyla veritabanına eklendi";
} else {
echo "Hata: " . $sql . "<br>" . $conn->error;
}
$conn->close();
// Başarıyla işlem yapıldıktan sonra ana sayfaya yönlendir
header('Location: ana_sayfa.php');
exit;
} else {
// GitHub OAuth sayfasına yönlendir
$oauthUrl = $client->getAuthorizationUrl($githubClientId, $redirectUri, ['user']);
header('Location: ' . $oauthUrl);
exit;
}
} catch (\Exception $e) {
echo 'Hata: ' . $e->getMessage();
}
?>