この奇妙な状況になりました:
私のphpスクリプトは、指定されたpng / gif / jpegファイルである限り、画像ファイルを正しくアップロードして名前を変更します。
しかし!画像以外のファイルをアップロードするときなど。.php または .html [テスト用 / ハッカー向け] 最初のアップロードは期待どおりに拒否され、独自の構成エラーが発行されます。
1) nxt/2nd ファイルをアップロードします。次のファイルが許可された画像ファイルであれば問題ありません。2)次/2番目のファイルをアップロードし、この2番目のファイルも許可されていない画像ファイルである場合。許可されていない 2 回連続のアップロード 403 - 送信エラーが発生し、ブラウザでスクリプト/URL が正しく呼び出されて、スクリプトが実行を停止します。
- ブラウザを更新しても、同じ 403 エラーが続きます。
- URLをクリックしてリターンキーを押すと、スクリプトが「新しく」実行され、以前のフィールド値がすべて空になります。
(これが原因ではないことを確認するために、アップロードされている非画像ファイルの許可を777に変更しましたが、同じエラーが続きます)
どうすれば解決できますか??? -これは私自身のコードの問題でしょうか? - または html/php 内部の仕組みに問題がありますか? - 他に何がありますか? 同様の問題に直面した体はありますか??
ありがとうございました。
--- コードが必要な人のために - 重要な部分だけを示します..
<form name="sellerscript" action="" method="POST" enctype="multipart/form-data">
<input type="file" name="upload3" id="f3" size="40" />
<input value="Image Upload/Adjust" name="imgupload" type="submit"> <br>
<input type="hidden" name="turn" value="<?php echo $round;?>" />
<input name="fn3h" type="hidden" value="<?php echo $fn3; ?>" />
<input name="uf3h" type="hidden" value="<?php echo $uf3; ?>" />
--- php --
//================ アップロード ファイル VARS =[ 写真/画像 3 のみ使用 ===========
$allowed = array( 'image/gif' , 'image/png' , 'image/jpeg' , 'image/pjpeg' );
$fname=$fname2=$fname3=''; $uploaded1=$uploaded2=$uploaded3=$auto_insertid=FALSE;
$uid1=$uid2=$uid3=''; // id for uploads table
$currentf1=$currentf2=$currentf3=''; //-- present loaded fname
//-- アップロード処理
if ( !isset($_POST['rmp3']) && $removep3h!='Yes') // whn に入らない prev.file.beng remvd
{
//-- echo '<br>image 3 being uploaded:name+'.$_FILES['upload3']['name'].'<br>' ;
if ( isset($_FILES['upload3']) )
{
if ( ( ( ($_FILES['upload3']['name']!="" ) || ($_FILES['upload3']['name']!=NULL ) ) && ($_FILES['upload3'] ['サイズ'] <= 1524288 ) ) { $uf3=$_FILES['upload3']['名前']; // ユーザーは、最後にアップロードされたファイルの名前を所有しています。
//--echo "<br> _________ file under 520k --upload permitted file---------";
//////////////////////////////
とりわけ、png/gif/jpeg 以外の 2 つのファイルが連続してアップロードされた場合を除き、動作しているようです - 403 エラーが発生します。
[root@myhost Desktop]# ls -l *.png -rwxrwxrwx 1 root root 27342 Oct 30 18:46 a1-banner5.png -rwxrwxrwx 1 root root 31812 Nov 11 23:31 a1-credit.png # - rwxrwxrwx 1 アリフ アリフ 1418 2011 年 10 月 8 日 2851auto.gif -rwxrwxrwx 1 ルート ルート 2321 2011 年 10 月 8 日 btf2.gif
-rwxrwxrwx 1 ルート ルート 46321 10 月 22 日 23:35 ez-calc.html
-rwxrwxrwx 1 ルート ルート 25958 10 月 25 日 23:58 dixonhome.html -rwxrwxrwx 1 ルート ルート 24883 10 月 26 日 00:01 dixons-home.html
注: [a1-banner5.png] を除いて、すべての画像ファイルは問題なくすべてのシーケンスでアップロードされます。これは、画像以外のアップロードに続いて 2 番目のファイルとしてアップロードされた場合、同じ問題を引き起こします。403 エラー。ypload されている他の hrml ファイルは、必然的に 403 エラーを生成します。
ファイルのアップロード元: drwxr-xr-x 26 ルート www-data 4096 Feb 13 20:38 デスクトップ ファイルのアップロード先: drwxrwxrw- 2 www-data www-data 4096 Feb 17 23:45 一時ディレクトリのアップロード: drwxrwxrwx 47 root www-data 12288 2 月 18 日 00:25 tmp (グループとしてルートを試行 - 同じエラー)
エラー: URL + 403
www.testdomain/domainsite/sellerscript.php
403 Forbidden サーバー上のこのリソースへのアクセスが拒否されました! Powered By LiteSpeed Web Server LiteSpeed Technologies は、この Web サイトの管理およびコンテンツについて責任を負いません。
また、スクリプトが画像のみのアップロードで完全に実行される場合: url:
wwww.testdomain/domainsite/sellerscript.php
ファイル > Photo-3/btf2.gif をアップロードしました!
[注: 両方の URL は同じです!]
これが誰かが問題を見つけるのに十分な情報であることを願っています.
ありがとうございました。