Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [php] $_GET['zmienna'] a $zmienna
jasina
post
Post #1





Grupa: Zarejestrowani
Postów: 19
Pomógł: 0
Dołączył: 16.10.2004

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


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)
Go to the top of the page
+Quote Post
Daimos
post
Post #2





Grupa: Zarejestrowani
Postów: 1 319
Pomógł: 118
Dołączył: 26.11.2003
Skąd: Lublin

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


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

Ten post edytował my salsa 9.05.2007, 14:32:00


--------------------
scriptun.com. Startup z poradnikami do gier ttp.zone i ttpzone.pl
Go to the top of the page
+Quote Post
Darti
post
Post #3





Grupa: Zarejestrowani
Postów: 1 076
Pomógł: 62
Dołączył: 6.03.2005
Skąd: Wroc

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


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ć).


--------------------
The answer is out there, Neo. It's looking for you. And it will find you, if you want it to.
SERVER_SOFTWARE : Apache/2.2.4 (Win32) PHP/5.2.1
MySQL Client API version : 5.0.27
Go to the top of the page
+Quote Post
jasina
post
Post #4





Grupa: Zarejestrowani
Postów: 19
Pomógł: 0
Dołączył: 16.10.2004

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


No i o to mi chodziło wielkie dzięki.
Pozdrawiam
Go to the top of the page
+Quote Post
freedek2
post
Post #5





Grupa: Zarejestrowani
Postów: 5
Pomógł: 0
Dołączył: 25.04.2007

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


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. ?>
Go to the top of the page
+Quote Post
babejsza
post
Post #6





Grupa: Zarejestrowani
Postów: 407
Pomógł: 1
Dołączył: 4.03.2003
Skąd: warszawa

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


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.
Go to the top of the page
+Quote Post
mls
post
Post #7





Grupa: Zarejestrowani
Postów: 677
Pomógł: 89
Dołączył: 31.08.2003
Skąd: Warszawa

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


a nie prościej byłoby zastosować funkcję import_request_variables" title="Zobacz w manualu PHP" target="_manual? smile.gif


--------------------
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 Aktualny czas: 21.08.2025 - 07:45