<?php

include 'config.php';

$user_token = $_COOKIE['user_token'];
$user_onesignal = $_COOKIE['user_onesignal'];

// Kullanıcı giriş yapmışsa
if (isset($user_token)) {
    $query = $db->query("SELECT * FROM kullanicilar WHERE user_token = '{$user_token}'", PDO::FETCH_ASSOC);
    if ($query->rowCount() > 0) {
        // Kullanıcı bulundu, user_onesignal'i güncelle
        $user_info = $query->fetch(PDO::FETCH_ASSOC);
        if ($user_info['user_onesignal'] != $user_onesignal) {
            // user_onesignal değişmiş, güncelle
            $update_query = $db->prepare("UPDATE kullanicilar SET user_onesignal = ? WHERE user_token = ?");
            $update_query->execute([$user_onesignal, $user_token]);
        }
        header('Location: index.php');
        die();
    } else {
        setcookie('user_token', '', time() - 1000, '/', "app.heysen.net");
    }
}


function curl_resim_kaydet($url,$saveto){
  $ch = curl_init ($url);
  curl_setopt($ch, CURLOPT_HEADER, 0);
  curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
  curl_setopt($ch, CURLOPT_BINARYTRANSFER,1);
  $raw=curl_exec($ch);
  curl_close ($ch);
  if(file_exists($saveto)){
      unlink($saveto);
  }
  $fp = fopen($saveto,'x');
  fwrite($fp, $raw);
  fclose($fp);
}

if (!isset($_GET['email'])) {
    die("Geçersiz istek");
}

$email = $_GET['email'];

$fullname = isset($_GET['fullname']) ? $_GET['fullname'] : "";

if (empty($fullname)) {
    // Fullname boşsa, e-posta adresinden otomatik olarak oluştur
    $email = $_GET['email'];
    $emailParts = explode("@", $email);
    $fullname = $emailParts[0];
}


$google_id = $_GET['id'];
$profilePicture = isset($_GET['pp']) ? $_GET['pp'] : "";
$onesignal = $_COOKIE['user_onesignal'];
$userAgent = $_SERVER['HTTP_USER_AGENT'];
$ip = $_SERVER['REMOTE_ADDR'];
$timestamp = time();
$password = "NOPASSWORDCANIM" . $email;



    $email = $_GET['email'];
    $fullname = $_GET['fullname'];
    $pp = $_GET['pp'];

    /*echo "E-mail: " . $email . "<br>";
    echo "Fullname: " . $fullname . "<br>";
    echo $onesignal;
    echo "<br>";
*/




// Boş alan kontrolü
if (empty($onesignal) || empty($email) || empty($password) || strlen($password) <= 5 || !filter_var($email, FILTER_VALIDATE_EMAIL)) {
    $result = ["result" => "100"];
    echo json_encode($result); // Boş alan veya hatalı giriş
    exit;
}

// Kullanıcı kimlik numarası oluşturma
function generateUserID($db)
{
    $user_id = mt_rand(100000, 999999);
    while (true) {
        $idCheck = $db->query("SELECT COUNT(*) FROM kullanicilar WHERE user_id = '$user_id'")->fetchColumn();
        if ($idCheck == 0) {
            return $user_id;
        }
        // Eğer kullanıcı kimlik numarası kullanılıyorsa, yeni bir numara oluştur
        $user_id = mt_rand(100000, 999999);
    }
}

$user_id = generateUserID($db);


// E-posta kontrolü
$emailCheck = $db->query("SELECT COUNT(*) FROM kullanicilar WHERE user_email = '$email'")->fetchColumn();
if ($emailCheck > 0) {
    $result = ["result" => "2"];
    echo json_encode($result); // E-posta kayıtlı
    $mailsifre = 'finder_' . mb_strtolower($email) . mb_strtolower($password);
    $user_cookies = hash('sha256', $mailsifre);
    setcookie("user_token", $user_cookies, time() + (365 * 24 * 60 * 60));
    $query2 = $db->prepare("UPDATE kullanicilar SET user_onesignal = ? WHERE user_token = ?");
    $update = $query2->execute([$onesignal, $user_cookies]);
    header('Location: bilgi_doldur.php');
    exit;
}

// Multi üyelik kontrolü - Google login için kaldırıldı

// Şifre kontrolü

if ($password != "NOPASSWORDCANIM" . $email) {
    $result = ["result" => "3"];
    echo json_encode($result); // Şifre aynı değil
    exit;
}

// İsim kontrolü
if (!preg_match("/^[a-zA-Z ÇŞĞÜÖİçşğüöı]*$/", $fullname)) {
    $result = ["result" => "6"];
    echo json_encode($result); // İsim sadece boşluktan oluşur
    exit;
}

// Profil resmi kontrolü
if ($profilePicture !== "") {
    $randResimisim = "assets/upload/go_avatar/" . md5($email . $user_id) . ".jpg";
    curl_resim_kaydet($profilePicture, $randResimisim);
} else {
    $randResimisim = "assets/img/no-avatar.png";
}

// Veritabanına kullanıcı ekleme
$mailsifre = 'finder_' . mb_strtolower($email) . mb_strtolower($password);
$user_cookies = hash('sha256', $mailsifre);
$passhash = hash('sha256', $password);

$query = $db->prepare("INSERT INTO kullanicilar SET
    user_fullname = ?,
    user_email = ?,
    user_pass = ?,
    user_picture = ?,
    user_id = ?,
    user_ip = ?,
    user_songiris = ?,
    user_kayit = ?,
    user_token = ?,
    user_onesignal = ?,
    user_agent = ?,
    user_regtype = ?,
    google_id = ?");
    
$insert = $query->execute([
    $fullname, $email, $passhash, $randResimisim, $user_id, $ip, $timestamp, $timestamp, $user_cookies, $onesignal, $userAgent, "google", $google_id
]);

if ($insert) {
    $result = ["result" => "0", "cookie" => $user_cookies];
    echo json_encode($result); // Başarılı üyelik
    setcookie("user_token", $user_cookies, time() + (365 * 24 * 60 * 60));
    header('Location: bilgi_doldur.php');
} else {
   print_r($db->errorInfo());
    
}



/*
if(isset($_GET['email']) && isset($_GET['fullname']) && isset($_GET['pp'])) {
    $email = $_GET['email'];
    $fullname = $_GET['fullname'];
    $pp = $_GET['pp'];

    echo "E-mail: " . $email . "<br>";
    echo "Fullname: " . $fullname . "<br>";

    if ($pp !== "null") {
        echo "Profile Picture URL: <img src='" . $pp . "' style='max-width:100%'><br>";
    } else {
        echo "Profile Picture URL: Null<br>";
    }
} else {
    echo "Gelen veriler eksik!";
}


*/


?>
