Hoşgeldin Misafir

Kod Php'de form doğrulama boş form vb gelmemesi için ufak örnekler

coderby

Germany
15 Ara 2021
2,097 Mesaj
TIM Görevleri
1

Aktiflik

Seviye

Deneyim

TIM / GÖREV:
Kod:
<?php
// temel form doğrulama sınıfı
class turkhacks {
    private $hatalar = [];
    
    // boş alan kontrolü
    public function bosDegil($deger, $alan_adi) {
        if (empty(trim($deger))) {
            $this->hatalar[] = $alan_adi . " alanı boş olamaz";
            return false;
        }
        return true;
    }
    
    // email doğrulama
    public function emailKontrol($email) {
        if (!filter_var($email, FILTER_VALIDATE_EMAIL)) {
            $this->hatalar[] = "geçersiz email formatı";
            return false;
        }
        return true;
    }
    
    // minimum uzunluk kontrolü
    public function minUzunluk($deger, $min, $alan_adi) {
        if (strlen(trim($deger)) < $min) {
            $this->hatalar[] = $alan_adi . " en az " . $min . " karakter olmalı";
            return false;
        }
        return true;
    }
    
    // hataları getir
    public function hatalariGetir() {
        return $this->hatalar;
    }
    
    // hata var mı kontrolü
    public function hataVarMi() {
        return !empty($this->hatalar);
    }
    
    // hataları temizle
    public function hatalarıTemizle() {
        $this->hatalar = [];
    }
}

// form işleme örneği
if ($_POST) {
    $dogrula = new turkhacks();
    
    // form verilerini al
    $ad = $_POST['ad'] ?? '';
    $email = $_POST['email'] ?? '';
    $sifre = $_POST['sifre'] ?? '';
    $mesaj = $_POST['mesaj'] ?? '';
    
    // doğrulama işlemleri
    $dogrula->bosDegil($ad, "ad");
    $dogrula->bosDegil($email, "email");
    $dogrula->bosDegil($sifre, "şifre");
    $dogrula->bosDegil($mesaj, "mesaj");
    
    // email formatı kontrol
    if (!empty($email)) {
        $dogrula->emailKontrol($email);
    }
    
    // şifre uzunluk kontrol
    if (!empty($sifre)) {
        $dogrula->minUzunluk($sifre, 6, "şifre");
    }
    
    // eğer hata yoksa işlemi tamamla
    if (!$dogrula->hataVarMi()) {
        echo "<div style='color: green;'>form başarıyla gönderildi!</div>";
        // burada veritabanına kaydetme işlemi yapılabilir
    } else {
        // hataları göster
        echo "<div style='color: red;'>";
        foreach ($dogrula->hatalariGetir() as $hata) {
            echo "• " . $hata . "<br>";
        }
        echo "</div>";
    }
}
?>

<!DOCTYPE html>
<html>
<head>
    <title>form doğrulama örneği</title>
    <meta charset="utf-8">
</head>
<body>
    <h2>iletişim formu</h2>
    
    <form method="POST" action="">
        <div>
            <label>ad:</label><br>
            <input type="text" name="ad" value="<?php echo htmlspecialchars($_POST['ad'] ?? ''); ?>">
        </div><br>
        
        <div>
            <label>email:</label><br>
            <input type="email" name="email" value="<?php echo htmlspecialchars($_POST['email'] ?? ''); ?>">
        </div><br>
        
        <div>
            <label>şifre:</label><br>
            <input type="password" name="sifre">
        </div><br>
        
        <div>
            <label>mesaj:</label><br>
            <textarea name="mesaj" rows="4" cols="50"><?php echo htmlspecialchars($_POST['mesaj'] ?? ''); ?></textarea>
        </div><br>
        
        <button type="submit">gönder</button>
    </form>
</body>
</html>

<?php
// daha basit tek fonksiyonlu örnek
class turkhacks_basit {
    // tüm alanları kontrol et
    public static function formKontrol($veriler, $gerekli_alanlar) {
        $hatalar = [];
        
        foreach ($gerekli_alanlar as $alan) {
            if (empty(trim($veriler[$alan] ?? ''))) {
                $hatalar[] = $alan . " alanı doldurulmalı";
            }
        }
        
        return $hatalar;
    }
}

// basit kullanım örneği
if ($_POST) {
    $gerekli = ['ad', 'email', 'telefon'];
    $form_hatalari = turkhacks_basit::formKontrol($_POST, $gerekli);
    
    if (empty($form_hatalari)) {
        echo "tüm alanlar dolu, işlem başarılı!";
    } else {
        echo "hatalar: " . implode(", ", $form_hatalari);
    }
}
?>

<?php
// ajax ile form kontrolü için json response örneği
class turkhacks_ajax {
    public static function jsonResponse($durum, $mesaj, $veriler = []) {
        header('Content-Type: application/json');
        echo json_encode([
            'durum' => $durum,
            'mesaj' => $mesaj,
            'veriler' => $veriler
        ]);
        exit;
    }
    
    public static function formDogrula($post_veriler) {
        $hatalar = [];
        
        // boş kontroller
        if (empty(trim($post_veriler['kullanici_adi'] ?? ''))) {
            $hatalar[] = 'kullanıcı adı gerekli';
        }
        
        if (empty(trim($post_veriler['email'] ?? ''))) {
            $hatalar[] = 'email gerekli';
        }
        
        // email format kontrol
        if (!empty($post_veriler['email']) && !filter_var($post_veriler['email'], FILTER_VALIDATE_EMAIL)) {
            $hatalar[] = 'geçersiz email formatı';
        }
        
        return $hatalar;
    }
}

// ajax isteği gelirse
if (isset($_POST['ajax']) && $_POST['ajax'] == '1') {
    $hatalar = turkhacks_ajax::formDogrula($_POST);
    
    if (empty($hatalar)) {
        turkhacks_ajax::jsonResponse('basarili', 'form doğrulandı');
    } else {
        turkhacks_ajax::jsonResponse('hata', 'form hatası', $hatalar);
    }
}
?>
 

THS-AI

THS-AI

THS YAPAY ZEKA
Turkhacks Kurumsal
20 Haz 2025
11,255 Mesaj

Aktiflik

Seviye

Deneyim

TIM / GÖREV:
Formda boş alanların kontrolü için şu örneği kullanabilirsin:

```php
if ($_SERVER['REQUEST_METHOD'] == 'POST') {
$errors = [];
if (empty(trim($_POST['name']))) {
$errors[] = 'İsim boş bırakılmamalı.';
}
if (empty(trim($_POST['email']))) {
$errors[] = 'E-posta boş bırakılmamalı.';
}
if (empty($errors)) {
// İşlemleri yap
} else {
foreach ($errors as $error) {
echo "<p>$error</p>";
}
}
}
```

Bu kod, form gönderildiğinde boş alanları kontrol eder ve uyarı verir. Ayrıca, formun boş gelmemesi için, formu göndermeden önce JavaScript ile de ön kontrol yapabilirsin.