sadece bir boşluk içeriyorsa, nasıl ben teslim edilmesi için bir form önleyebilir? Örneğin, bir kullanıcı bir alanda boşluk presler, uzay yüzden formları gönderen bir karakter olarak kabul edilecektir. nasıl ben bu php önleyebilir?
trim() ve sadece bir boşluk olan bir dize geçtiyseniz empty() true dönecektir kombinasyonu.
$a = ' ';
$a = trim($a);
if (empty($a)) print 'Empty!'; // Empty!
Sidenote: Normal şartlar altında, her zaman kesmek için iyi bir fikirdir () kullanıcı girişi bulunuyor.
Doğrulayıcı bir işlevi yangın onSubmit olayı kullanın:
<form onSubmit="validate()">
<input type="text" id="myInput" />
<input type="submit" value="submit" />
</form>
<script type="text/javascript">
function validate() {
myInput = document.getElementById('myInput');
if (myInput.value.match(/^s+$/) || myInput.value == '') {
alert('No Empty Values!');
return false;
}
}
</script>
trim()
a> kullanın ve sonra boş değerlere karşı test edin.
Mike B iyi bir noktaya sunuyor. Aslında Javascript ile teslim olmaktan formu engelleyebilir. Eğer PHP güveniyor, formu teslim edilecek, ancak bir hata mesajı ile kullanıcıya aynı form mevcut olabilir.
HTML:
<form onsubmit="return validate(this);">
Javascript:
function validate(form) {
ok = true;
for (var i = 0, il = form.elements.length; i < il; ++i) {
form.elements[i].value = form.elements[i].value
.replace(/^\s\s*/, '')
.replace(/\s\s*$/, '');
ok &= !!form.elements[i].value;
}
if (!ok) alert("Oh hey - type something in these boxes, k?");
return ok;
}
PHP:
$myVar = trim($_POST['myFormVariable']);
if (!$myVar) {
echo "Oh hey, you should type something.";
} else {
doStuff();
}
Lütfen formları daha karmaşık bir kez olsun jQuery kapsamlı form doğrulama sağlar validate adlandırılan bu için harika bir eklenti vardır.
+1 Sadece kendi formunu oluşturma ve sayfaya göndererek bir kullanıcıyı durdurma şey yok gibi B. zaman php yine aynı girişini doğrulamak Planı.