Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Weryfikacja danych przed wprowadzeniem ich do bazy
Forum PHP.pl > Forum > Przedszkole
Luxe
Piszę skrypt, który dodaje newsy do bazy danych - pola, które podlegają weryfikacji to: temat, tresc, zdjecie, autor. Zanim wartosci tych pol wprowadzi sie do bazy danych nalezy je wczesniej przefiltrowac aby uniknac nieporozumien.

Mam taka instrukcje:
  1. <?php
  2.  
  3. if (strlen($_POST['temat']) < 1 )
  4. {
  5. echo 'Prosze wcisnac wstecz i wpisac temat';
  6. }
  7. elseif (strlen($_POST['tresc']) < 1)
  8. {
  9. echo 'Prosze wcisnac wstecz i wpisac tresc';
  10. }
  11. elseif (strlen($_POST['autor']) < 1)
  12. {
  13. echo 'Prosze wcisnac wstecz i wpisac autora';
  14. }
  15. else
  16. {
  17. /* dodawanie wpisu */
  18. }
  19.  
  20. ?>


Zdaje sobie sprawe ze instrukcja ta jest malo efektywna i sprawdza tylko czy pola zostaly wypelnione... trzeba jeszcze wprowadzic sprawdzanie nieprawidlowych znakow (&,*,%, spacja, polskie znaki itd), maksymalna ilosc znakow dla autora (20), a takze zabezpieczenie sie przed HTML'em. Pytanie moje takie: jak ma wyglądać taka instrukcja, żeby spełniała powyższe założenia i skrypt był bezpieczny?
dodek
  1. <?
  2. else
  3. {
  4. //czyszczenie wpisanych danych
  5. $_POST['temat'] = addslashes(strip_tags($_POST['temat']));
  6. $_POST['tresc'] = addslashes(strip_tags($_POST['autor']));
  7. $_POST['tresc'] = addslashes(strip_tags($_POST['tresc']));
  8. /* dodawanie wpisu */
  9. }
  10. ?>

Pamiętaj, aby przy pobieraniu danych z bazy użyć na nich stripslashes().
Poza tym polecam lekturę:
strip_tags" title="Zobacz w manualu php" target="_manual
htmlspecialchars" title="Zobacz w manualu php" target="_manual
htmlentities" title="Zobacz w manualu php" target="_manual
addslashes" title="Zobacz w manualu php" target="_manual
stripslashes" title="Zobacz w manualu php" target="_manual
SongoQ
Mozesz tez zastosowac weryfikacje w bazie danych np korzystajac z funkcji i sprawdzac czy dane sa prawidlowe. Najlepiej stosowac podwojna walidacje danych.
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.