Bir form oluşturmaya çalışıyorum aslında oluşturdum da istediğim özelliği chatgpt ye verdim kod üzerinde derleme yapması için fakat sonuç gerçekten hüsran... Veritabanı olmadan tüm girdiler için Başvurular klasörü adı altında benzersiz klasör oluşturup verileri .txt içine atıyor ve fotoğraflarıda dosya ismi olarak upluyor. Buraya kadar her şey tamam fakat çocuk sayısı 1, 2, 3 veya 4 seçildiğinde ek form alanı
(Kaç adet seçilmişse aynı form alanı seçilen adet kadar çıkacak.) belirleyemiyorum. Medeni durum "Evli" seçtiğimde istediğim alanı getiriyorum ama çocuk sayısında bunu beceremedim.
<?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>
</head>
<body>
<h1>Green Card Başvuru Formu</h1>
<form action="" method="post" enctype="multipart/form-data">
<label for="ad">Adınız*:</label><br>
<input type="text" name="ad" id="ad" required><br><br>
<label for="ikinci_ad">İkinci Adınız:</label><br>
<input type="text" name="ikinci_ad" id="ikinci_ad"><br><br>
<label for="soyad">Soyadınız*:</label><br>
<input type="text" name="soyad" id="soyad" required><br><br>
<label for="cinsiyet">Cinsiyet*:</label><br>
<select name="cinsiyet" id="cinsiyet" required>
<option value="">Seçiniz</option>
<option value="Erkek">Erkek</option>
<option value="Kadın">Kadın</option>
</select><br><br>
<label for="dogum_tarihi">Doğum Tarihi*:</label><br>
<input type="date" name="dogum_tarihi" id="dogum_tarihi" required><br><br>
<label for="dogum_yeri">Doğum Yeri*:</label><br>
<input type="text" name="dogum_yeri" id="dogum_yeri" required><br><br>
<label for="dogdugu_ulke">Doğduğunuz Ülke*:</label><br>
<input type="text" name="dogdugu_ulke" id="dogdugu_ulke" required><br><br>
<label for="adres">Adres*:</label><br>
<input type="text" name="adres" id="adres" required><br><br>
<label for="adres_devami">Adres Devamı:</label><br>
<input type="text" name="adres_devami" id="adres_devami"><br><br>
<label for="ilce">İlçe*:</label><br>
<input type="text" name="ilce" id="ilce" required><br><br>
<label for="il">İl*:</label><br>
<input type="text" name="il" id="il" required><br><br>
<label for="posta_kodu">Posta Kodu:</label><br>
<input type="text" name="posta_kodu" id="posta_kodu"><br><br>
<label for="ulke">Ülke*:</label><br>
<input type="text" name="ulke" id="ulke" required><br><br>
<label for="telefon">Telefon Numaranız*:</label><br>
<input type="text" name="telefon" id="telefon" required><br><br>
<label for="email">E-Posta Adresiniz*:</label><br>
<input type="email" name="email" id="email" required><br><br>
<label for="photo">Fotoğraf Yükleyiniz*:</label><br>
<input type="file" name="photo" id="photo" accept="image/*" required><br><br>
<label for="egitim_seviyesi">Bitirdiğiniz Eğitim Seviyesi*:</label><br>
<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><br><br>
<label for="medeni_durum">Medeni Durum*:</label><br>
<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><br><br>
<label for="cocuk_sayisi">Çocuk Sayısı*:</label><br>
<select name="cocuk_sayisi" id="cocuk_sayisi" required>
<option value="">Seçiniz</option>
<option value="Yok">Yok</option>
<option value="1">1</option>
<option value="2">2</option>
<option value="3">3</option>
<option value="4">4</option>
</select><br><br>
<!-- Eş Bilgileri Formu -->
<div id="es_bilgileri" style="display:none;">
<h3>Eş Bilgileri</h3>
<label for="es_ad">Eşimin Adı*:</label><br>
<input type="text" name="es_ad" id="es_ad"><br><br>
<label for="es_ikinci_ad">Eşimin İkinci Adı:</label><br>
<input type="text" name="es_ikinci_ad" id="es_ikinci_ad"><br><br>
<label for="es_soyad">Eşimin Soyadı*:</label><br>
<input type="text" name="es_soyad" id="es_soyad"><br><br>
<label for="es_dogum_tarihi">Eşimin Doğum Tarihi*:</label><br>
<input type="date" name="es_dogum_tarihi" id="es_dogum_tarihi"><br><br>
<label for="es_dogum_yeri">Eşimin Doğum Yeri*:</label><br>
<input type="text" name="es_dogum_yeri" id="es_dogum_yeri"><br><br>
<label for="es_dogdugu_ulke">Eşimin Doğduğu Ülke*:</label><br>
<input type="text" name="es_dogdugu_ulke" id="es_dogdugu_ulke"><br><br>
<label for="es_email">Eşimin E-Posta Adresi*:</label><br>
<input type="email" name="es_email" id="es_email"><br><br>
<label for="es_photo">Eşimin Fotoğrafı*:</label><br>
<input type="file" name="es_photo" id="es_photo" accept="image/*" required><br><br>
<label for="es_egitim_seviyesi">Eşimin Eğitim Seviyesi*:</label><br>
<select name="es_egitim_seviyesi" id="es_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><br><br>
</div>
<button type="submit">Başvuruyu Kaydet</button>
</form>
<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';
}
});
</script>
</body>
</html>
<?php
}
?>