⊗ppPmRdIns 405 of 447 menu

Chuyển hướng tức thì trong PHP

Chuyển hướng được thực hiện bằng hàm header không xảy ra ngay tại thời điểm gọi hàm đó. Bởi vì bản thân PHP không thực hiện chuyển hướng, mà chỉ gửi tiêu đề HTTP tương ứng tới trình duyệt.

Điều này có nghĩa là chuyển hướng sẽ chỉ xảy ra khi PHP thực thi toàn bộ script cho đến cuối. Do đó có thể xảy ra các hiệu ứng phụ không mong muốn.

Ví dụ, trong đoạn code sau, chúng ta muốn thực hiện hoặc là chuyển hướng, hoặc là truy vấn cơ sở dữ liệu. Nhưng truy vấn cơ sở dữ liệu vẫn sẽ được thực hiện ngay cả khi có lệnh chuyển hướng:

<?php if ($_GET['test']) { header('Location: test.php'); } $query = "UPDATE users SET changed=1 WHERE id=1"; mysqli_query($link, $query); // sẽ thực thi ngay cả khi chuyển hướng! ?>

Để tránh các vấn đề tương tự, cần ngay lập tức sau khi chuyển hướng gọi hàm die, hàm này sẽ lập tức kết thúc việc thực thi script và chuyển hướng sẽ xảy ra ngay lập tức:

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

Hãy tái tạo một hiệu ứng phụ nào đó trong code của bạn. Sau đó sửa chữa nó bằng hàm die.

Tiếng Việt
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbek
Chúng tôi sử dụng cookie để vận hành trang web, phân tích và cá nhân hóa. Việc xử lý dữ liệu được thực hiện tuân theo Chính sách bảo mật.
chấp nhận tất cả tùy chỉnh từ chối