⊗ppPmRdIns 405 of 447 menu

Tūlītējais pāradresējums PHP

Pāradresējums, kas izpildīts, izmantojot funkciju header, nenotiek šīs funkcijas izsaukšanas brīdī. Galu galā PHP pats neveic pāradresējumu, bet tikai nosūta atbilstošu HTTP galveni pārlūkprogrammai.

Tas nozīmē, ka pāradresējums notiks tikai tad, kad PHP izpildīs visu skriptu līdz beigām. Šī iemesla dēļ var rasties dažādi parazitāri efekti.

Piemēram, sekojošajā kodā mēs vēlamies veikt vai nu pāradresējumu, vai vaicājumu uz datu bāzi. Bet vaicājums uz datu bāzi tiks izpildīts pat tad, ja bija komanda pāradresēt:

<?php if ($_GET['test']) { header('Location: test.php'); } $query = "UPDATE users SET changed=1 WHERE id=1"; mysqli_query($link, $query); // izpildīsies pat pāradresējuma gadījumā! ?>

Lai izvairītos no šādām problēmām, ir nepieciešams uzreiz pēc pāradresējuma izsaukt funkciju die, kas tūlītēji pārtrauks skripta izpildi un pāradresējums notiks nekavējoties:

<?php if ($_GET['test']) { header('Location: test.php'); die(); } $query = "UPDATE users SET changed=1 WHERE id=1"; mysqli_query($link, $query); ?>

Reproducējiet kādu parazitāru efektu savā kodā. Pēc tam izlabojiet to, izmantojot funkciju die.

Latviešu
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Mēs izmantojam sīkdatnes, lai nodrošinātu vietnes darbību, analīti un personalizāciju. Datu apstrāde notiek saskaņā ar Konfidencialitātes politiku.
pieņemt visus iestatīt noraidīt