Trong một chương trình PHP có thể chuyển hướng tiêu đề() được tính vào để kết thúc luồng chương trình, hoặc có giá trị trong, ví dụ, sau chúng với một die() để được an toàn? Có thể cho người dùng khai thác kịch bản bằng cách nào đó gửi đi các chuyển hướng không? Câu hỏi này rất quan trọng trong trường hợp người dùng được chuyển hướng vì không có đủ quyền truy cập và mã sau đây chỉ dành cho những người không được chuyển hướng.Có thể tính toán chuyển hướng tiêu đề() để kết thúc luồng chương trình không?
5
A
Trả lời
7
Không, tiêu đề không kết thúc thực hiện chương trình. Bạn phải tự kết thúc bằng lối ra hoặc chết. Bạn có thể thử này mình với một cái gì đó như thế này:
<?php
file_put_contents('/tmp/test', '1');
header('Location: http://www.emilvikstrom.se/');
file_put_contents('/tmp/test', '2');
?>
Kiểm tra nội dung của /tmp/test
và bạn sẽ thấy rằng nó là 2
.
Tôi cũng đã thử kịch bản này:
<?php
header('Location: http://www.emilvikstrom.se/');
echo "Test\n";
?>
cùng với telnet để gửi một yêu cầu HTTP dẫn sử dụng, với kết quả này:
HTTP/1.1 302 Found
Server: nginx/0.7.67
Date: Tue, 05 Jul 2011 07:27:14 GMT
Content-Type: text/html
Connection: close
X-Powered-By: PHP/5.3.3-7+squeeze1
Location: http://www.emilvikstrom.se/
Vary: Accept-Encoding
Content-Length: 5
Test
Như bạn thấy, tất cả mọi thứ được lặp lại sau Tiêu đề vị trí vẫn được gửi đến trình duyệt. Trên thực tế, PHP không thể biết sau cuộc gọi header
nếu bạn định gửi nhiều tiêu đề hơn hoặc nếu những thứ bạn phản hồi có tầm quan trọng.
Các vấn đề liên quan
- 1. Làm thế nào tôi có thể kết thúc ncurses mà không kết thúc chương trình C++?
- 2. python: làm thế nào để chấm dứt một luồng khi chương trình chính kết thúc
- 3. PHP chuyển biến có chuyển hướng tiêu đề
- 4. Ống bị hỏng không còn kết thúc chương trình nữa?
- 5. GPU và CPU? Số lõi/luồng trong GPU để tăng tốc tính toán chương trình?
- 6. Subprocess.call có thể được gọi mà không cần chờ quá trình kết thúc không?
- 7. làm cho chương trình chính chờ đợi cho các chủ đề để kết thúc
- 8. Chuyển hướng tiêu đề an toàn như thế nào? Nó có thể bị bỏ qua không?
- 9. Không thể kết hợp tiêu đề tùy chỉnh với các tính năng tiêu đề khác
- 10. Có bao nhiêu cách mà Chương trình java có thể kết thúc?
- 11. PyQT Xóa chương trình Thanh Tiêu đề?
- 12. Làm cách nào để tôi có thể lập cấu hình chương trình đa luồng bằng Python?
- 13. Làm cho chương trình java ngủ mà không cần luồng
- 14. Tìm kết thúc luồng cho cin & ifstream?
- 15. Amazon AWS: Làm cách nào để tính toán chi tiêu theo chương trình?
- 16. Luồng chương trình - bảo lãnh không hoạt động nếu một phép tính không thành công
- 17. Geopy: tính toán tiêu đề/vòng bi GPS
- 18. Làm cách nào để đặt tiêu đề theo chương trình
- 19. Cách kết thúc/Buộc đóng chương trình (trong Clojure)
- 20. Cách chuyển tiếp tiêu đề trên chuyển hướng HTTP
- 21. Eclipse kết thúc chương trình đang chạy như thế nào?
- 22. lỗi kết thúc kỳ lạ của lỗi chương trình
- 23. Cách phát hiện kết thúc luồng?
- 24. Không thể chuyển hướng với nhiều biến-Tiêu đề có thể không chứa nhiều hơn một tiêu đề, dòng mới được phát hiện. trong
- 25. Tập lệnh PHP có được thực thi sau khi chuyển hướng tiêu đề không?
- 26. Có thể đóng Trình đọc mà không đóng luồng không?
- 27. Kết thúc không mong đợi của luồng đầu vào ZLIB
- 28. Nguyên nhân có thể có cho "StreamCorruptedException: tiêu đề luồng không hợp lệ"
- 29. lỗi kết thúc luồng không mong muốn khi tải xuống?
- 30. Có thể chương trình đơn luồng được thực hiện đồng thời trên nhiều lõi CPU không?
Bạn nên sử dụng exit() hoặc chết sau tiêu đề –
Để có danh sách các tiêu đề hiện đã được đặt, hãy xem ['headers_list()'] (http://php.net/manual/en/function.headers -list.php) – hakre