2014-12-25 39 views
0

我正在使用PHPMailer來處理我正在處理的項目,並且在我的本地主機上它像一個魅力一樣工作!但我正在使用朋友的服務器來測試不同設備的網站。當我在等待更多內容插入時,我正在做一些關於網站功能的工作。PHPMailer 500會話變量錯誤

我寫了一個腳本來跟着PHPMailer一起完成我所需要的一切,但是在頁面頂部,在我的doctype之前,我已經設置了幾個會話變量。經過幾個小時的修補之後,我意識到這是造成我的500錯誤的原因。我試着將它們移動到頭部,但(服務器上的)唯一的東西就是完全評論它們。但是,當我嘗試提交郵件時,它會轉到PHP文件,並且不會像它應該的那樣重定向到主頁。

有關如何解決此問題的任何想法?如果有幫助,這裏是我的代碼多數民衆贊成搞亂事情的一部分:

$errors = isset($_SESSION['errors']) ? $_SESSION['errors'] : []; $fields = isset($_SESSION['fields']) ? $_SESSION['fields'] : [];

更新:下面是的phpinfo圖像... enter image description here

回答

0

你使用SESSION_ [之前調用session_start() ]超級全局變量?

session_start()根據通過GET或POST請求傳遞的會話標識符或通過cookie傳遞,創建會話或恢復當前會話。

+0

是的。我有session_start();在非常高的位置並且未設置這兩個變量(在之後)。出於某種原因,這只是給我帶來麻煩的那兩條線。如果我將它們註釋掉,頁面加載得很好,但是表單不起作用。它只停留在mailer.php頁面上,沒有像應該那樣重定向。但它在我的本地主機完美運作。如果我將整個PHP文件和片段發佈到HTML的頂部和底部,會有幫助嗎? –

+0

正如您所說的,它在本地服務器上運行良好 使用phpinfo()並檢查會話。*設置。 也許這些信息被強制存儲在cookies中,而你的瀏覽器不接受cookies,就像這樣。 首先檢查並返回結果。 你也可以做一個print_r($ _ SESSION);有一個這個變量的轉儲,並看到內容.... 關於你的phpinfo(),session.save_path是否是一個有效的?你的網絡服務器是否可以寫入這個目錄? 希望這會有所幫助。 – techierishi

+0

它看起來像瀏覽器正在接受cookie,會話保存路徑在/ tmp中,並且Web服務器具有寫訪問權限。我無法獲得print_r($ _ SESSION);儘管工作。 –