Trong khi tất cả các câu trả lời khác làm việc, tất cả họ đều có một vấn đề lớn: đó là các thiết lập của trình duyệt để quyết định phải làm gì nếu họ gặp phải tiêu đề Vị trí. Thông thường, trình duyệt ngừng xử lý yêu cầu và chuyển hướng đến URI được chỉ định bằng tiêu đề Vị trí. Nhưng một người dùng độc hại chỉ có thể bỏ qua tiêu đề Vị trí và tiếp tục yêu cầu của nó. Hơn nữa có thể có những thứ khác khiến trình thông dịch php tiếp tục đánh giá tập lệnh qua tiêu đề Vị trí, không phải là những gì bạn dự định.
Hình ảnh này:
<?php
if (!logged_id()) {
header("Location:login.php");
}
delete_everything();
?>
gì bạn muốn và dự kiến là chưa đăng nhập người dùng được chuyển hướng đến trang đăng nhập, vì vậy mà chỉ đăng nhập người dùng có thể delete_everything. Nhưng nếu tập lệnh được thực thi qua tiêu đề Vị trí thì mọi thứ sẽ bị xóa. Vì vậy, nó là nhập khẩu để LUÔN chấm thoát sau một tiêu đề Vị trí, như thế này:
<?php
if (!logged_id()) {
header("Location:login.php");
exit; // <- don't forget this!
}
delete_everything();
?>
Vì vậy, để trả lời câu hỏi của bạn: để chuyển hướng từ một trang php đến một trang khác (không chỉ là php, bạn có thể chuyển hướng đến bất kỳ trang theo cách này), sử dụng này:
<?php
header("Location:http://www.example.com/some_page.php");
exit; // <- don't forget this!
?>
lưu ý nhỏ: các tiêu chuẩn hTTP nói rằng bạn phải cung cấp URL tuyệt đối trong tiêu đề Địa điểm (http: // ... như trong ví dụ của tôi ở trên) thậm chí nếu bạn chỉ muốn chuyển hướng đến một tệp khác trên cùng một tên miền. Nhưng trong thực tế, các URL tương đối (Location: some_page.php) hoạt động trong tất cả các trình duyệt, mặc dù không tuân thủ tiêu chuẩn.
Nguồn
2012-03-06 10:28:08
Cảm ơn bạn đã trả lời ..... – arunrc
Lưu ý rằng nếu bạn muốn liên kết đến một trang web khác, bạn phải đặt http: // ở phía trước www để nó hoạt động. –
@RickHoving tất nhiên. nó là tầm thường. bạn nên chỉ định giao thức để url hợp lệ. – Juvanis