Làm cách nào để tạm dừng một trang trong một số giây nhất định trước khi chuyển hướng người dùng đến trang HTML/PHP khác bằng PHP?Tạm dừng chuyển hướng PHP
Trả lời
Cập nhật: công trình này, nhưng có thể không phải là giải pháp thích hợp nhất cho tình huống này. Xem ý kiến.
Đây có phải là những gì bạn đang tìm kiếm không?
<?php
sleep(5);
header("Location: http://www.example.com/");
exit();
?>
Thực sự làm việc? Tôi nghĩ rằng với chức năng ngủ, trình duyệt chỉ không tải trang đó (trong ví dụ của bạn) 5 giây .. nhưng không ném đầu ra – Strae
@DaNieL Tôi chưa thử nghiệm điều này, vì vậy bạn có thể chính xác nó có hoặc không hoạt động tùy thuộc vào cài đặt máy chủ hoặc thời gian/địa điểm mà bạn gọi là mã này. – Daan
Tôi vừa thử nghiệm, nó hoạt động, nhưng ngăn chặn tất cả các đầu ra khác .. afaik sleep sleep() funcion giữ tạm dừng toàn bộ php render, vì vậy imho không nên được sử dụng cho loại vấn đề này – Strae
2 tùy chọn khác là chuyển hướng Javascript bằng setTimeout() hoặc thẻ làm mới meta với thời gian chờ.
giải pháp Low-tech đòi hỏi không có Javascript hoặc thậm chí PHP:
<html>
<head>
<title>Redirecting...</title>
<meta http-equiv="refresh"
content="10;URL=http://www.newsite.com">
</head>
<body>
You are being automatically redirected to a new location.<br />
If your browser does not redirect you in 10 seconds, or you do
not wish to wait, <a href="http://www.newsite.com">click here</a>.
</body>
</html>
Ưu điểm của giải pháp này hơn bằng cách sử dụng "Location:" tiêu đề là bạn không cần phải tạm dừng việc thực hiện kịch bản, mà sẽ xuất hiện cho người dùng như thể máy chủ đang bận hoặc kết nối của họ đã bị treo.
Giải pháp này cũng cung cấp cho người dùng tùy chọn tiếp tục đến trang mới ngay lập tức thay vì phải đợi x số giây trong khi trình duyệt của họ không hiển thị thông tin.
Chỉnh sửa: Tôi nghĩ cũng cần lưu ý rằng nếu bạn quyết định sử dụng phương thức header(), bạn cần đảm bảo thời gian ngủ() của bạn không quá dài. Tôi nghĩ hầu hết các trình duyệt đều tạo kết nối hết thời gian sau khi không nhận được bất kỳ dữ liệu nào từ máy chủ trong 1 phút. công trình
Hãy cẩn thận - một số trình duyệt (như chrome và opera) sẽ không thực hiện theo cách này một cách chính xác – Strae
Thật sao? Tôi không biết điều đó. Vâng, ít nhất họ có liên kết để bấm vào sau đó. – Calvin
Có, tôi không nhớ một cách exacly nếu trình duyệt không xử lý đúng cách là safari, opera hoặc chrome .. tôi nhớ rằng là 2 trong số đó .... nhưng có thể họ đã khắc phục vấn đề này trong thời gian – Strae
này một nên:
<?php
header('Refresh: 5; URL=http://yoursite.com/page.php');
//other code
?>
và sẽ cho phép người dùng của bạn để xem bất cứ loại đầu ra bạn muốn (Bạn sẽ được chuyển hướng trong giây X, nhấp yere nếu dont, vv ..)
Tôi thực sự thích giải pháp này tốt hơn nhiều so với những gì tôi đăng. +1 – Calvin
Tính năng này không hoạt động với mọi trình duyệt. – Gumbo
thực sự? tôi thử nghiệm trên chrome, ff, tức là, opera và safari, tất cả trên môi trường cửa sổ, và tất cả các công trình như nhau. Bạn đã thử dùng hệ điều hành nào? Không thể là bất kỳ loại cài đặt trình duyệt nào? – Strae
không bao giờ sử dụng chế độ ngủ theo cách này. Ngay cả khi tải nhẹ máy chủ của bạn sẽ hết các kết nối http. Tệ nhất nếu tường lửa của bạn hết.
Tham số trễ trong tiêu đề chuyển hướng được thực hiện chính xác cho cùng một lý do.
Hãy thử:
<?php
$url=base_url().'page_you_want_to_go_to'
header('Refresh: X; URL=$url');
?>
này sẽ cung cấp cho bạn sự linh hoạt bổ sung khi trao đổi giữa máy chủ localhost và từ xa.
đặt tiêu đề này vào tiêu đề.
<meta http-equiv="refresh" content="0.01;makensucces.html" />
trên địa điểm 0,01 bạn phải đặt giây, tôi đã sử dụng số thập phân.
và trên vị trí của makensucces.html bạn cần phải đặt tên khỏi tệp bạn muốn.
Nếu bạn muốn chờ đợi và sau đó quay trở lại trang trước đây là cách
$referrer = $_SERVER['HTTP_REFERER'];
header ("Refresh: 2;URL='$referrer'");
- 1. Chuyển mạng tạm dừng
- 2. cách dừng chuyển hướng trang
- 3. Tạm dừng NSOperation
- 4. Trình duyệt dừng/dừng tạm dừng thực thi tập lệnh?
- 5. Tạm dừng bằng Python
- 6. Tạm dừng quy trình?
- 7. Tạm dừng Android DownloadManager
- 8. Chuyển hướng trang PHP
- 9. Chuyển tiếp D3 - tạm dừng và tiếp tục
- 10. Tạm dừng trong TTS android
- 11. django: sự khác biệt giữa chuyển hướng tạm thời và chuyển hướng vĩnh viễn là gì?
- 12. UIScrollView tạm dừng NSTimer trong khi cuộn
- 13. ray: 3 Devise signup Chuỗi bộ lọc bị tạm dừng là: require_no_authentication được hiển thị hoặc chuyển hướng
- 14. Rails 3 - Chuỗi bộ lọc bị tạm dừng là: xác thực được hiển thị hoặc chuyển hướng
- 15. Tạm dừng sao chép máy chủ SQL tạm thời
- 16. Chuyển hướng tạm thời đến trang bảo trì
- 17. Chuyển hướng đầu vào tạm thời trong Bash
- 18. Trả lại 307 Chuyển hướng tạm thời trong ASP.NET MVC
- 19. Tạm dừng vẽ lại Biểu mẫu Windows
- 20. Ví dụ MediaPlayer: dừng hoạt động như tạm dừng
- 21. Parallel.Foreach C# Tạm dừng và dừng chức năng?
- 22. Giết ứng dụng android khi tạm dừng
- 23. Chèn tạm dừng vào liên kết tel: //
- 24. Chờ/Tạm dừng số giây trong C
- 25. Thay đổi thông báo tạm dừng
- 26. Bộ sưu tập Rác Javascript tạm dừng
- 27. Android Media Player chơi/tạm dừng Nút
- 28. Tạm dừng và tua lại video HTML5
- 29. Tạm dừng thực thi JavaScript trong UIWebView
- 30. Tạm dừng quy trình trong C#
Tôi không bao giờ hiểu tại sao tôi phải chờ số x của giây để họ có thể chuyển hướng tôi đến một trang khác do tại sao tôi sẽ làm điều đó ? – Thomaschaaf
Trở thành một số trình duyệt - hoặc cài đặt của trình duyệt - không cho phép chuyển hướng ... và hiển thị trang trung gian rõ ràng cho người dùng sau đó tải nhiều trang mà không hiểu điều gì đang xảy ra .. X (thường là 5 giây) ở đó để người dùng đọc tin nhắn;) – Strae
@Thomaschaaf: Có một vài lý do có thể, a) bởi vì họ không nhận ra không có nhu cầu, b) quảng cáo, trong khi người dùng 'chờ đợi' họ có thể thấy thêm và nhấp, c phù hợp, mọi người làm như vậy mọi người mong đợi một trang không liên tục (tức là sếp của tôi đã khiến tôi triển khai một trang, mặc dù trang web của chúng tôi không tạo ra doanh thu quảng cáo chỉ vì anh ấy đã từng nhìn thấy nó và nghĩ rằng người dùng của chúng tôi cũng vậy.) – Louis