<?php
/*
include "functions.php";
// HTML çıktı başlatma
header("Content-Type: text/html; charset=utf-8");
// Stil tanımları
echo '<!DOCTYPE html>';
echo '<html lang="en">';
echo '<head>';
echo '<meta charset="UTF-8">';
echo '<meta name="viewport" content="width=device-width, initial-scale=1.0">';
echo '<title>Sitemap</title>';
echo '<style>
body { font-family: Arial, sans-serif; margin: 20px; }
table { width: 100%; border-collapse: collapse; margin-top: 20px; }
th, td { border: 1px solid #ddd; padding: 8px; text-align: left; }
th { background-color: #f2f2f2; }
tr:nth-child(even) { background-color: #f9f9f9; }
tr:hover { background-color: #f1f1f1; }
</style>';
echo '</head>';
echo '<body>';
echo '<h1>Sitemap</h1>';
// Veritabanından dillerin alınması
$getLangs = $connect->query("SELECT * from languages where status = 1 && langCode != '" . $settings['langCode'] . "'")->fetch_all(MYSQLI_ASSOC);
$mainLang = $connect->query("SELECT * from languages where langCode = '" . $settings['langCode'] . "'")->fetch_array();
$mainSlugs = json_decode($mainLang['slugs'], true);
// Tablonun başlıklarını oluşturalım
echo '<table>';
echo '<tr>';
echo '<th>URL</th>';
echo '<th>Alternate Links</th>';
echo '</tr>';
// Anasayfa için
echo '<tr>';
echo '<td><b>' . htmlspecialchars($settings['siteUrl']) . '</b><br>';
$getMainPage = $connect->query("SELECT * FROM posts WHERE isHome = 1")->fetch_assoc();
$post = $connect->query("SELECT * FROM postsDatas WHERE postID = '" . $getMainPage['id'] . "' && langCode = '" . $settings['langCode'] . "'")->fetch_assoc();
$post = json_decode($post['datas'], true);
if (!empty($post['datas']['lastEdit'])) {
echo '<span> Last Edit: ' . htmlspecialchars($post['datas']['lastEdit']) . '</span>';
} else {
echo '<span> Last Edit: ' . htmlspecialchars($post['datas']['date']) . '</span>';
}
echo '</td>';
echo '<td>';
foreach ($getLangs as $lang) {
echo '<img src="' . htmlspecialchars($lang['flag']) . '" style="width:20px">' . ': <a href="' . htmlspecialchars($settings['siteUrl'] . '/' . $lang['langCode']) . '">' . htmlspecialchars($settings['siteUrl'] . '/' . $lang['langCode']) . '</a><br>';
}
echo '</td>';
echo '</tr>';
//Anasayfa İçin
// Blog klasör sayfaları için
$getBlogPage = $connect->query("SELECT * FROM posts WHERE isBlog = 1")->fetch_assoc();
foreach ($mainSlugs['mainSlugs'] as $key => $slug) {
$slugsNotShow = ["loginSlug", "registerSlug", "resetPasswordSlug", "maintenanceSlug", "null"];
if (!empty($slug) && !in_array($key, $slugsNotShow)) {
echo '<tr>';
$url = $settings['siteUrl'] . '/' . $slug;
echo '<td><b>' . htmlspecialchars($url) . '</b></td>';
echo '<td>';
foreach ($getLangs as $lang) {
$translatedSlug = getTranslatedURL($url, $settings['langCode'], $lang['langCode']);
echo '<img src="' . htmlspecialchars($lang['flag']) . '" style="width:20px">' . ': <a href="' . htmlspecialchars($settings['siteUrl'] . $translatedSlug) . '">' . htmlspecialchars($settings['siteUrl'] . $translatedSlug) . '</a><br>';
}
echo '</td>';
echo '</tr>';
}
}
// Blog klasör sayfaları için
// Kategory sayfaları için
$getCategories = $connect->query("SELECT * FROM categoriesDatas WHERE langCode = '" . $mainLang['langCode'] . "'")->fetch_all(MYSQLI_ASSOC);
foreach ($getCategories as $category) {
echo '<tr>';
$url = $settings['siteUrl'] . '/' . $category['slug'];
echo '<td><b>' . htmlspecialchars($url) . '</b></td>';
echo '<td>';
foreach ($getLangs as $lang) {
$translatedSlug = getTranslatedURL($url, $settings['langCode'], $lang['langCode']);
echo '<img src="' . htmlspecialchars($lang['flag']) . '" style="width:20px">' . ': <a href="' . htmlspecialchars($settings['siteUrl'] . $translatedSlug) . '">' . htmlspecialchars($settings['siteUrl'] . $translatedSlug) . '</a><br>';
}
echo '</td>';
echo '</tr>';
}
// Kategory sayfaları için
// Blog yazıları ve sayfalar için
$blogPageID = $getBlogPage['id'];
$mainPageID = $getMainPage['id'];
$mainPosts = $connect->query("SELECT * FROM postsDatas WHERE langCode = '" . $settings['langCode'] . "' && postID != $blogPageID && postID != $mainPageID")->fetch_all(MYSQLI_ASSOC);
foreach ($mainPosts as $key => $post) {
$postID = $post['postID'];
$postTranslates = $connect->query("SELECT * FROM postsDatas WHERE postID = $postID");
$post = json_decode($post['datas'], true);
if (!empty($post['seo']['slug']) && $post['seo']['slug'] !== "null") {
echo '<tr>';
echo '<td>';
$getPost = $connect->query("SELECT * FROM posts WHERE id = '$postID'")->fetch_assoc();
$url = $settings['siteUrl'] . getPostLink($getPost, $mainLang, $mainSlugs);
echo '<b>' . $url . '</b><br>';
if (!empty($post['datas']['lastEdit'])) {
echo '<span> Last Edit: ' . htmlspecialchars($post['datas']['lastEdit']) . '</span>';
} else {
echo '<span> Last Edit: ' . htmlspecialchars($post['datas']['date']) . '</span>';
}
echo '</td>';
echo '<td>';
foreach ($getLangs as $lang) {
$translatedSlug = getTranslatedURL($url, $settings['langCode'], $lang['langCode']);
echo '<img src="' . htmlspecialchars($lang['flag']) . '" style="width:20px">' . ': <a href="' . htmlspecialchars($settings['siteUrl'] . $translatedSlug) . '">' . htmlspecialchars($settings['siteUrl'] . $translatedSlug) . '</a><br>';
}
echo '</td>';
echo '</tr>';
}
}
// Login, Register ve Reset Password sayfaları için (Ekstra)
$preferences = json_decode($settings['seoSettings'], true)['sitemapPreferences'];
// Login sayfası
if ($preferences['addLoginPage']) {
echo '<tr>';
$url = $settings['siteUrl'] . '/' . $mainSlugs['mainSlugs']['loginSlug'];
echo '<td><b>' . htmlspecialchars($url) . '</b></td>';
echo '<td>';
foreach ($getLangs as $lang) {
$translatedSlug = getTranslatedURL($url, $settings['langCode'], $lang['langCode']);
echo '<img src="' . htmlspecialchars($lang['flag']) . '" style="width:20px">' . ': <a href="' . htmlspecialchars($settings['siteUrl'] . $translatedSlug) . '">' . htmlspecialchars($settings['siteUrl'] . $translatedSlug) . '</a><br>';
}
echo '</td>';
echo '</tr>';
}
// Register sayfası
if ($preferences['addRegisterPage']) {
echo '<tr>';
$url = $settings['siteUrl'] . '/' . $mainSlugs['mainSlugs']['registerSlug'];
echo '<td><b>' . htmlspecialchars($url) . '</b></td>';
echo '<td>';
foreach ($getLangs as $lang) {
$translatedSlug = getTranslatedURL($url, $settings['langCode'], $lang['langCode']);
echo '<img src="' . htmlspecialchars($lang['flag']) . '" style="width:20px">' . ': <a href="' . htmlspecialchars($settings['siteUrl'] . $translatedSlug) . '">' . htmlspecialchars($settings['siteUrl'] . $translatedSlug) . '</a><br>';
}
echo '</td>';
echo '</tr>';
}
// Reset Password sayfası
if ($preferences['addPasswordPage']) {
echo '<tr>';
$url = $settings['siteUrl'] . '/' . $mainSlugs['mainSlugs']['resetPasswordSlug'];
echo '<td><b>' . htmlspecialchars($url) . '</b></td>';
echo '<td>';
foreach ($getLangs as $lang) {
$translatedSlug = getTranslatedURL($url, $settings['langCode'], $lang['langCode']);
echo '<img src="' . htmlspecialchars($lang['flag']) . '" style="width:20px">' . ': <a href="' . htmlspecialchars($settings['siteUrl'] . $translatedSlug) . '">' . htmlspecialchars($settings['siteUrl'] . $translatedSlug) . '</a><br>';
}
echo '</td>';
echo '</tr>';
}
echo '</table>';
echo '</body>';
echo '</html>';
//echo basicSlugUniquenizer("art/acting-techniques")
// function encryptData($data, $key)
// {
// $iv = openssl_random_pseudo_bytes(openssl_cipher_iv_length('aes-256-cbc'));
// $encryptedData = openssl_encrypt($data, 'aes-256-cbc', $key, 0, $iv);
// return base64_encode($encryptedData . '::' . $iv);
// }
// function decryptData($encryptedData, $key)
// {
// list($encryptedData, $iv) = explode('::', base64_decode($encryptedData), 2);
// return openssl_decrypt($encryptedData, 'aes-256-cbc', $key, 0, $iv);
// }
// // Kullanım örneği
// $key = 'test'; // Güvenli bir anahtar
// $data = 'Bu bir test verisidir.';
// $encrypted = encryptData($data, $key);
// echo 'Şifrelenmiş veri: ' . $encrypted . PHP_EOL;
// $pass = str_split($encrypted);
// for ($i = 0; $i < count($pass); $i++) {
// echo '<br> ' . $i . '. Hanesi: ' . $pass[$i];
// if ($i % 2 === 0) {
// $eminPass .= random_bytes(1) . $pass[$i];
// } else {
// $eminPass .= $pass[$i];
// }
// }
// $decrypted = decryptData($encrypted, $key);
// echo '<br>Ekstra Şifrelenmiş veri: ' . $eminPass . PHP_EOL;
*/
?>
<?php
if ($_SERVER['REQUEST_METHOD'] === 'POST') {
// Form verilerini al
$formData = [
'ad' => htmlspecialchars($_POST['ad']),
'ikinci_ad' => htmlspecialchars($_POST['ikinci_ad'] ?? ''),
'soyad' => htmlspecialchars($_POST['soyad']),
'cinsiyet' => htmlspecialchars($_POST['cinsiyet']),
'dogum_tarihi' => htmlspecialchars($_POST['dogum_tarihi']),
'dogum_yeri' => htmlspecialchars($_POST['dogum_yeri']),
'dogdugu_ulke' => htmlspecialchars($_POST['dogdugu_ulke']),
'adres' => htmlspecialchars($_POST['adres']),
'adres_devami' => htmlspecialchars($_POST['adres_devami'] ?? ''),
'ilce' => htmlspecialchars($_POST['ilce']),
'il' => htmlspecialchars($_POST['il']),
'posta_kodu' => htmlspecialchars($_POST['posta_kodu'] ?? ''),
'ulke' => htmlspecialchars($_POST['ulke']),
'telefon' => htmlspecialchars($_POST['telefon']),
'email' => htmlspecialchars($_POST['email']),
'egitim_seviyesi' => htmlspecialchars($_POST['egitim_seviyesi']),
'medeni_durum' => htmlspecialchars($_POST['medeni_durum']),
'cocuk_sayisi' => htmlspecialchars($_POST['cocuk_sayisi']),
];
// Basvurular klasörünü kontrol et
$baseDir = __DIR__ . '/basvurular/';
if (!is_dir($baseDir)) {
mkdir($baseDir, 0777, true);
}
// Benzersiz bir başvuru klasörü oluştur
$uniqueDir = $baseDir . uniqid('basvuru_', true) . '/';
mkdir($uniqueDir, 0777, true);
// Verileri başvuru klasörüne kaydet
$infoFilePath = $uniqueDir . 'bilgiler.txt';
file_put_contents($infoFilePath, json_encode($formData, JSON_PRETTY_PRINT | JSON_UNESCAPED_UNICODE));
// Fotoğrafı kontrol et
if (isset($_FILES['photo']) && $_FILES['photo']['error'] === UPLOAD_ERR_OK) {
$fileName = basename($_FILES['photo']['name']);
$fileTmpName = $_FILES['photo']['tmp_name'];
$photoPath = $uniqueDir . $fileName;
// Dosyayı taşı
if (move_uploaded_file($fileTmpName, $photoPath)) {
echo "<p>Başvuru başarıyla kaydedildi! Dosyanız yüklendi.</p>";
} else {
echo "<p>Dosya yükleme başarısız oldu.</p>";
}
} else {
echo "<p>Fotoğraf yüklemeniz gerekiyor.</p>";
}
// Çocuk ve eş bilgileri için dinamik form işlemleri
$cocukSayisi = (int) $formData['cocuk_sayisi'];
if ($cocukSayisi > 0) {
for ($i = 1; $i <= $cocukSayisi; $i++) {
$cocukFormKey = "cocuk_$i";
$cocukData = [
'ad' => htmlspecialchars($_POST["{$cocukFormKey}_ad"]),
'ikinci_ad' => htmlspecialchars($_POST["{$cocukFormKey}_ikinci_ad"] ?? ''),
'soyad' => htmlspecialchars($_POST["{$cocukFormKey}_soyad"]),
'dogum_tarihi' => htmlspecialchars($_POST["{$cocukFormKey}_dogum_tarihi"]),
'cinsiyet' => htmlspecialchars($_POST["{$cocukFormKey}_cinsiyet"]),
'dogum_yeri' => htmlspecialchars($_POST["{$cocukFormKey}_dogum_yeri"]),
'dogdugu_ulke' => htmlspecialchars($_POST["{$cocukFormKey}_dogdugu_ulke"]),
];
$childInfoPath = $uniqueDir . "cocuk_$i.txt";
file_put_contents($childInfoPath, json_encode($cocukData, JSON_PRETTY_PRINT | JSON_UNESCAPED_UNICODE));
}
}
if ($formData['medeni_durum'] === 'Evli') {
$esData = [
'ad' => htmlspecialchars($_POST['es_ad']),
'ikinci_ad' => htmlspecialchars($_POST['es_ikinci_ad'] ?? ''),
'soyad' => htmlspecialchars($_POST['es_soyad']),
'dogum_tarihi' => htmlspecialchars($_POST['es_dogum_tarihi']),
'dogum_yeri' => htmlspecialchars($_POST['es_dogum_yeri']),
'dogdugu_ulke' => htmlspecialchars($_POST['es_dogdugu_ulke']),
'email' => htmlspecialchars($_POST['es_email']),
'egitim_seviyesi' => htmlspecialchars($_POST['es_egitim_seviyesi']),
];
// Eşin fotoğrafını kontrol et
if (isset($_FILES['es_photo']) && $_FILES['es_photo']['error'] === UPLOAD_ERR_OK) {
$fileName = basename($_FILES['es_photo']['name']);
$fileTmpName = $_FILES['es_photo']['tmp_name'];
$spousePhotoPath = $uniqueDir . $fileName;
// Dosyayı taşı
if (!move_uploaded_file($fileTmpName, $spousePhotoPath)) {
echo "<p>Eş fotoğrafı yükleme başarısız oldu.</p>";
}
} else {
echo "<p>Eşinizin fotoğrafını yüklemeniz gerekiyor.</p>";
}
$spouseInfoPath = $uniqueDir . 'es_bilgiler.txt';
file_put_contents($spouseInfoPath, json_encode($esData, JSON_PRETTY_PRINT | JSON_UNESCAPED_UNICODE));
}
} else {
?>
<!DOCTYPE html>
<html lang="tr">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Green Card Başvuru Formu</title>
<link href="https://cdn.jsdelivr.net/npm/bootstrap@5.3.0-alpha1/dist/css/bootstrap.min.css" rel="stylesheet">
</head>
<body>
<div class="container my-5">
<h1 class="text-center mb-4">Green Card Başvuru Formu</h1>
<form action="" method="post" enctype="multipart/form-data" id="greenCardFormu">
<div class="row mb-3">
<div class="col-md-6">
<label for="ad" class="form-label">Adınız*</label>
<input type="text" class="form-control" name="ad" id="ad" required>
</div>
<div class="col-md-6">
<label for="ikinci_ad" class="form-label">İkinci Adınız</label>
<input type="text" class="form-control" name="ikinci_ad" id="ikinci_ad">
</div>
</div>
<div class="row mb-3">
<div class="col-md-6">
<label for="soyad" class="form-label">Soyadınız*</label>
<input type="text" class="form-control" name="soyad" id="soyad" required>
</div>
<div class="col-md-6">
<label for="cinsiyet" class="form-label">Cinsiyet*</label>
<select class="form-select" name="cinsiyet" id="cinsiyet" required>
<option value="">Seçiniz</option>
<option value="Erkek">Erkek</option>
<option value="Kadın">Kadın</option>
</select>
</div>
</div>
<div class="row mb-3">
<div class="col-md-6">
<label for="dogum_tarihi" class="form-label">Doğum Tarihi*</label>
<input type="date" class="form-control" name="dogum_tarihi" id="dogum_tarihi" required>
</div>
<div class="col-md-6">
<label for="dogum_yeri" class="form-label">Doğum Yeri*</label>
<input type="text" class="form-control" name="dogum_yeri" id="dogum_yeri" required>
</div>
</div>
<div class="row mb-3">
<div class="col-md-6">
<label for="dogdugu_ulke" class="form-label">Doğduğunuz Ülke*</label>
<input type="text" class="form-control" name="dogdugu_ulke" id="dogdugu_ulke" required>
</div>
<div class="col-md-6">
<label for="adres" class="form-label">Adres*</label>
<input type="text" class="form-control" name="adres" id="adres" required>
</div>
</div>
<div class="row mb-3">
<div class="col-md-6">
<label for="adres_devami" class="form-label">Adres Devamı</label>
<input type="text" class="form-control" name="adres_devami" id="adres_devami">
</div>
<div class="col-md-6">
<label for="ilce" class="form-label">İlçe*</label>
<input type="text" class="form-control" name="ilce" id="ilce" required>
</div>
</div>
<div class="row mb-3">
<div class="col-md-6">
<label for="il" class="form-label">İl*</label>
<input type="text" class="form-control" name="il" id="il" required>
</div>
<div class="col-md-6">
<label for="posta_kodu" class="form-label">Posta Kodu</label>
<input type="text" class="form-control" name="posta_kodu" id="posta_kodu">
</div>
</div>
<div class="row mb-3">
<div class="col-md-6">
<label for="ulke" class="form-label">Ülke*</label>
<input type="text" class="form-control" name="ulke" id="ulke" required>
</div>
<div class="col-md-6">
<label for="telefon" class="form-label">Telefon Numaranız*</label>
<input type="text" class="form-control" name="telefon" id="telefon" required>
</div>
</div>
<div class="row mb-3">
<div class="col-md-6">
<label for="email" class="form-label">E-Posta Adresiniz*</label>
<input type="email" class="form-control" name="email" id="email" required>
</div>
<div class="col-md-6">
<label for="photo" class="form-label">Fotoğraf Yükleyiniz*</label>
<input type="file" class="form-control" name="photo" id="photo" accept="image/*" required>
</div>
</div>
<div class="row mb-3">
<div class="col-md-6">
<label for="egitim_seviyesi" class="form-label">Bitirdiğiniz Eğitim Seviyesi*</label>
<select class="form-select" name="egitim_seviyesi" id="egitim_seviyesi" required>
<option value="">Seçiniz</option>
<option value="Sadece ilkokul">Sadece ilkokul</option>
<option value="Lise Terk">Lise Terk</option>
<option value="Lise Mezunu">Lise Mezunu</option>
<option value="Meslek Yüksekokulu">Meslek Yüksekokulu</option>
<option value="Üniversite Terk">Üniversite Terk</option>
<option value="Üniversite Mezunu">Üniversite Mezunu</option>
</select>
</div>
<div class="col-md-6">
<label for="medeni_durum" class="form-label">Medeni Durum*</label>
<select class="form-select" name="medeni_durum" id="medeni_durum" required>
<option value="">Seçiniz</option>
<option value="Bekar - Hiç evlenmemiş">Bekar - Hiç evlenmemiş</option>
<option value="Evli">Evli</option>
<option value="Evli ve eşi Amerikan Vatandaşı">Evli ve eşi Amerikan Vatandaşı</option>
<option value="Boşanmış">Boşanmış</option>
<option value="Dul">Dul</option>
</select>
</div>
</div>
<div class="row mb-3">
<div class="col-md-6">
<label for="cocuk_sayisi" class="form-label">Çocuk Sayısı*</label>
<select class="form-select" name="cocuk_sayisi" id="cocuk_sayisi" required>
<option value="">Seçiniz</option>
<option value="0">Yok</option>
<option value="1">1</option>
<option value="2">2</option>
<option value="3">3</option>
<option value="4">4</option>
</select>
</div>
</div>
<div id="es_bilgileri" style="display:none;">
<h3 class="mt-4">Eş Bilgileri</h3>
<div class="row mb-3">
<div class="col-md-6">
<label for="es_ad" class="form-label">Eşimin Adı*</label>
<input type="text" class="form-control" name="es_ad" id="es_ad">
</div>
<div class="col-md-6">
<label for="es_ikinci_ad" class="form-label">Eşimin İkinci Adı</label>
<input type="text" class="form-control" name="es_ikinci_ad" id="es_ikinci_ad">
</div>
</div>
<div class="row mb-3">
<div class="col-md-6">
<label for="es_soyad" class="form-label">Eşimin Soyadı*</label>
<input type="text" class="form-control" name="es_soyad" id="es_soyad">
</div>
<div class="col-md-6">
<label for="es_dogum_tarihi" class="form-label">Eşimin Doğum Tarihi*</label>
<input type="date" class="form-control" name="es_dogum_tarihi" id="es_dogum_tarihi">
</div>
</div>
</div>
<button type="submit" class="btn btn-primary subimitButonu">Başvuruyu Kaydet</button>
</form>
</div>
<script src="https://cdn.jsdelivr.net/npm/bootstrap@5.3.0-alpha1/dist/js/bootstrap.bundle.min.js"></script>
<script>
document.getElementById('medeni_durum').addEventListener('change', function () {
const esForm = document.getElementById('es_bilgileri');
if (this.value === 'Evli') {
esForm.style.display = 'block';
} else {
esForm.style.display = 'none';
}
});
cocukSayisiInput = document.getElementById("cocuk_sayisi");
cocukSayisiInput.addEventListener("change", function () {
cocukSayisi = cocukSayisiInput.value;
if (cocukSayisi > 0) {
if (document.getElementById("cocuklarListesi") === null) {
cocuklarContainer = document.createElement("div");
cocuklarContainer.id = "cocuklarListesi";
}
document.getElementById("greenCardFormu").querySelector(".subimitButonu").before(cocuklarContainer);
sablon = ``;
for (let index = 0; index < cocukSayisi; index++) {
cocukNo = index + 1;
sablon += `
<div id="${cocukNo}-cocuk" class="cocukBilgisi">
<h3 class="mt-4">Çocuk Bilgileri</h3>
<div class="row mb-3">
<div class="col-md-6">
<label for="es_ad" class="form-label">${cocukNo}. Çocuğumun Adı*</label>
<input type="text" class="form-control" name="es_ad" id="es_ad">
</div>
<div class="col-md-6">
<label for="es_ikinci_ad" class="form-label">${cocukNo}. Çocuğumun İkinci Adı</label>
<input type="text" class="form-control" name="es_ikinci_ad" id="es_ikinci_ad">
</div>
</div>
<div class="row mb-3">
<div class="col-md-6">
<label for="es_soyad" class="form-label">${cocukNo}. Çocuğumun Soyadı*</label>
<input type="text" class="form-control" name="es_soyad" id="es_soyad">
</div>
<div class="col-md-6">
<label for="es_dogum_tarihi" class="form-label">${cocukNo}. Çocuğumun Doğum Tarihi*</label>
<input type="date" class="form-control" name="es_dogum_tarihi" id="es_dogum_tarihi">
</div>
</div>
</div>
`;
}
document.getElementById("cocuklarListesi").innerHTML = sablon;
}
})
</script>
</body>
</html>
<?php
}
?>