Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [php] Zabezpieczenie przed podmiana stron strony w tablicy
Forum PHP.pl > Forum > Przedszkole
gregi1
Mam pewien problem, otóż mam na stronie skrypt ktory laduje mi strony zadeklarowane w tablicy (proste zabezpieczenie przed podmiana stron) wyglada tak:

  1. <?php
  2. $pages = array(strona1, strona2, strona3);
  3. if(in_array($page, $pages)){
  4. include($page.".php");
  5. }else{
  6. $page2='start';
  7. include($page2.".php");
  8. }
  9. ?>


Skrypt dziala ok, ale problem pojawia sie dla stron ktore sa w odrebnych katalogach np. www.
Jak można to poprawić aby ten skrypt uwzglednial takze strony w katalogach, jak podam w array np. www/strona4 to wywala mi blad.
CuteOne
  1.  
  2. $page = 'logowanie';
  3.  
  4. $pages = array(
  5. 'glowna' => 'strona_glowna',
  6. 'logowanie' => 'www/logowanie',
  7. 'rejestracja' => 'rejestracja'
  8. );
  9.  
  10. if(file_exists($pages[$page].'.php')) {
  11.  
  12. include $pages[$page].'php';
  13. }
  14. else {
  15.  
  16. echo 'Brak pliku do includowania';
  17. }
Quantum
Cytat(gregi1)
jak podam w array np. www/strona4 to wywala mi blad.

bo źle deklarujesz ciąg znaków, umieść www/strona4 między apostrofami, np:
  1. $pages = array('strona1', 'strona2', 'strona3', 'www/strona4');
w sposób jaki podałeś odczytuje się stałe w php np:
  1. define('stala', 'wartosc stałej');
  2. echo stala;
w przypadku braku jej zdefiniowanej potraktuje jej nazwę jako ciąg ([m.in dlatego Twój skrypt do pewnego momentu działał] jeżeli włączyłbyś wyświetlanie błędów NOTICE to zobaczyłbyś co zrobiłeś nie tak). Jeśli chodzi o ukośniki (podfoldery) to parser wypluje błąd, bo nie dopuszcza ich w nazwach stałych.
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.