Folosind registrele globale

Î: Formularul nu afișează date.
Î: Nu se pot vedea parametrii transmiși scriptului.
Î: Variabila de pagină $ este goală, deși trec do.php? Page = 2
Î: Ce trebuie să faceți dacă hosterele au dezactivat register_globals






Poate că schimbarea cea mai notabilă din PHP este că valoarea implicită pentru directiva register_globals sa schimbat. De la versiunea 4.2.0, valoarea sa este OFF.

Acest lucru este făcut pentru a facilita scrierea de scripturi sigure. Când se elaborează proiecte destul de complexe, atunci când numărul de variabile utilizate este mare, este foarte ușor să se permită utilizarea unei variabile neinitializate, care, atunci când register_globals = On, poate fi trecută la script din exterior de un hacker.

Dacă register_globals = activată, $ autorizată poate deveni TRUE, chiar dacă funcția authenticated_user () returnează FALSE.

Acum ia în considerare metodele de luptă:

1. Utilizând matrice preinstalate:

  • $ HTTP_GET_VARS - variabilele trecute prin metoda GET
  • $ HTTP_POST_VARS - variabilele trecute prin metoda POST
  • $ HTTP_COOKIE_VARS - valori cookie
  • $ HTTP_SESSION_VARS - variabilele sesiunii
  • $ HTTP_FILES_VARS - variabile ale fișierelor încărcate






Amintiți-vă că dacă folosiți matrice preinstalate care nu sunt vizibile în interiorul funcției, trebuie să procedați după cum urmează:

2. Folosind rețelele superglobale

Începând cu versiunea 4.1.0, PHP oferă un set suplimentar de matrice predefinite care conțin variabilele serverului web (dacă sunt disponibile), mediul și intrarea utilizatorilor. Aceste tablouri noi sunt speciale, deoarece acestea sunt automat globale - adică disponibile automat în orice domeniu.

  • $ _GET - variabilele trecute prin metoda GET
  • $ _POST - variabilele trecute prin metoda POST
  • $ _COOKIE - valori cookie
  • $ _SESSION - variabilele sesiunii
  • $ _FILES - variabile ale fișierelor încărcate

Mesele superglobale nu au dezavantajul descris mai sus:

3. Folosind funcția import_request_variables ()

Funcția vă permite să importați variabilele GET / POST / Cookie.

Tipurile pot fi:

La specificarea tipurilor, registrul nu contează. Puteți transfera simultan mai multe tipuri, dar variabilele se vor suprapune.

Exemplu de import GET și peste ele variabile POST:

Este posibil ca din versiunile viitoare ale PHP register_globals să fie excluse cu totul.







Articole similare

Trimiteți-le prietenilor: