Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP] Problem z include, podfoldery, basename
Forum PHP.pl > Forum > PHP
phpproblem
Ok, mam taki skrypt includujacy:

  1. <?php
  2.      $go = $_GET['strona'];
  3.      
  4.  
  5.      if(!empty($go)) {
  6.  
  7.          if(is_file("$go.html")) include "$go.html";
  8. if(is_file("$go.php")) include "$go.php";
  9.          else echo "<br />";
  10.      }
  11.  
  12. else include "home/wiadomosci.php";
  13.      
  14. ?>


I ten skrypt podobno nie jest bezpieczny...

wiec przeczytalem ten temat:
http://forum.php.pl/index.php?showtopic=30056&st=0

I uzulem tego kodu z tego postu (http://forum.php.pl/index.php?showtopic=30056&st=0):

  1. <?php
  2. if(file_exists('skrypty/'.$page.'.php')){
  3.  include ('skrypty/'.basename($page.'.php'));
  4. }else{
  5.  include ('skrypty/glowna.php');
  6. }
  7. ?>


I teraz jest taki problem:

Skrypt dziala ladnie, ale includuje pliki .php tylko z foleru "skrypty" a z podfolderow juz nie includuje zadnych plikow...

np.
mojastronatestowa.com/index.php?page=testnews - DZIALA

a to Nie Dziala
mojastronatestowa.com/index.php?page=skrypty/home/testnews
mojastronatestowa.com/index.php?page=home/testnews

Moglby ktos mi powiedziec jak dodac ten "basename" (zakladam ze poprawia to bezpieczenstwo) do tego skryptu co ja uzywam?
  1. <?php
  2.      $go = $_GET['strona'];
  3.      
  4.  
  5.      if(!empty($go)) {
  6.  
  7.          if(is_file("$go.html")) include "$go.html";
  8. if(is_file("$go.php")) include "$go.php";
  9.          else echo "<br />";
  10.      }
  11.  
  12. else include "home/wiadomosci.php";
  13.      
  14. ?>


Jezeli ktos mialby jakis link do skryptu ktory includuje pliki tylko ze strony na ktorej sie znajduje, z includowaniem plikow z podfolderow itd., albo zna rozwiazanie mojego problemu, to prosze o pomoc!

Z gory dziekuje!
marcio
http://www.egrafik.pl/manual-php-2006/function.basename.php
  1. <?php
  2.      $go = $_GET['strona'];
  3.      
  4.  
  5.      if(!empty($go)) {
  6.  
  7.          if(file_exists($go) && is_file($go.'.html')) {
  8.         $file = basename($go, '.html');
  9.         include($file);
  10.         }
  11.  
  12.          else echo "<br />";
  13.      }
  14.  
  15. else include "home/wiadomosci.php";
  16.      
  17. ?>

Cos takiego

P.S jednak to tez nie jest bezpieczne w 100% bo jest LFI chyba ze masz jakis .htaccess na podkatalogi, najlepiej rob sobie sztywne tablice z plikami ktore mozna includowac i sprawdzaj

http://haxite.org/index.php3?site=artykul&...view&id=824
http://haxite.org/index.php3?site=artykul&...view&id=792

Nie bede ci wszystkiego pisal poczytaj i zrob jak nalezy jak nie pozostaje ci switch()
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.