Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [php] Zabezpieczenie przed podmiana stron strony w tablicy
gregi1
post
Post #1





Grupa: Zarejestrowani
Postów: 134
Pomógł: 0
Dołączył: 24.03.2007

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


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.


--------------------
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 2)
CuteOne
post
Post #2





Grupa: Zarejestrowani
Postów: 2 958
Pomógł: 574
Dołączył: 23.09.2008
Skąd: wiesz, że tu jestem?

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


  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. }


Ten post edytował CuteOne 20.11.2010, 14:42:56
Go to the top of the page
+Quote Post
Quantum
post
Post #3





Grupa: Zarejestrowani
Postów: 450
Pomógł: 84
Dołączył: 27.11.2008
Skąd: Warszawa

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


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.

Ten post edytował Quantum 20.11.2010, 14:46:49
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 Aktualny czas: 21.08.2025 - 11:02