UWAGA. Aby przeczytać ten artykuł musisz znać podstawy PHP
Napiszemy prosty skrypt który będzie w zależności od innego nr id wyświetlał inny plik (?id=1 itp ;]).
Niedoświadczony webmaster robi tylko takie 4 linijki kody
<? $id=$_GET["id"]; include($id); ?>
Bardzo dużo razy spotkałem się z tym błędem.
jak damy sam powyższy skrypt będzie wyświetlany każdy plik jaki sobie zażyczymy ;]
np
?id=etc/passwd
Jak widać jest to groźny błąd ;] jak się przed nim bronić
Opiszę podstawowy skuteczny sposób. Po prostu przypiszemy funkcjami "if" każdy osobny plik.
Powiedzmy , że mamy pliki:
-index.php
-omnie.php
-kontakt.php
i chcemy , aby index.php wyświetlał się gdy id będzie równe 1 (?id=1)
omnie.php gdy id będzie równe 2
a kontakt.php będzie wyświetlany gdy id będzie równe 3.
mało tego zrobimy ,aby wyświetlała się strona główna gdy id będzie 0 ;]
code będzie wyglądał tak :
$id=$_GET["id"]; if(empty($id)) { // Sprawdza czy plik jest pusty include('index.php'); // Jeżeli tak jest wyświetla się strona główna. } if ($id == 1) { // jeżeli $id będzie równe 1 include('index.php'); // pokaż plik index.php } elseif ($id == 2) { //.. include('omnie.php'); //.. } elseif ($id == 3) { //.. include('kontakt.php'); //.. } else { // w innym wypadku include('index.php'); // pokaż index.php }
I teraz po wpisaniu ?id=etc/passwd pojawi się strona główna;]
By Mafialt
Offline