Ošetření vstupů Form

Upozornění: Tohle vlákno je hodně staré a informace nemusí být platné pro současné Nette.
tigercz
Člen | 14
+
0
-

Ahoj, když mám:

$form->addText('name','Jméno:',20)
     ->addRule(Form::FILLED, 'Vyplňte svoje jméno!')
     ->addRule(Form::MIN_LENGTH, 'Jméno je příliš krátké, musí být minimálně %d znaky!', 3);

jak ošetřit, aby když se vloží do políčka <script>ahoj(‚x‘);</script> tak, aby nevyskočila hláška x s výpisem SQL dotazu? :-)
Když před $form->isSubmitted() dám $name=addslashes($name) tak se uloží prázdné jméno, i když je nastaveno Rule ve Formu. Chtěl bych, aby to vyhodilo chybu, že pole Jméno je prázdné, ideálně, aby to pole Jméno smazalo.

Děkuji

Aurielle
Člen | 1281
+
0
-

Pokud hodnoty z formuláře proháníš přes dibi a Nette šablony, tak se o toto vůbec nemusíš starat, dibi je proti SQL injection imunní a v šablonách se kód neprovede.

tigercz
Člen | 14
+
0
-

A když používám Form samostatně? Teď mi to funguje tak, že buď se uloží pole Jméno prázdné (při addslashes), nebo vyskočí JS okno s textem „x“.

Editoval tigercz (19. 1. 2010 17:48)

Ondřej Mirtes
Člen | 1536
+
0
-

Všechny výstupy měj ošetřené funkcí htmlspecialchars().

A vstupy do databáze funkcí mysql_real_escape_string() (není třeba, pokud používáš dibi).

tigercz
Člen | 14
+
0
-

Děkuji, tohle přesně jsem hledal :-)