Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [PHP] Prawdopodobny błąd w kodzie
pio123
post 1.10.2008, 15:38:48
Post #1





Grupa: Zarejestrowani
Postów: 10
Pomógł: 0
Dołączył: 22.11.2005

Ostrzeżenie: (0%)
-----


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. ?>
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 7)
sebekzosw
post 1.10.2008, 15:44:46
Post #2





Grupa: Zarejestrowani
Postów: 437
Pomógł: 42
Dołączył: 16.04.2007

Ostrzeżenie: (0%)
-----


  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?
Go to the top of the page
+Quote Post
-gox-
post 1.10.2008, 15:45:42
Post #3





Goście







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
Go to the top of the page
+Quote Post
skowron-line
post 1.10.2008, 15:54:32
Post #4





Grupa: Zarejestrowani
Postów: 4 340
Pomógł: 542
Dołączył: 15.01.2006
Skąd: Olsztyn/Warszawa

Ostrzeżenie: (0%)
-----


  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. ?>


Ten post edytował skowron-line 1.10.2008, 15:55:55


--------------------
I'm so fast that last night I turned off the light switch in my hotel room and was in bed before the room was dark - Muhammad Ali.
Peg jeżeli chcesz uprawiać sex to dzieci muszą wyjść, a jeżeli chcesz żeby był dobry ty też musisz wyjść - Al Bundy.

QueryBuilder, Mootools.net, bbcradio1::MistaJam
http://www.phpbench.com/
Go to the top of the page
+Quote Post
-gox-
post 1.10.2008, 16:02:15
Post #5





Goście







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.
Go to the top of the page
+Quote Post
-gox-
post 1.10.2008, 16:04:31
Post #6





Goście







a sorki robisz in array, ale kod i tak jest slabiutki.
Go to the top of the page
+Quote Post
-gox-
post 1.10.2008, 16:14:58
Post #7





Goście







  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. ?>
Go to the top of the page
+Quote Post
pio123
post 1.10.2008, 17:24:33
Post #8





Grupa: Zarejestrowani
Postów: 10
Pomógł: 0
Dołączył: 22.11.2005

Ostrzeżenie: (0%)
-----


Dziekuję za pomoc smile.gif Teraz będzie działać.
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Wersja Lo-Fi Aktualny czas: 14.08.2025 - 07:03