0

このエラーが発生します:

警告:stristr()は、パラメーター1が文字列であることを想定しています。配列は/nfs/c09/h03/mnt/12345/domains/mydomainname.com/html/inyoni/fabrics.phpの385行目にあります。

このコードから:

foreach ($_POST as $field => $value) {

    if ($value && (stristr($value,"Content-Type: "))){
    header("Location: error.php");
    exit;
    }

}

理由はわかりません。実際、エラーは表示されませんが、クライアントには表示されます。私の理解では、これは画像ファイルがフォームに含まれているときに発生します(ただし、このエラーは以前は表示されませんでしたが、現在のみ表示されます)。

このサイトはMediatempleでホストされており、サーバー上でPHP5が全面的に使用されていることについて、これが開始された頃にPHP通知が顧客に送信されていました。これはPHP5の競合か何かですか。

少し戸惑いました-助けていただければ幸いです!

4

3 に答える 3

3

エラーはかなり明らかです。の最初のパラメータはstristr()文字列でなければならないということです。ただし、代わりに配列を指定しているため、コードでエラーが発生します。これを修正するには、文字列値をチェックしているだけであることを確認してください。

if (is_string($value))
{
    if (stristr(...))
}
于 2012-06-06T13:34:39.590 に答える
2

$valueには文字列ではなく配列が含まれています。これは、次のようなフォームがある場合に発生する可能性があります。

<input type="text" name="form[foo]"/>
<input type="text" name="form[bar]"/>

$_POST['form']、これら2つの変数の配列を保持します。このようなことが発生するかどうかを確認してください。

また、ファイルのアップロード、複数のチェックボックスなどで発生する可能性があります。

Kemal Fadillahが提案したように、$value変数の単純な型チェックを行います。

于 2012-06-06T13:35:27.460 に答える
1

var_dump($value)ループで実行します。アップロードされたファイルhttp://www.php.net/manual/en/features.file-upload.post-method.php$valueや一連のチェックボックスなど、いずれかのフォームに配列が含まれている場合は、配列になります。 、文字列の代わりに。

于 2012-06-06T13:35:32.893 に答える