簡體   English   中英

PHP會話啟動致命錯誤:無法在write中使用函數返回值 進行廣泛的故障排除之后

[英]PHP Session Start Fatal error: Can't use function return value in write | Following Extensive Troubleshooting

致命錯誤:無法在第3行的寫操作中使用函數返回值

我一直在尋找針對我的具體情況的答案,但沒有任何進展。 請查看我已經嘗試過的內容,並且包含了VPS全局php.ini文件。 網站根目錄中不存在php.ini文件。

<?php
session_start();
?>
<!DOCTYPE html>
<html>

我不知道怎么可能。 請查看我已完成的工作以嘗試解決該問題。

問題出在當我無法使用$_SESSION['$example']變量將變量傳遞給另一頁時,沒有運氣。 但是接下來我會擔心的。

當前VPS系統規格(服務器/網絡不是我的強項)

CentOS 6.8上的Apache 3

  • 默認PHP版本| 5
  • PHP 5處理程序| suPHP
  • Apache suEXEC |
  • Apache Ruid2 |
  • 默認PHP版本(.php文件)| 5
  • PHP 5處理程序| suPHP

嘗試的解決方案

禁用的.htaccess

.htaccess包含***suPHP_ConfigPath /***
Header append Vary User-Agent

禁用之前:

  • 已刪除所有301重寫規則,因為我已閱讀它們會干擾會話

  • 禁用的錯誤文檔

確保session_start()之后沒有空格

快取

  • 關閉所有通過WHM(我知道)的緩存
  • 在清除歷史記錄/ cookies /緩存/等之前和之后都對Firefox和Chrome進行了測試
  • 刪除了該域的CloudFlare服務

附加信息

由於沒有使用VPS,因此我沒有php.ini文件(以防有人懷疑)

我幾乎在所有其他頁面上使用php。

這是另一頁的前幾行的示例。

<?php
session_start();
$ip = $_SERVER['REMOTE_ADDR'];
//Version 1.75

上面的代碼只是前幾行,但是頁面執行正常,沒有問題。 應該注意的是,這是在貝寶付款到我的網站之后的重定向頁面。 此問題是最近的,以前可以正常使用。

還應注意,我使用session_write_close(): session_unset(); session_destroy(); 在適當的頁面上取消所有$_SESSION變量的設置並終止會話。

以下是文本鏈接到php.ini文件的鏈接(如果有幫助的話)。 鏈接中包含的域不是存在問題的域。 我並不是想對出現問題的域保持“冷靜”,我只是不希望人們在服務無法正常工作時使用該服務。

全局PHP INI文件作為文本文檔

解決這個問題的任何人,我欠你!

-安德魯

意外解決

我解決了問題,但仍然不知道是什么導致致命錯誤

  • 致命錯誤:無法在第3行的寫操作中使用函數返回值
  • $_SESSION變量未在頁面之間傳遞。

我通過做一件事解決了致命錯誤問題和$_SESSION變量問題。 對於某些人來說,這可能是標准程序,但是我是自學成才的,這對我而言並沒有發生。 我對WHM中的PHP高級配置進行了更改,從沒有看到任何更改。

我試了兩天,嘗試着在論壇上閱讀的所有解決方案。

重新啟動Apache服務器

在此期間,我從未重啟過Apache Server,這兩個問題均已解決。

盡管對於某些人來說,此解決方案似乎是基本的或常見的做法,但它很容易被忽略。 我在Stack Overflow和其他網站上至少閱讀了30個不同的論壇帖子。 沒有人建議使用Apache Restart作為一種檢查方法。

PHP配置

我更改了如下所示的PHP配置,並且會話變量正在傳遞。

session.use_cookies = 1
session.use_only_cookies = 1
session.use_trans_sid = 0

感謝您抽出寶貴時間來研究此問題。

真誠的安德魯

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM