Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [php] $_GET['zmienna'] a $zmienna
Forum PHP.pl > Forum > Przedszkole
jasina
Witam serdecznie

Pamiętam, że kiedyś (w jakiejś starszej wersji PHP) pisałem $zmienna i w ten sposób pobierałem wartość parametru zmienna z adresu URL np. index.php?zmienna=aaa.
Oczywiście chodzi mi o to, że bez polecenia $zmienna=$_GET['zmienna'] zmienna $zmienna miała wartość $_GET['zmienna'].

Dzisiaj dostałem pewien skrypt do przerobienia w którym autor nie odwołuje sie do zmiennych przekazywanych metodą GET w sposób $_GET['nazwa_parametru'] lecz pisze samo $nazwa_parametru.
W starszej wersji PHP zainstalowanego na serwerze skrypt działał, teraz niestety nie.

Można by przerobić skrypt zamieniając $zmienna_z_geta na $_GET['zmienna_z_geta'] ale nie chce mi sie po prostu tego robić.

Moje pytania:
Od jakiej wersji PHP przestało funkcjonować odwoływanie się do parametrów z URLa bez pisania $_GET?
Czy jest jakiś sposób na to, żeby nie zmieniać zmiennych na $_GET w tym starym skrypcie, który mam do przerobienia? (skrypt jest bardzo obszerny)
Daimos
w kazdej wersji to dziala
dowiedz sie wiecej o :
register_globals
jezeli bylo by ustawione na ON, to wtedy Twoj skrypt by chodzil, ale to nie bezpieczne, dlatego ustawia sie zazwyczaj na OFF
sa to ustawienia php.ini
Darti
Za to odpowiada opcja w php.ini register_globals.
Od wersji 4.2.0 jest ona wyłączona z powodu bezpieczeństwa (nie radzę włączać).
jasina
No i o to mi chodziło wielkie dzięki.
Pozdrawiam
freedek2
a spróbuj na początku całego skryptu wstawić poniższe polecenia....


mnie to pomogło Rkingsmiley.png


  1. <?php
  2. // Emulate register_globals on
  3. if (!ini_get('register_globals')) {
  4. $superglobals = array($_SERVER, $_ENV,
  5. $_FILES, $_COOKIE, $_POST, $_GET);
  6. if (isset($_SESSION)) {
  7. array_unshift($superglobals, $_SESSION);
  8. }
  9. foreach ($superglobals as $superglobal) {
  10. extract($superglobal, EXTR_SKIP);
  11. }
  12. } 
  13. ?>
babejsza
OT - Heh smile.gif Home przeszedł domyślnie na php5 i coś czuję, że w najbliższych dniach szykuje się wysyp topików pod tytułem "działało i nie działa - co mam zrobić" winksmiley.jpg - EOT

Sprawdź rozwiązanie przytoczone by @freedek2 lub:

Cytat(kresh @ 28.04.2007, 15:39:23 ) *
można zaimportować wartości z tablic superglobalnych i przypisać do zmiennych
  1. <?php
  2. foreach($_POST as $key => $value) {
  3. ${$key} = $value;
  4. }
  5.  
  6. foreach($_GET as $key => $value) {
  7. ${$key} = $value;
  8. }
  9. ?>

oczywiście dotyczy to jedynie gotowych już napisanych skryptów a dokładniej ich przystosowania.
Niemniej normalnie powinno się używać tablic superglobalnych.
mls
a nie prościej byłoby zastosować funkcję import_request_variables" title="Zobacz w manualu PHP" target="_manual? smile.gif
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.