Kezdőoldal » Számítástechnika » Weblapkészítés » Minden mező kitöltése kötelező...

Minden mező kitöltése kötelező? (PHP)

Figyelt kérdés
A kérdés adott. Van 3 textfield és 3 select. Ezután van egy PHP script ami ezeknek a tartalmát adja hozzá az adatbázishoz. Hogyan lehet azt megcsinálni, hogy csak akkor adja hozzá, ha MINDEN mező ki van töltve?

2012. febr. 13. 16:42
 1/7 2xSü ***** válasza:

Pl. tegyük fel, hogy van egy „nick” nevű szövegbeviteli meződ <input name="nick" … />.


Ekkor ugye a $_POST illetve $_GET-ben is ezen a néven fog szerepelni (attól függően, hogy POST vagy GET metódussal küldöd el a formot.)


Innen már elég megvizsgálni, hogy az adott változó üres-e.


if (empty($_POST['nick'])) {

echo "Üres";

} else {

// nem üres, mehetünk tovább…

}


De ez nem biztos, hogy elég. Főleg, ha nem megbízható userektől jön az adat. Pl. mi van, ha szóközöket ír be? Névnek ez nem jó. Egy minimális ellenőrzést minimum illik beletenni.


if (empty($_POST['nick'])) {

echo "Üres";

} else {

if (trim($_POST['nick'])=='') {

echo "space és tab van csak benne…";

} else {

// nem üres, mehetünk tovább…

}

}


Persze lehet egyéb paramétereket is vizsgálni: Nem túl rövid-e, nem túl hosszú-e a megadott adat, milyen karakterekből, milyen formátumban kellene megadni. (Pl. telefonszámnál ne szöveg legyen írva, névben ne legyenek bizonyos karakterek, mint dollárjel, kukac, stb…).

2012. febr. 13. 16:50
Hasznos számodra ez a válasz?
 2/7 A kérdező kommentje:
Ezer hála, még annyit kérdezhetnék, hogy az utóbbi feltételeknek mi a kódja? A kukacos érdekelne, meg a min/max hosszúság.
2012. febr. 13. 16:56
 3/7 2xSü ***** válasza:

Ajánlom figyelmedbe a PHP kézikönyvet. Érdemes lapozgatni:

Pl. string kezelő függvények:

www.php.net/manual/en/ref.strings.php


A szöveg hosszát az strlen függvénnyel kérheted le. Innen már mennie kell. (Ha nem, akkor ne akarj még programozni, hanem előbb tanuld meg az alapokat.)


A formátum ellenőrzésre egy külön kis „nyelv” van: reguláris kifejezések. Lásd:


Egyszerűbb szűrni a megengedett karakterek szerint. Pl. ha bejelentkező névről van szó, akkor meg lehet szabni, hogy minimum 3, maximum 30 karakterből álljon, csak angol betű, szám és aláhúzás lehet benne.


if (preg_match("/^[a-z0-9_]{3,30}$/ius",$_POST['loginname'])) {

// jó

}

2012. febr. 13. 17:14
Hasznos számodra ez a válasz?
 4/7 2xSü ***** válasza:
Kimaradt egy link: [link]
2012. febr. 13. 17:16
Hasznos számodra ez a válasz?
 5/7 anonim ***** válasza:

Én inkább js-el próbálkoznék.

Akkor ugyanis megoldható,hogy a post gomb csak akkor legyen aktív,ha már eleve van értéke a mezőknek.

2012. febr. 14. 13:16
Hasznos számodra ez a válasz?
 6/7 anonim ***** válasza:
Na még annyit,hogy az alap js korlátozott képességű.De ott a jquery stb.. (én nem használtam még) Illetve ajax ,ami felületesen szólva a js és php közötti adatcserét tesz lehetővé..
2012. febr. 14. 16:07
Hasznos számodra ez a válasz?
 7/7 2xSü ***** válasza:
JS max megerősítésnek jó. Pl. ha valaki kikapcsolja a Javascriptet, akkor bukta van (és nem lekváros). Meg ha eleve saját post kérést kreál, akkor is.
2012. febr. 14. 16:22
Hasznos számodra ez a válasz?

Kapcsolódó kérdések:




Minden jog fenntartva © 2024, www.gyakorikerdesek.hu
GYIK | Szabályzat | Jogi nyilatkozat | Adatvédelem | Cookie beállítások | WebMinute Kft. | Facebook | Kapcsolat: info(kukac)gyakorikerdesek.hu

A weboldalon megjelenő anyagok nem minősülnek szerkesztői tartalomnak, előzetes ellenőrzésen nem esnek át, az üzemeltető véleményét nem tükrözik.
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!