• Welcome to Forum graficzne Burning-Brushes.pl. Please log in or sign up.
 

Content - wyświetlanie treści na stronie

Zaczęty przez Kaczy, Styczeń 29, 2011, 15:09:04

Poprzedni wątek - Następny wątek
Taki całkiem przydatny patencik, może sie przydać wielu osobom.
Znacznie ułatwi wyświetlanie treści, bez używania przestarzałych iframe lub kopiowania całych szablonów

Wersja z dowolną ilością podstron:

Z błędem 404:

<?php
if ($_GET['page'] && file_exists('pages/' $_GET['page'] . '.php') && strpos($_GET['page'], '../') === false)
include 
'pages/' $_GET['page'] . '.php';
elseif (!isset(
$_GET['page']))
require
"pages/index.php";
elseif (!
file_exits('pages/' $_GET['page'] . '.php'))
require 
'pages/404.php';
?>



Oraz zamiast błędu gdy niema strony, wyświetla się strona główna ;)

<?php
if ($_GET['page'] && file_exists('pages/' $_GET['page'] . '.php') && strpos($_GET['page'], '../') === false)
include 
'pages/' $_GET['page'] . '.php';
else
require
"pages/index.php";
?>



Drugim sposobem jest wyświetlanie określonych podstron:


<?php
switch($_GET['page']) {
case 
'klucz':
include 
'pages/podstrona.php';
break;

case 
'klucz2':
include 
'pages/podstrona2.php';
break;

deafult:
include 
'pages/podstrona3.php'//wyświetli się, gdy żaden wpisany klucz nie pasuje
break;
}



Legenda
$_GET['page'] - tablica GET, w której adres wygląda tak: index.php?page=strona
pages/ - folder z plikami
404.php - plik z błędem 404

może fajnie trochę ułatwi życie,
ale jak już coś takiego polecasz, to możesz uprzedzić, że każdy może wyświetlić wszystko z tego folderu o dowolnym rozszerzu - skrypt jest niebezpieczny.

dotdotslash działa w dwie strony i jeszcze noll bitek ;D

więc jakiś plik w pages/tajne/tajne/supertajne/tajne.txt
można bez problemu odczytać ;d

dotdotslash nie działa ;), chyba, że zastosuje ktoś nop w adresie: tajne/tajne/supertajne, jednak taka osoba musi znać nazwy folderów, bezpośredni dds (../tajne.txt) jest zabezpieczony tym: strpos($_GET['page'], '../') === false

ale i tak da rade otworzyc wszystkie pliki w tym katalogu o róznych rozszerzeniach już pomijam, że trzeba widziec co sie tam znajduje, no ale da się to otworzyc

Nie zgodzę się ;) foldery może i się da, ale otworzysz tylko pliki o rozszerzeniu .php, spójrz:
if ($_GET['page'] && file_exists('pages/' . $_GET['page'] . '.php') && strpos($_GET['page'], '../') === false)
konkretnie:  file_exists('pages/' . $_GET['page'] . '.php'), ściślej: jeśli istnieje plik $_GET['page'].php w katalogu pages ;)

co z tego ze dopisujesz rozszerzenie php
wystarczy

index.php?page=tekst_różny_od_php.txt0%%

Warning: include(tekst_r�ny_od_php.txt0%%.php)

jak widzisz, nie da się ;)

oj kaczusiu... da się
po prostu albo nie chcesz się do tego przyznac....
albo namieszales rg

przy towim pierwszym skrypcie....
utworz sobie plik tajne.txt wsadz go do folderu pages...
i link niech wyglada tak..
index.php?page=tajne.txt%00

%00 pnb


tutaj masz jeszcze dowodzik ;)
ten dziwny symbol w adresie  to własnie pnb po przeładowaniu firefox go 'koduje'

A, teraz widzę, zwracam honor ;) trza zaznaczyć, aby w folderze pages trzymać tylko pliki podstron :)

spoko ;p

php jest bardzo fajnym językiem ma ogromne możliwości i do tego nie jest trudny, ale trzeba zwracać uwagę na szczegóły jakie może wprowadzić user i manipulować jakimiś zapytaniami ;d