Űrlap ellenőrzés, nulla karakter jelentése
Üdv!
Egy beviteli mezőn három dolgot vizsgálok meg szerver oldalon:
1.van-e benne valami
2.karakterek típusai
3.karakterlánc hossza a maximumhoz képest
A kérdéses mezőben csak a magyar abc betűi és szóköz lehet. Így ellenőrzöm:Jól működik a kód, de ha nullát (0) írok a mezőbe, akkor nem tér vissza hibaüzenetettel. "00"-ra már Hiba2-t kapok. Hogy tudnám lekezelni a "0" karaktert??
//Castor
■ Egy beviteli mezőn három dolgot vizsgálok meg szerver oldalon:
1.van-e benne valami
2.karakterek típusai
3.karakterlánc hossza a maximumhoz képest
A kérdéses mezőben csak a magyar abc betűi és szóköz lehet. Így ellenőrzöm:
if($name=='')
{
echo "Hiba1";
}
if($name == (!eregi('^[a-zA-Z öÖüÜóÓőŐúÚéÉáÁűŰíÍ]+$',$name)))
{
echo "Hiba2";
}
if(strlen($name)>'50')
{
echo "Hiba3";
}
//Castor
Trim és típuskonverzió (ha jól tippelek) ...
Egyébként sztem vedd bele a hossz ellenőrzést a regex-be ...
vedd bele, ha gondolod
Kivéve, ha külön hibaüzenetet akarsz adni persze...
természetesen külön hibaüzi
részben jó
csere
nemcsere
isset()
Egyrészt az empty() mindkettőre TRUE értéket ad ("", meg "0"/0 értékű). Jelen esetben nem értem miért kéne egy sztringet kicserélned ("0" -> "") str_replace() hívással, amit utána majd ellenőrzöl? Tudod milyen karakterláncot vársz ("0"), amire is hibát akarsz adni. Erre szerintem nem kell semmi beépített dolog.
=== operátor
ha jól emlékszem akkor
"" == 0 -> true
"" === 0 -> false
lehet h hülyeség de egy próbát megér
nemjó
félmegoldás született
"0" bevitelre mindíg úgy értelmezi, hogy üres, azaz semmi nincs a változóban. (szerintem)
Az empty() függvényt használva a "0" bevitelre kidobja a hiba1 üzenetet. Ugye mivel a 0 egy szám, így szebb lenne ha hiba2-t kapnánk, de a célnak ez is megfelel.
Esetleg
eregi() - Case insensitive
2. Nem kell trükközni semilyen konvertálással, ha nem negálnád az eregi()-t
ékezetes betűk locale függőek
Üdv,
Felhő
eregi az security hole
Udv,
Felho
helyette?
preg_* függvények