Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: $_get raz działa a raz nie
Forum PHP.pl > Forum > PHP
mablo
Mam kod:
  1. <?php
  2. $i = $_GET['id'];
  3. if(file_exists($i.&#092;".php\"))
  4.  include $i.&#092;".php\";
  5. else{
  6. echo(&#092;"<p>Zły parametr . <br /> Prosze o kontakt z webmasterem.<br /><br /></p>\");
  7. }
  8. ?>

Wiec teroretycznie wpisujac adres localhost/index.php?id=aaa powinno includować aaa.php , ale nic sie nie dzieje wyświetla się
  1. <p>Zły parametr . <br /> Prosze o kontakt z webmasterem.<br /><br /></p>

Sprawdzałem innym skryptem $_GET i tam działa a tu nie.
Ktoś wie o co chodzi questionmark.gif
sobstel
moze plik nie istnieje, jest w innym katalogu czy cos w tym rodzaju...
mablo
Właśnie chodzi o to ze plik jest w dobrym katalogu bo jak zrobie
  1. <?php
  2. include &#092;"aaa.php\"
  3. ?>
to wyświetla zawatrość pliku.

Już działa jak zwykle pomogł restart kompa biggrin.gif
SongoQ
Taka mala uwaga, troszeczeke jest niezbyt takie zastosowanie ze z GETa includujesz pliki. A jesli bedziesz mial jakis plik do czyszczenia bazy i ktos wpisze jego nazwe?questionmark.gifquestionmark.gif?
mablo
Na to tez jest rozwiązanie tabela w mysql :

+--------------+--------------+
| Nazwa zmiennej | adres strony |
+--------------+--------------+
|news | news.php |

I wtedy jest bezpiecznie biggrin.gif
SongoQ
No to zmienia postac rzeczy.
ActivePlayer
ja tam jestem za stosowaniem switcha... jest najbezpieczniej.
SongoQ
@ActivePlayer Jesli nie wykorzystuje do tego bazy danych to tak, chociaz ostatnio rozwiazalem to inaczej. Utworzylem pliczek gdzie wstawilem liste wszystkich plikow odnosnie jakiegos modulu. Jesli cos zmieniam to tylko w tym pliku nie modyfikujac klasy zarzadzajacej plikami. Takie cos zblizone do MVC. Tak mysle o tym podejsciu @mablo latwe bedzie do zarzadzania ale optymalnie to nie beedzie, kazdy wie korzystanie z zewnetrznych mechanizmow spada na wydajnosci.
mablo
@SongoQ Tu masz racje wydajność może spaść, ale w koncu to jest tylko jedno zapytanie do bazy danych.
Jak szybkościowo wypada wyciąganie danych z bazy danych a z plików np. inc,txt questionmark.gif
Vertical
Może spróbuj coś takiego:
  1. <?php
  2. $i = $_GET['id'];
  3. $file = $i.'.php';
  4. if( file_exists($file) )
  5.  include $i.'.php';
  6. else{
  7. echo(&#092;"<p>Zły parametr . <br /> Prosze o kontakt z webmasterem.<br /><br /></p>\");
  8. }
  9. ?>

Może chodziło o to, że w jednym są apostrofy (') a w drugim cudzysłowy (")
Ociu
  1. <?php
  2. $i = $_GET['id'];
  3. $file = $i.'.php';
  4.  
  5.  if( file_exists($file) ):
  6.  include $i.'.php'; # ? nie lepiej poprostu dać include $file; ?
  7.  elseif:
  8. echo(&#092;"<p>Zły parametr . <br /> Prosze o kontakt z webmasterem.<br /><br /></p>\");
  9.  endif;
  10.  
  11. ?>
Bora
  1. <?php
  2. $file = 'path/to/my/file.php';
  3. $susp = substr(strrchr($str, &#092;"/\"), 1);
  4. if($susp !== false){
  5. $file = $susp;
  6. }
  7. ?>

żeby nikt nie mógł poskakać soebie po katalogach.
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.