Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP]GETowy miniCMS
Forum PHP.pl > Forum > Przedszkole
debian
Witam smile.gif
  1. <?php
  2. $dir = 'newsy/';
  3. $more = 'newsy/wiecej/';
  4.  
  5. include('naglowek.php');
  6.  
  7. if (empty($_GET['strona'])) readfile($dir.'index.php');
  8. else
  9. {
  10.  if (is_file($dir.$_GET['strona'].'.php')) readfile($dir.$_GET['strona'].'.php');
  11.  else readfile($dir.'blad.php');
  12. }
  13.  
  14. include('stopka.php');
  15.  
  16. ?>

Ten skrypcik umieszczony w index.php działa tak. w katalogu newsy robimy plik z treścią newsa o nazwie nazwa.php i po wybraniu index.php?strona=nazwa pokazuje nam treść tego newsa między nagłówkiem strony a jego stopką. Jest to wygodne dość biggrin.gif jak i staroświeckie.
Moje pytanie brzmi, co dopisać by po wpisaniu index.php?strona=nazwa&more=nazwa wyświetlił tylko tekst nazwa.php z katalogu newsy/wiecej bo prubowałem coś ale pokazuje i tekst z newsy/nazwa.php a pod spodem newsy/more/nazwa.php
erix
Cytat
Jest to wygodne dość jak i staroświeckie.

Dobrze, że jesteś choć samokrytyczny. tongue.gif http://serwer/skrypt/index.php?strona=../../etc/passwd i co?

Cytat
i tekst z newsy/nazwa.php a pod spodem newsy/more/nazwa.php

Dopisz kolejny warunek.
debian
Cytat
Dobrze, że jesteś choć samokrytyczny. tongue.gif http://serwer/skrypt/index.php?strona=../../etc/passwd i co?


I nic... tongue.gif index.php?strona= w skrypcie przeciez widac ze mozna odczytywac tylko z katalogu newsy/ poza tym nie ma praw do wyświetlenia tego pliku.

Cytat
Dopisz kolejny warunek.

Wiesz biggrin.gif sam bym na to nie wpadł -,-"
A tak serio to pisałem ale pewnie źle bo nie działało poprawnie dlatego proszę o waszą pomoc.
pyro
Cytat(debian @ 23.12.2008, 14:05:34 ) *
I nic... tongue.gif index.php?strona= w skrypcie przeciez widac ze mozna odczytywac tylko z katalogu



Ślepyś? Według Ciebie ten skrypt pozwala czytać tylko z katalogu "newsy"?

// EDIT

Daj linka do tej stronki to ci chętnie opisze problem.
debian
Cytat(pyro @ 23.12.2008, 14:08:43 ) *
Ślepyś? Według Ciebie ten skrypt pozwala czytać tylko z katalogu "newsy"?

// EDIT

Daj linka do tej stronki to ci chętnie opisze problem.


Prubowałem sam index.php?strona=../../../ bleble /etc/passwd i nie czyta pliku. Nawet jeśli podaje prawidłowe drzewo katalogów.

To jak można to zrobić bezpiecznie? :|
skowron-line
Cytat(debian @ 23.12.2008, 14:14:18 ) *
Prubowałem sam index.php?strona=../../../ bleble /etc/passwd i nie czyta pliku. Nawet jeśli podaje prawidłowe drzewo katalogów.

To jak można to zrobić bezpiecznie? :|

http://www.sjp.pl/pr%F3bowa%B3em
*sorry za OT
debian
Cytat(skowron-line @ 23.12.2008, 14:16:14 ) *

Lubisz nabijać posty prawda? ;] Jak nie masz nic szczególnego do powiedzenia to sie nie udzielaj prosze w moim temacie.
_olo_1984
np. tak:

stwórz sobie tablicę
  1. <?php
  2. $strony = array('dupa','krzysiek','chyzy');
  3. ?>


sprawdzaj czy to co przesyłasz getem jest w tablicy

  1. <?php
  2. if(in_array($_GET['strona'], $strony))
  3. {
  4.  // jakies tam dodatkowe rzeczy  + na koniec podłączasz strone
  5.  include(DIR.$_GET['strona'].'.php');
  6. }
  7. else
  8. {
  9. // generuje stosowny błąd
  10.  
  11. }
  12. ?>


to tylko pomysł
WebKing
  1. <?php
  2. $pages = array("nazwa", "nazwa_1", "nazwa_2");
  3.  
  4. if(in_array($_GET["page"], $pages)) {
  5.    if (isset($_GET["more"])) {
  6.        include("newsy/more/".$_GET["more"].".php");
  7.    } else {
  8.        include("newsy/".$_GET["page"].".php");
  9.    }
  10. } else {
  11.    echo "Brak podanej strony";
  12. }
  13. ?>

Proszę winksmiley.jpg
debian
Cytat(WebKing @ 23.12.2008, 14:41:21 ) *
  1. <?php
  2. $pages = array(&#092;"nazwa\", \"nazwa_1\", \"nazwa_2\");
  3.  
  4. if(in_array($_GET[&#092;"page\"], $pages)) {
  5.    if (isset($_GET[&#092;"more\"])) {
  6.        include(&#092;"newsy/more/\".$_GET[\"more\"].\".php\");
  7.    } else {
  8.        include(&#092;"newsy/\".$_GET[\"page\"].\".php\");
  9.    }
  10. } else {
  11.    echo &#092;"Brak podanej strony\";
  12. }
  13. ?>

Proszę winksmiley.jpg


Oooo smile.gif Dziękuje Bardzo biggrin.gif o takie coś mi chodziło ^^, Dzięki raz jeszcze biggrin.gif Pozdro
decha-design
lub też korzystaj z basename" title="Zobacz w manualu PHP" target="_manual
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.