Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [PHP] jak zabezpieczyc get przed pusta wartoscia?, oraz znakiem niealfanumerycznym...
lnn
post
Post #1





Grupa: Zarejestrowani
Postów: 361
Pomógł: 11
Dołączył: 17.12.2008
Skąd: LU

Ostrzeżenie: (0%)
-----


czytalem na temat najczestszych bledow i zglupialem juz jak zabezpieczyc to $_GET['id'] zeby ktos nie wyslal czasem pustego jesli link powinien wygladac np link.php?id=1 a wyglada link.php?id= lub link.php ( w tych 2 przypadkach zeby przerwalo dalsza akcje)

najchetniej chcialbym zeby sprawdzilo czy to znak alfanumeryczny i czy nie jest pusty

wyczytalem ze mozna tak
  1. <?php
  2. if (empty($_GET['id']) {  
  3. // wykonaj costam }
  4. // lub
  5. if (is_int($_GET['id'])) {
  6. // wykonaj costam }
  7. ?>

jeszcze o foreach i swich oraz ereg

ktora metoda sprawdzania jest najlepsza i ktora spelni moje oczekiwania? co polecacie ?
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
Crozin
post
Post #2





Grupa: Zarejestrowani
Postów: 6 476
Pomógł: 1306
Dołączył: 6.08.2006
Skąd: Kraków

Ostrzeżenie: (0%)
-----


Skorzystaj z kodu Spawnm'a, z tym że z jedną modyfikacją. Korzystanie z is_numeric() jest bez sensu - zawsze będzie to spełnione. Raczej sprawdzaj czy wartość aby przypadkiem nie jest równa zeru. Zero będzie w kliku przypadkach:
1) Gdy podano ...?id=0 - co jednak zapewne się nie zdarzy, bo w bazie danych numerowanie rozpoczyna się od 1
2) Gdy nie podano w ogóle zmienenj id
3) Gdy nie jest ona numeryczna (np.: " 23" (spacja), "ac2" itp.)

Dodatkowo by uniknąć błędów typu E_NOTICE (w przypadku nie podania zmiennej w adresie) sprawdzaj czy w ogóle ona istnieje.
Innymi słowy:
  1. <?php
  2.  
  3. $id = isset($_GET['id']) ? (int) $_GET['id'] : 0;
  4.  
  5. if($id === 0){
  6.  //nie podano lub podano bledne
  7. }else{
  8.  //podano poprawne id
  9. }
  10. ?>
Go to the top of the page
+Quote Post

Posty w temacie


Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 17.10.2025 - 12:31