Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Przepisanie Zmiennych
Forum PHP.pl > Forum > PHP
iltharus
Na początku się przywitam smile.gif

Chociaż kiedyś już pisałem na tym forum, ale nie mogę się zalogować na stare konto...

Mam taki problem. Mam już za sobą "proste" książki o podstawie PHP i teraz bierę się za bardziej rozbudowane PHP.

I tak, w jednej z książek mam między innymi coś takiego jak "PRZEPISANIE ZMIENNYCH". Jest tam na początku skryptu coś takiego jak poniżej, ale niestety nie jest to w żaden sposób opisane:

  1. if (is_array($HTTP_GET_VARS)){
  2. while (list($k,$v) = each($HTTP_GET_VARS)){
  3. if (is_array($HTTP_GET_VARS[$k])){
  4. while (list($k2, $v2) = each($HTTP_GET_VARS[$k])){
  5. $$k[$k2] = $v2;
  6. }
  7. @reset($HTTP_GET_VARS[$k]);
  8. } else {
  9. $$k = $v;
  10. }
  11. }
  12. @reset($HTTP_GET_VARS);
  13. }


i druga część:

  1. if (is_array($_GET)){
  2. while (list($k, $v) = each($_GET)){
  3. if (is_array($_GET[$k])){
  4. while (list($k2, $v2) = each($_GET[$k])){
  5. $$k[$k2] = $v2;
  6. }
  7. @reset($_GET[$k]);
  8. } else {
  9. $$k = $v;
  10. }
  11. }
  12. @reset($_GET);
  13. }


I tak samo jest analogicznie dla POST i COOKIE

Staram się rozbić to na części pierwsze, ale mam trochę problemów i jeszcze (chociaż się domyślam, i mam pomysły) jaki jest cel przepisywania zmiennych?
Co oznaczają dwa dolary? ($$k = $v)
@reset - mam za zadanie "czyścić" dane przesłane w ten sposób aby np. skrypt nie zdublował się jeśli ktoś kliknie np. "wstecz"?

P.S. I taki wątek, bo przerabiam teraz książkę z 2008 r. "Jak stworzyć własny Blog. PHP i mySQL" - podoba mi się, że jest tam praktycznie wszystko napisane, ale mam pytanie, czy książka z tego roku nie jest "przeterminowana"?
viking
Jest mocno przeterminowane, choćby $HTTP_GET_VARS [deprecated] : http://php.net/manual/pl/reserved.variables.get.php
Nigdy też nie rozumiałem sensu przepisywania zmiennych na inne zmienne w takim kontekście. Po co to robić?

$$: http://php.net/manual/pl/language.variables.variable.php

Ucząć się nie używaj nigdy @, ogólnie nigdy nie używaj. Naucz się usuwać błędy.
iltharus
Hmm... tego się obawiałem. Czyli lepiej zmienić książkę.
Pyton_000
W skrócie to robi zmienne na podstawie kluczy w $_POST, $_GET itp.

Czyli taka proteza dla register_globals.
Jeśli będziesz miał w adresie '?zmienna1=kiszka' to w PHP będziesz miał $zmienna1 o wartosci 'kiszka'.
Czyli Złooooo... Poszukaj innej książki.
Ew. po prostu zrozum co ten kod robi ale go nie używaj... nigdy...
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.