Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP]Prośba o sprawdzenie i objaśnienie skryptu
Forum PHP.pl > Forum > Przedszkole
MysticPL
Więc przeszukiwałem forum i znalazłem taki skrypt:
Kod
<?php
$strona = basename($_GET["strona\"]).\".php\";

if (file_exists($strona))
    include($strona);
else
    echo \"Brak strony...\";
?>

Moja prośba: mógłby go ktoś objaśnić to znaczy jak on działa, czy jest bezpieczny i czy dzięki niemu strona będzie wyświetlana w jednym pliku. Z góry dziękuje za odpowiedź.
Skie
W zmiennej $_GET['strona'] powinien znajdować się ścieżka do pliku, lub sama jego nazwa.

Funkcja basename() zwraca samą nazwę pliku z podanego łańcucha zawierającego ścieżkę do pliku.

Następnie funkcja file_exist() sprawdza czy taki plik (podstrona) istnieje na serwerze. Jeżeli tak to go wyświetla, jeżeli nie to wypisuje błąd - "Brak Strony"

PS. Zastanawia mnie tylko dlaczego to wygląda tak:

  1. <?php
  2. $strona = basename($_GET["strona\"]).\".php\";
  3. ?>


A nie po prostu tak:

  1. <?php
  2. $strona = basename($_GET["strona"]);
  3. ?>


1. nie wiem po co jest to \ w GET'cie
2. nie wiem po co jest dodany ".php" - funkcja basename powinna zwrócić nazwę pliku już wraz z końcówką .php
MysticPL
Ten skrypt jest tak skonstruowany ze względów bezpieczeństwa. OK moje pytania:
1. Jak tego skryptu użyć, tzn. co utworzyć.
2. Czy linki mają wyglądać tak: index.php?strona=(jakiśplisk).php ?

Chciałbym że by ten skrypt wyglądał tak jak na tej stronie: http://www.neonsite.pdg.pl/index.php
Skie
1. użyj go w miejscu gdzie się powinna pojawiać dana podstrona
2. index.php?strona=plik tak wystarczy
MysticPL
Dzięki.
Mize
Daj jeszcze warunek, który sprawdzi czy plik to nie czasem index.php, bo Ci się zapętli w nieskończoność.

  1. <?php
  2. if (file_exists($strona) AND $strona !== 'index.php')
  3.    include($strona);
  4. else
  5.    echo "Brak strony...";
  6. ?>
MysticPL
Mam jeszcze jedno pytanie, gdzie i w jaki sposób umieścić ścieżke do pliku z include i jak ma wyglądać plik include?

Problem rozwiązany. Temat do zamknięcia
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.