2013-10-30 23 views
1

我有一個腳本,我一直在我的服務器上運行沒有問題,然後今天突然得到以下錯誤,在服務器上的DOS攻擊之後。服務器被重新啓動,並且有問題的IP地址被阻塞,但是現在這個腳本不起作用。我認爲,在試圖找出服務器出現問題的過程中,apache模塊被重新安裝,所以我想知道這是否與那裏的某些東西有關。服務器突然拋出一個致命錯誤,在DOS攻擊後

致命錯誤呼叫時通過按引用已在/home/name/public_html/folder/ipology.class.phpon線被移除43

這是代碼圍繞線43的部分:

function _fetch() 
{ 
    if(!$sock = @fsockopen($this->_whois, $this->_port, &$errno, &$errstr, 10)) 
     return false; 
    else 
    { 
     fputs($sock, "{$this->_ip}\n"); 
     while(!feof($sock)) 
      $buffer .= fgets($sock, 10240); 
     fclose($sock); 
     $this->_buffer = $buffer; 
     return true; 
    } 
} 

我不知道爲什麼它突然停止工作,或者實際上錯誤如果有人有任何想法,將不勝感激。

感謝

+1

DoS攻擊自動地更新你的PHP版本,真正的實現。所以這可能是一件好事。順便說一句,關於它被棄用的警告一直存在PHP 5.3.0(2009年6月30日) – PeeHaa

回答

0

我認爲你有一個新的PHP-版本和你在引用您的示例工作。

if(!$sock = @fsockopen($this->_whois, $this->_port, &$errno, &$errstr, 10)) 

$errno$errstr之前刪除&

if(!$sock = @fsockopen($this->_whois, $this->_port, $errno, $errstr, 10)) 

我想你的PHP文件中所看到的,這是什麼

resource fsockopen (string $hostname [, int $port = -1 [, int &$errno [, string &$errstr [, float $timeout = ini_get("default_socket_timeout") ]]]]) 

這descripes在C.

+0

非常感謝您的解釋 –

0

,你可以在PHP文檔閱讀,你的PHP 5.4.0版本使用「呼叫時間傳遞通過引用」時,將引發一個致命的錯誤。

這說

在PHP 5.3.0中,你會得到一個警告說「呼叫時間傳遞通過引用」已經過時,當您在使用FOO &(& $一) ;。 從PHP 5.4.0開始,調用時傳遞引用已被刪除,因此使用它將引發致命錯誤。

http://php.net/manual/en/language.references.pass.php

+0

感謝您的幫助 –