Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Przepisanie Zmiennych
iltharus
post
Post #1





Grupa: Zarejestrowani
Postów: 2
Pomógł: 0
Dołączył: 13.12.2015

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


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"?
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 3)
viking
post
Post #2





Grupa: Zarejestrowani
Postów: 6 380
Pomógł: 1116
Dołączył: 30.08.2006

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


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.


--------------------
Go to the top of the page
+Quote Post
iltharus
post
Post #3





Grupa: Zarejestrowani
Postów: 2
Pomógł: 0
Dołączył: 13.12.2015

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


Hmm... tego się obawiałem. Czyli lepiej zmienić książkę.
Go to the top of the page
+Quote Post
Pyton_000
post
Post #4





Grupa: Zarejestrowani
Postów: 8 068
Pomógł: 1414
Dołączył: 26.10.2005

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


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

Ten post edytował Pyton_000 13.12.2015, 20:06:47
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 - 01:14