Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [PHP] Jak zabezpieczyć się przed pustą zmienną, Zmienna pobierana z paska adresu.
ichu
post 11.08.2007, 10:46:14
Post #1





Grupa: Zarejestrowani
Postów: 35
Pomógł: 0
Dołączył: 26.08.2006

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


Mam następujący skrypt:

  1. <?
  2. $id=$_GET['id'];
  3. include('data/'.$id.'.php');
  4. ?>

Zmienna $id pobierana jest z paska adresu: index.php?id=zmienna.
Chciałbym uchronić się przed sytuacją, gdyby ktoś wpisał tylko nazwę pliku index.php, bez deklaracji zmiennej. Sytuacja taka owocuje wyświetleniem komunikatów:

Warning: main(data/.php): failed to open stream: No such file or directory in c:\usr\krasnal\www\rozklad\rozklad.php on line 27
Warning: main(): Failed opening 'data/.php' for inclusion (include_path='.') in c:\usr\krasnal\www\rozklad\rozklad.php on line 27

Próbowałem popełnić coś takiego:
  1. <?php
  2. if ($id='') { $id=zmienna; }
  3. ?>

ale niestety, nie dało to żadnych efektów sad.gif

Ten post edytował ichu 11.08.2007, 10:47:55
Go to the top of the page
+Quote Post
bełdzio
post 11.08.2007, 10:47:25
Post #2





Grupa: Zarejestrowani
Postów: 690
Pomógł: 81
Dołączył: 6.04.2005
Skąd: Szczecin

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


empty + file_exists


--------------------
Go to the top of the page
+Quote Post
ichu
post 11.08.2007, 11:14:32
Post #3





Grupa: Zarejestrowani
Postów: 35
Pomógł: 0
Dołączył: 26.08.2006

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


Wyszło mi takie coś:
  1. <?
  2. $id=$_GET['id'];
  3. if (empty($id))
  4. {
  5. $id=zmienna;
  6. }
  7. $filename = 'data/'.$id.'.php'; 
  8. if (file_exists($filename)==false)
  9. {
  10. $id=zmienna;
  11. }
  12. include('data/'.$id.'.php');
  13. ?>

Działa! smile.gif Prosiłbym jednak jeszcze o sprawdzenie i ewentualne wskazówki.
Dziękuję za pomoc!!!
Go to the top of the page
+Quote Post

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

 



RSS Wersja Lo-Fi Aktualny czas: 30.07.2025 - 17:00