yusufcagaloglu adlı üyeden alıntı: mesajı görüntüle
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();
}
?>