LINUXSOFT.cz
Nazwa użytkownika: Hasło:     
    CZ UK PL

> Komentarze :: článek PHP (25) - Formuláře - nikomu nevěřte

Varovani 16.7.2004 15:33
Michal Čihař

<?echo $_POST["email"]?> muze skoncit s varovanim, ze to neni definovano (pri vhodnem nastaveni php.ini), pri privnim vstupu na formular <?echo if (isset($_POST["email"])) $_POST["email"]?> je lepsi....

Re: Varovani 17.7.2004 19:41
Petr Zajíc

Pravda. Je vidět, že jsem byl zase příliš stručný na úkor přesnosti. Pokud je error_reporting nastaveno na WARNING, může se to stát. I když na produkčních serverech se warnings nechávají většinou vypnuté, přesto je lepší na to nespoléhat a psát neprůstřelně.

Taky neco dodam :-) 17.7.2004 17:09
mysql_php

Doufam co napisu se hodi k danemu tematu :-).. Je velkou pravdou ze nekteri lide jsou tak trosku skodlolibi a hledaji ruzne chyby ktery programator udelal. Uz jsem se setkal s formularema ktere nebyli vubec osetreny od chyb a kdyz jo tak jen JavaScriptem ten je sice nekdy dobrej ale jako overovani neboli hlidani jestli uzivatel vyplnil co ma neni vhodny.. Ted k veci.. Overovani validity dat vyzaduje uzitipodminenych prikazu a mnoha dalsich funkci,operatoru a vyrazu. Jednou z casto pouzivanych funkci je isset(); ktera overuje, zda promena obsahuje hodnotu (vcetne nuly, avsak nikoli hodnotu NULL nebo FALSE). napr.

if (Isset($promena)) {
// $promena obsahuje hodnotu
} else {
// $promena neobsahuje hodnotu
}

Funkce isser(); ma jeden nedostatek a to u prazdneho retezce vraci hodntu TRUE. Takze jestli chceme testovat textove hodnoty tak radeji pouzit funkce strlen(); ktera urci pocet znaku v zadanem retezci. napr...

if (strlen($promena) > 0) {
// $promena obsahuje hodnotu
} else {
// $promena neobsahuje hodnotu
}

Kdyby byl nekdo jinaciho nazoru tak to sem pisnete rad si doplnim nedostatky..

Re: Taky neco dodam :-) 17.7.2004 19:47
Petr Zajíc

Já myslím, že to k tématu je určitě ;-)

Samozřejmě, že často nestačí ověřit, zda bylo "něco" zadáno, ale musí se ověřit, zda to "mohlo" být číslo, telefon, IČO, DIČ, e-mail a podobně. Pro "neprůstřelný" formulář bude pochopitelně nutné vynaložit značné úsilí a často se bude při ověřování používat více než jedno "pravidlo hry". Většinou se použije jedna či více funkcí pro práci s řetězci anebo regulárními výrazy.

Re: Taky neco dodam :-) 13.7.2010 13:21
Tomáš Kováčik
"Funkce isser(); ma jeden nedostatek a to u prazdneho retezce vraci hodntu TRUE"
toto je nedostatok? funkcia isset() sluzi na overenie, ci je premenna definovana.. ak mas definovanu prazdnu premennu a chces zistit, ci je uz definovana, samozrejme, ze vrati TRUE.. ak chces zistit, ci je prazdna alebo nie je prazdna, pouzi:
if (isset($premenna) && $premenna)) { ... }
Naco zbytocne pouzivat funkciu strlen? Ta sluzi na uplne ine veci, napriklad skratenie textu, ak je dlhsi nez x znakov...
Display error 20.2.2008 21:54
Dan Pelíšek
Dobrý den potom, co jsem zapnul v php.ini zobrazování chyb (display_errors on) mi v příkladu "profi přístup" (a i v ostatních případech) hned po spuštění skriptu vepíše do kolonky text "<br/> <b>Notice</b>: Undefined index: email in <b>C:\php</b> on line <b>27</b><br/>". Myslím že je to proto, že při prvním zpuštění není známá proměná $_POST["email"]. Napadlo mě řešení před vepsáním $_POST["email"] zkontrolovat, zdali není prázdná, ale zdá se mi příliš dlouhé. Nedalo by se to řešit nějak jinak? například nastavením v php.ini nebo v nějakém conf souboru apache?
Re: Display error 20.2.2008 21:56
Dan Pelíšek

Až teď sem si všiml že toto se tu už rešilo, takže se omouvám za špinění diskuze a příště si jí rači předem lépe přečtu.

Dotaz na POST 12.6.2009 19:19
Jan Nepovim

Dobry den,

jak bylo v článku popsání je možno zpětně vyplňovat pole po nuúspěšném ověřování aby je uživatel mohl opravit, ale je to ukázáno jen v ránci jednoho soouboru. Zajímám mě tedy jestli, popř. jak by se ono zpětné vyplněný zadaných údajů řešilo poked byse pracovalo se dvěma soubory? (např. formilar.php a zpracuj.php)

ereg() 26.6.2010 14:25
Oleg Matskiv

Četl jsem že funkce ereg() byla v nove verzi PHP odstraněna. Na internetu jsem našel novou funkci preg-match ale nevim jak ji korektně použit. Poradi mi někdo ? Popř. bylo by dobre kdyby autor upravil kód v článku.

Re: ereg() 25.1.2013 13:55
Jan joukercz Stejskal
Funguje úplně stejně jako ereg, jen s tím rozdílem, že se musí umístit jakékoliv 2 stejné znaky na začátek a na konec v mém příkladu jsou to křížky. Jinak je to naprosto to samé

preg_match("#^[0-9]+$#")

KOMENTARZE
Varovani 16.7.2004 15:33 Michal Čihař
L Re: Varovani 17.7.2004 19:41 Petr Zajíc
Taky neco dodam :-) 17.7.2004 17:09 mysql_php
|- Re: Taky neco dodam :-) 17.7.2004 19:47 Petr Zajíc
L Re: Taky neco dodam :-) 13.7.2010 13:21 Tomáš Kováčik
Display error 20.2.2008 21:54 Dan Pelíšek
L Re: Display error 20.2.2008 21:56 Dan Pelíšek
Dotaz na POST 12.6.2009 19:19 Jan Nepovim
ereg() 26.6.2010 14:25 Oleg Matskiv
  L Re: ereg() 25.1.2013 13:55 Jan joukercz Stejskal
Tylko zarejestrowani użytkownicy mogą dopisywać komentarze.
> Szukanie oprogramowania
1. Pacman linux
Download: 4709x
2. FreeBSD
Download: 8881x
3. PCLinuxOS-2010
Download: 8386x
4. alcolix
Download: 10651x
5. Onebase Linux
Download: 9455x
6. Novell Linux Desktop
Download: 0x
7. KateOS
Download: 5950x

1. xinetd
Download: 2236x
2. RDGS
Download: 937x
3. spkg
Download: 4334x
4. LinPacker
Download: 9595x
5. VFU File Manager
Download: 3024x
6. LeftHand Mała Księgowość
Download: 6842x
7. MISU pyFotoResize
Download: 2598x
8. Lefthand CRM
Download: 3395x
9. MetadataExtractor
Download: 0x
10. RCP100
Download: 2867x
11. Predaj softveru
Download: 0x
12. MSH Free Autoresponder
Download: 0x
©Pavel Kysilka - 2003-2024 | mailatlinuxsoft.cz | Design: www.megadesign.cz