Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Problem ...
Forum PHP.pl > Forum > Przedszkole
Diablos
Chciałem aby adresy do podstron wygladały mniej wiecej tak:

Cytat


Napisałem taki kod:

  1. <?php
  2.  
  3.  
  4. if(!isset(module)) {
  5. $module=&#092;"news\";
  6. }
  7. if(file_exists(&#092;"content/$module.php\")) {
  8. include &#092;"content/$module.php\";
  9. } else {
  10. echo 'Strona nie istnieje!';
  11. }
  12.  
  13. ?>


Na poczatku działało wszystko ok, po pewnym czasie (admin najprawdopodobniej zmienił cos w ustawieniach) przestało działac.

Zmieniłem wiec moj kod:

  1. <?php
  2.  
  3.  
  4. if(!isset($_GET[module])) {
  5. $module=&#092;"news\";
  6. }
  7. if(file_exists(&#092;"content/$module.php\")) {
  8. include &#092;"content/$module.php\";
  9. } else {
  10. echo 'Strona nie istnieje!';
  11. }
  12.  
  13. ?>


Niestety nie działał ... zmieniłem kod jeszcze raz...

  1. <?php
  2.  
  3.  
  4. extract( $_GET );
  5.  
  6. if(!isset($_GET[module])) {
  7. $module=&#092;"news\";
  8. }
  9. if(file_exists(&#092;"content/$module.php\")) {
  10. include &#092;"content/$module.php\";
  11. } else {
  12. echo 'Strona nie istnieje!';
  13. }
  14.  
  15. ?>


Było wszystko ok, ale do pewnego momentu laugh.gif
Teraz znowu nie działa....
co jest przyczyna problemu ?
(wiem ze pierwszy raz nie działało bo admin najprawdopodobniej zmineił ustawienia register_globals)

Dla fragmentów kodu php używaj proszę znaczników php z bbcode. /kszychu/
dr_bonzo
Podstawy php!
nie
  1. <?php
  2. if(!isset($_GET[module])) {
  3. ?>
// stala
tylko
  1. <?php
  2. if(!isset($_GET[ 'module' ])) {
  3. ?>
// string
Diablos
Mimo wprowadzonej zmiany, którą mi podałes nadal nie działa ...
na kazdej z podstron wyswietla mi sie "Strona nie istnieje".
revyag
a nie tak ? :
  1. <?php
  2. if(!isset($_GET[&#092;"module\"])) {
  3. $_GET[&#092;"module\"]=\"news\";
  4. }
  5. if(file_exists(&#092;"content/\".$_GET[\"module\"].\".php\")) {
  6. include &#092;"content/\".$_GET[\"module\"].\".php\";
  7. } else {
  8. echo 'Strona nie istnieje!';
  9. }
  10. ?>
aleksander
nazwa tematu jest nieadekwatna do problemu!
proszę ją zmienić
Diablos
revyag, dzieki, juz dziala smile.gif

Ale mam jeszcze pytanie. Czy rozwiazanie to bedzie działało na wiekszosci serverach ?
Niezaleznie od register_globals ustawionych na on lub off ?
Lars
tak, na Lycos jest niestety rg=on ! i $_GET['module'] działać będzie...bo
sam używam go tam Rkingsmiley.png
Diablos
Czytalem gdzies ze nie eksportuje sie superglobalnej $_GET, ze wzgledów bezpieczenstwa. Mogłby ktos mi wyjasnic czym to eksportowanie grozi i w jaki sposób inni moga to wykorzystac ?
Lars
extract" title="Zobacz w manualu PHP" target="_manual

Manual napisał:
Cytat
Nie należy używać funkcji extract() na niepewnych danych, jak na przykład danych odebranych od użytkownika ($_GET, ...). Można tak zrobić na przykład w celu tymczasowego uruchomienia starych skryptów, które zależne są od ustawienia register_globals. Należy jednak użyć nie nadpisującego parametru typ_ekstrakcji, jak na przykład EXTR_SKIP. Trzeba też pamiętać aby ekstrahować zmienne $_SERVER, $_SESSION, $_COOKIE, $_POST $_GET w tej właśnie kolejności.


o to chodziło?? :roll2:
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.