Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP] Prawdopodobny błąd w kodzie
Forum PHP.pl > Forum > Przedszkole
pio123
Witam,
Chciałbym zrobić w moim pliku kalendarium.php coś takiego, że gdy wpisuję w przeglądarkę na przykład www.mojastrona.pl/kalendarium.php?id=styczen wyskakiwało mi include odpowiedzialne właśnie za ten miesiąc, jak na przykład wpisuję luty, to za luty itd. Natomiast gdy wrzucam w kalendarium.php opisany niże kod i wpisuje odpowiednie zmienne do adresu, to wyskakuje czysta strona. Czy coś robię nie tak? Proszę o rozwiązanie problemu...

  1. <?
  2.  
  3. if ($id=="styczen")
  4. {
  5. include ("kalendarium/miesiace/styczen.txt");
  6. }
  7. else
  8. {
  9. echo '';
  10. }
  11.  
  12. if ($id=="luty")
  13. {
  14. include ("kalendarium/miesiace/luty.txt");
  15. }
  16. else
  17. {
  18. echo '';
  19. }
  20. ?>
sebekzosw
  1. <?
  2. if ($_GET["id"] == "styczen"){
  3.    include ("kalendarium/miesiace/styczen.txt");
  4. } elseif($_GET["id"] == "luty") {
  5.    include ("kalendarium/miesiace/luty.txt");
  6. }
  7. ?>


Coś takiego?
gox
musisz miec wczesniej w kodzie cos takiego:

$id = $_REQUEST['id'];
lub.
$id = $_GET['id'];
lub
$id = $_HTTP_GET_VARS['id'];
lub
extract($_REQUEST);
lub
extract($_GET);
lub
ini_set('register_globals', 'on');
lub
ini_set('register_globals', true);

pozdro smile.gif
skowron-line
  1. <?php
  2. $m = array( 'styczen', 'luty', 'marzec' ... );
  3. if( in_array( strtolower( $_GET[ 'id'], $m ){
  4. if(file_exists( 'kalendarium/miesiace/'. strtolower( $_GET[ 'id' ] ) .'.txt'))
  5. include( 'kalendarium/miesiace/'. strtolower( $_GET[ 'id' ] ) ..txt );
  6. else
  7. echo'nie mozna zaladowac pliku';
  8. }
  9. ?>
gox
za to kod kolegi wyzej podany jest na
directory traversal
czyli w efekcie
Local File Include
co moze zaskutkowac..
sami wiecie czym...

tacy pwinni miec zakaz wypowiadania sie na forum.
gox
a sorki robisz in array, ale kod i tak jest slabiutki.
gox
  1. <?php
  2. preg_match('#/([^.]+)$#', $_SERVER['REQUEST_URI'], $id);$id = $id[1];
  3. @include( 'kalendarium/miesiace/'. $id .'.txt' );
  4. # uruchamiamy to tak:(...)index.php/styczen
  5. ?>
pio123
Dziekuję za pomoc smile.gif Teraz będzie działać.
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.