kaf
wmaraci reklam

Boş ya da boşluk inputlara karşı önlem nasıl alınır?

2 Mesajlar 237 Okunma
Toplam 2 mesaj ve 237 görüntüleme
acebozum
wmaraci reklam

lynxieran lynxieran WM Aracı Kullanıcı
  • Üyelik 08.04.2025
  • Yaş/Cinsiyet 28 / E
  • Meslek Freelancer
  • Konum Antalya
  • Ad Soyad G** Y**
  • Mesajlar 1
  • Beğeniler 0 / 0
  • Ticaret 0, (%0)

Herkese merhaba,

Öncelikle sorunumu hangi dil ile çözebileceğimi bilmediğim için özel bir başlık yerine burayı seçtim umarım yanlış  yapmamışımdır.

Amatör olarak yazdığım bir projem var. Burada üye kayıtları, profil bilgilerini güncelleme, ileti gönderme gibi fonksiyonlar yazdım. Bu kodlar ile MySQL tabloma data ekletebiliyorum ancak şöyle bir sorunum var: input kısmına boşluk tuşuna basarak bu değeri girersem onu kaydediyor. 

Denediğim yöntemler:

HTML: <requiered> TAG : Bu tag'i kullanmak boş alanı kaydetmeye izin vermese de, kullanıcı boşluk tuşuna basıp bir girdi oluşturabiliyor.
PHP: if(empty($_POST['formelemanınınismi'])) şeklinde bir önlem almaya çalıştım ancak yine de boşluğa basıldıktan sonra bu alanı dolu olarak kabul edip değeri kaydediyor. 

JS konusunda hiçbir bilgim yok ancak sanırım istediğim çözüm bu dille olacak. Bu konu hakkında önerileriniz varsa seve seve öğrenmeyi deneyebilirim.

Özetle, en az 2 karakterden oluşacak -ancak boşluk hariç- girdileri kabul etmek istiyorum.

Şimdiden teşekkür ederim.

 

 

wmaraci reklam
reklam

guvencoskun guvencoskun WM Aracı Kullanıcı
  • Üyelik 23.04.2025
  • Yaş/Cinsiyet 36 / E
  • Meslek Web Tasarım
  • Konum Aydın
  • Ad Soyad G** C**
  • Mesajlar 1
  • Beğeniler 0 / 0
  • Ticaret 0, (%0)

@lynxieran 

function stemizle($data) {
		$data = trim($data); //boşlukları kaldır
		$data = stripslashes($data); //ters slash \ kaldırır
		$data = htmlspecialchars($data, ENT_QUOTES, 'UTF-8'); //html özel karakterlerini kaldırır
	return $data;
}

$veri = stemizle($_POST['formelemanınınismi']);
if(!veri){          // "!" boş değilse anlamı taşır
//kodlar
}

geliştirilebilir. 

yada senin kod karmaşası istemiyorsan 

trim($_POST['formelemanınınismi'])

şeklinde ama değişkenlere atayıp fonksiyon kullanman tekrara düşmenden daha güzel. yukardaki fonksiyonu binlerce kez kullanabilirsin..

javascript ile 

$("input#UserName").on({
  keydown: function(e) {
    if (e.which === 32)
      return false;
  },
  change: function() {
    this.value = this.value.replace(/\s/g, "");
  }
});

Mesaj 3 defa düzenlendi. Son düzenleyen: guvencoskun (24.04.2025 15:37)

 

 

wmaraci
wmaraci
Konuyu toplam 4 kişi okuyor. (0 kullanıcı ve 4 misafir)
Site Ayarları
  • Tema Seçeneği
  • Site Sesleri
  • Bildirimler
  • Özel Mesaj Al