⊗ppPmRdIns 405 of 447 menu

Άμεση Ανακατεύθυνση σε PHP

Μια ανακατεύθυνση που πραγματοποιείται χρησιμοποιώντας τη header συνάρτηση δεν συμβαίνει τη στιγμή που καλείται αυτή η συνάρτηση. Αυτό συμβαίνει επειδή η PHP herself δεν εκτελεί την ανακατεύθυνση, αλλά μόνο στέλνει το αντίστοιχο HTTP header στο browser.

Αυτό σημαίνει ότι η ανακατεύθυνση θα συμβεί μόνο όταν η PHP ολοκληρώσει την εκτέλεση ολόκληρου του script. Εξαιτίας αυτού, μπορεί να εμφανιστούν διάφορα παράσιτα effects.

Για παράδειγμα, στον ακόλουθο κώδικα θέλουμε να εκτελέσουμε είτε μια ανακατεύθυνση είτε ένα database query. Αλλά το database query θα εκτελεστεί ακόμα κι αν υπήρχε μια εντολή ανακατεύθυνσης:

<?php if ($_GET['test']) { header('Location: test.php'); } $query = "UPDATE users SET changed=1 WHERE id=1"; mysqli_query($link, $query); // θα εκτελεστεί ακόμα και σε ανακατεύθυνση! ?>

Για να αποφύγετε τέτοια problems, πρέπει να καλέσετε τη die συνάρτηση αμέσως μετά την ανακατεύθυνση, η οποία θα τερματίσει αμέσως την εκτέλεση του script και η ανακατεύθυνση θα συμβεί άμεσα:

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

Αναπαράγετε κάποιο παράσιτο effect στον κώδικά σας. Στη συνέχεια, διορθώστε το χρησιμοποιώντας τη die συνάρτηση.

Ελληνικά
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Χρησιμοποιούμε cookie για τη λειτουργία του ιστότοπου, την ανάλυση και την εξατομίκευση. Η επεξεργασία των δεδομένων γίνεται σύμφωνα με την Πολιτική Απορρήτου.
αποδοχή όλων ρύθμιση απόρριψη