2

私が作成していないphpnukeを使用したWebサイトがありました。しかし、今は私が責任を負っていますが、うまくいきません。以前は機能していましたが、現在は機能していません。

最初は来なかっただけです。ただの白紙。問題はこの行であることがわかりましたmainfile.php

if (!ini_get('register_globals')) {
    @import_request_variables("GPC", "");
}

とコメントしただけです。現在、comming の最初のページですが、ページの上部にこの警告が表示されます

Strict Standards: Resource ID#10 used as offset, casting to integer (10) in /www/sites/sanad-rahbordi.sbu.ac.ir/httpdocs/db/mysql.php on line 212

Strict Standards: Resource ID#10 used as offset, casting to integer (10) in /www/sites/sanad-rahbordi.sbu.ac.ir/httpdocs/db/mysql.php on line 213

Strict Standards: Resource ID#10 used as offset, casting to integer (10) in /www/sites/sanad-rahbordi.sbu.ac.ir/httpdocs/db/mysql.php on line 212

Strict Standards: Resource ID#10 used as offset, casting to integer (10) in /www/sites/sanad-rahbordi.sbu.ac.ir/httpdocs/db/mysql.php on line 213

これは、212行と213行を含む関数ですmysql.php

function sql_fetchrow($query_id = 0)
{
    if(!$query_id)
    {
        $query_id = $this->query_result;
    }
    if($query_id)
    {
        $this->row[$query_id] = @mysql_fetch_array($query_id); // 212
        return $this->row[$query_id]; // 213
    }
    else
    {
        return false;
}

コメントで212行と213行を示しました。それで、問題は何ですか?私はそれを理解することはできません。これらの 2 行を に置き換えてみまし$query_idたが(int)$query_id、エラーは表示されなくなりましたが、サイトは機能しません。つまり、最初のページが表示されますが、すべてのリンクをクリックすると、index.php. リンクは機能しません。

4

3 に答える 3

3

問題は、リソース IDを配列のキーとして使用しようとしていることです。これは不可能であるため、php はリソース ID を整数にキャストしています。

リソースを手動でキャストすると、これは機能し、PHP はこれについて警告しません。「"@"mysql_fetch_array」中に発生したエラーを非表示にします。エラーを表示したいので、それを削除する必要があります。

if($query_id)
{
    $intQueryId = (integer) $query_id;
    $this->row[$intQueryId] = mysql_fetch_array($query_id); // 212
    return $this->row[$intQueryId]; // 213
}

else に「{」がありません

    else
    {
      return false;
    }
于 2013-01-19T12:16:52.127 に答える
1

全体として、おそらく 10 年前と同じように、PHP コードを使用するソフトウェアを使用しているように思えます。誰かが下の PHP をアップグレードしたため、サイトが機能しなくなりました。

バージョンまたは製品のいずれかで、最新のソフトウェアに移行することをお勧めします。突き破られたものにパッチを当てても意味がないと思います。メンテナとして、あなた自身がより多くのトラブルに巻き込まれるだけです。

そのウィキページによると、それ以来「多くのセキュリティ修正」が加えられたバージョンが存在します。ソフトウェアを使い続けたい場合は、その方向に移行することをお勧めします。

于 2013-01-19T12:13:15.867 に答える