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);
}
}
?>



