⊗ppPmRdSWP 407 of 447 menu

Auto-redirecționare cu adăugarea de parametri în PHP

Să presupunem că pe pagina index.php este transmis un parametru GET cu numele arg. Să-i afișăm conținutul pe ecran:

<?php echo $_GET['arg']; ?>

Să presupunem că pagina noastră nu poate funcționa corect fără parametrul GET. În cazul nostru, acest lucru este într-adevăr adevărat, deoarece, dacă parametrul nu este transmis, atunci accesarea lui $_GET['arg'] va duce la o eroare.

Poate apărea întrebarea, de ce ar ajunge o persoană pe pagina noastră fără parametru? Până la urmă, noi putem pune peste tot pe site-ul nostru linkuri cu acest parametru. Cu toate acestea, aceasta nu este o garanție: utilizatorul site-ului nostru poate, de exemplu, să copieze linkul de undeva și să-l piardă pe acesta parametrul. Sau pur și simplu să-l șteargă accidental, editând bara de adrese.

În general, în orice caz, codul nostru ar trebui să anticipeze o astfel de situație și să facă ceva în legătură cu ea. Ce putem face?

Putem verifica dacă parametrul nostru GET există și să-l afișăm doar dacă acesta există:

<?php if (isset($_GET['arg'])) { echo $_GET['arg']; } else { // reacționăm cumva, de exemplu, cu un mesaj } ?>

Putem proceda mai inteligent:

<?php if (!isset($_GET['arg'])) { $_GET['arg'] = 'default'; // valoare implicită } echo $_GET['arg']; // garantează că va afișa ceva fără eroare ?>

Sau putem face astfel încât, la accesarea paginii fără parametru, să se producă o redirecționare către aceeași pagină cu parametrul:

<?php if (!isset($_GET['arg'])) { header('Location: ?arg=default'); } echo $_GET['arg']; // parametrul este garantat prezent ?>

Explicați care este diferența dintre a doua variantă și a treia.

Să presupunem că pe pagina page.php se poate transmite un număr cu ajutorul parametrului GET cu numele num. Faceți astfel încât, la accesarea fără acest parametru, să se execute automat o redirecționare către aceeași pagină, dar cu parametrul num cu valoarea 1.

Română
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Folosim cookie pentru funcționarea site-ului, analiză și personalizare. Prelucrarea datelor are loc în conformitate cu Politica de confidențialitate.
acceptă toate configurează respinge