Publikováno v sekci PHP v Pondělí 24.4.2006 - 09:53
Poslední dobou když navštěvuji weblogy, vlastní fóra a různé návštěvní knihy, neubráním se menšímu záškodnictví. Téměř každý programátor, který překlenul onu začátečnickou čáru sesnaží se nějakým způsobem zabranit špatnému vstupu z formulářových polí.Když pominu funkce addslashes (přidá zpětná lomítka pokud někdo vloží uvozovky - velmi dobré když zapisujeme data do databáze), htmlspecialchars (převede potencionálně nebezpečné html tagy na entity a tím zabrání vykonání se onoho tagu), tak spousta uživatelů ověřuje zapis prázdných polí nějak takto:
<?php $text_prispevku = $_POST['text_prispevku']; if (strlen($text_prispevku) == 0) echo "Nezadali jste nic, napravte to!"; ?>
Jenze to není úplně dobře!. Pokud vložíte kurzor do inputového pole a místo příspěvku uděláte mezerníkem 1 či více mezer, tak předchozí skript je úplně k ničemu. I prázdná mezera je brána jako plnohodnotný string!
Proto náš kód upravíme takto:
<?php $text_prispevku = $_POST['text_prispevku']; if (strlen(trim($text_prispevku)) == 0) echo "Nezadali jste nic, napravte to!"; ?>
A nyní jsme již chráněni proti vložení prázdného příspěvku.