私はこれにより多くの夜の睡眠を失いました。どんな助力も非常に感謝しています。別のコンピュータで実行しても、同じブラウザ、同じスクリプト、同じサーバ、同じアクセス許可でPHPの検証が失敗する
ユーザーがフォームを使用してファイルをアップロードした後に、ファイル拡張子がのであることを確認する、非常に簡単な検証が.phpファイルにあります。私は、フォームのページにアクセスし、ファイルを送信すると
$allowed = array('png','jpg','rar','zip');
$filename = $_FILES['userfile']['name'];
$ext = pathinfo($filename, PATHINFO_EXTENSION);
if(!in_array($ext,$allowed))
{
$errorMessage .= 'File is not of type png, jpg, rar or zip';
$validData = false;
}
は、フォームは、それが必要として動作します。正しい拡張子を持つファイルをアップロードしないとエラーが発生し、それ以外の場合は成功します。
しかし、他の誰かが別のコンピュータからフォームにファイルを送信すると、常にエラーがスローされます。私は何が起こっているのか理解できません。
質問タイトルで述べたように、サーバー、ブラウザ、スクリプトはすべて同じです。 フォームの残りの部分(名前、教員、Facebookのリンクなど)が正しく転送され、エラーはありません!
注:環境は有効です。
エラーメッセージを説明できますか?どのファイルがアップロードされるので、エラーが発生していますか?ローカルまたはライブ環境の – KinjalMistry
ローカルチェックの場合は、PATHINFO_EXTENSION(acceptpathinfoがApacheでオン)が他のコンピュータにインストールされています。 http://httpd.apache.org/docs/2.2/mod/core.html#acceptpathinfo –
@KinjalMistry任意の種類のファイル。それがpng、jpg、rar、zipの場合、検証はかなり簡単ですが、エラーを返します。今の環境は生きているので、ユーザーからの明示的なエラーは得られません。私は別のコンピュータを使用し、より詳細なものを投げるでしょう。 – romaniucradu