
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