2013-01-18 86 views
-1

可能重複:
Headers already sent by PHP爲什麼不點擊工作?

if($sendmail) { 
    echo "<div class=\"success\" class=\"regdet\">Congratulations $name! You have successfully registered for <span>AADAB 2013</span>! An email has been sent to your email with the details of your form.<br><br>If the page does not automatically redirect you in 5 seconds, click <input type=\"button\" value=\"Here\" onclick=\"window.close()\"> to continue.</div>"; 
    header (refresh: 5, url="form.php"); 
} else { 
    echo "<span style=\"color: red; background: rgba(219,219,219,0.7);\">There was an error in submitting your form. Click <a href=\"form.php\">here</a> to try again!</span>"; 
} 

我試圖將用戶重定向到表單(這是目前的形式有兩種,形式和PHP命令) 5秒後...因爲它沒有發生,我正試圖包含一個按鈕,它將在窗體確認頁上按下後關閉窗口。

這也沒有發生。

郵件正在顯示,表格正在將電子郵件完美地發送到我的電子郵件帳戶,但是這個小部分讓我煩惱不已!

回答

1

您應該將參數作爲字符串傳遞給header()(實際上您正在發送原始標題字符串)。

所以這樣的:

header('refresh:5;url=form.php'); 

並且對於window.close()。如果你還沒有用Javascript打開窗口,並試圖用窗口處理程序關閉它,你實際上可能會遇到問題。由於安全原因,Javascript不會讓你關閉用戶看到的任何窗口。從理論上講,你應該看到一個瀏覽器警報,告訴你JS想要關閉這個窗口(但我沒有設法使它在IE 9或FF上工作)。

+0

它不工作...我甚至嘗試了雙引號..而且在頂部放頭()命令(只要是真正的sendmail $收益)... –

+0

對不起,是我不好 - 我用了一個逗號,而不是在頭文件聲明中使用分號。現在試試吧:) –

+0

不..還是沒有重定向...我是否必須編寫完整的絕對路徑..如http://...等等...或文件的相對路徑會好嗎? –

-1

window.close()在許多現代瀏覽器中都無法使用。

有它周圍方式:Issue with window.close and chrome

或者是有可能讓你使用一個模式彈出,而不是一個新的窗口?

+0

那是不正確的...... –

+0

@alex爲什麼這是不正確的? –

+0

你只需要引用窗口,標準的東西。 –

0

「此方法只允許爲使用window.open方法的腳本打開的窗口調用。如果窗口未由腳本打開,JavaScript控制檯中將顯示以下錯誤:腳本可能不會關閉未被腳本打開的窗口。「

當您打開窗口時,應該將其分配給一個變量。

openedWindow = window.open('moreinfo.htm'); 

然後,當你想關閉它...

openedWindow.close(); 

如果你想關閉與JS的窗口中,您可能會藏漢然後用JS藏漢重定向...

location.href = 'form.php'; 
+0

沒關係,所以不應該阻止header()命令...我猜...但頁面不重定向 –

0

如果您尚未向瀏覽器輸出任何內容,則只能輸出標題。在你的情況下,你echo的東西,然後嘗試發送一個header()

你也應該引用你的論點:

// no output so far.... 
header ('refresh: 5; url=form.php'); 

如果您查看錯誤日誌,你會發現:

PHP的警告:不能更改頭信息 - 頭已經發出...

+0

是的......但我試過它周圍的其他方法太...我在頂部(只要$ sendmail的收益爲真)把頭()命令沒有任何反應,甚至然後 –

+0

你檢查你的錯誤日誌?在發送郵件之前,您仍可能正在輸出某些內容。在打開'<?php'標籤之前即使是空格字符也可以防止標題發送。 – MrCode

+0

是..螢火顯示什麼..我的情況下,它可以幫助我嘗試做了以上的www.cookingquery.com/aadab/form.php –