我有一個小應用程序,重定向成功的用戶登錄,還在應用程序初始化它定義自定義會話處理程序。重定向以這種方式完成:sprintf('<html><head><meta http-equiv="refresh" content="%d;url=%s"/></head></html>', $delay, $url);
。自定義會話處理程序和重定向
現在的問題是。如果我以這種方式重定向,它會在那次調用期間到達自定義會話處理程序嗎?
我有一個小應用程序,重定向成功的用戶登錄,還在應用程序初始化它定義自定義會話處理程序。重定向以這種方式完成:sprintf('<html><head><meta http-equiv="refresh" content="%d;url=%s"/></head></html>', $delay, $url);
。自定義會話處理程序和重定向
現在的問題是。如果我以這種方式重定向,它會在那次調用期間到達自定義會話處理程序嗎?
你做錯了。使用header()
函數來發送一個Location
頭,像這樣:
<?php header("Location: $url"); ?>
添加所發送的任何輸出之前。是的,會議將繼續。
不知道你爲什麼重定向這種方式。
session_start();
// do something
header("Location: some_url_to_redirect");
所以即使我這樣做,它應該達到'session_write'處理程序(重定向之前),對吧?那麼之前定義的所有對象都應該保留到那時? – Eugene 2012-02-15 08:28:33
該腳本將始終作爲一個整體運行。如果你在重定向之後沒有'死()',那麼任何通過它的東西都會運行並運行。 – 2012-02-15 08:42:17
非常感謝您的幫助。那麼問題一定是其他地方。 – Eugene 2012-02-15 08:43:07