- ベストアンサー
PHP画像ファイルの処理についてのエラーメッセージと対処方法
- PHP画像ファイルの処理について、下記プログラムにどこか間違いがあるのでしょうか。エラーメッセージが出てしまいます。エラーメッセージの原因としては、アクセス権の不足やサーバーの障害が考えられます。エラーメッセージの解消方法としては、まずアクセス権を確認し、読み込み許可がない場合はサーバーの管理者に連絡することをおすすめします。
- 下記のようなエラーメッセージが出てしまいます。 Access forbidden! 要求されたオブジェクトへのアクセス権がありません。 読み込みが許可されていないか、 サーバが読み込みに失敗したかでしょう。 サーバーの障害と思われる場合は、ウェブ管理者までご連絡ください。 Error 403/localhost
- 質問内容に関するエラーメッセージが出てしまいます。具体的な原因はアクセス権の不足やサーバーの障害などが考えられます。解消方法としては、まずアクセス権を確認し、読み込み許可がない場合はサーバーの管理者に連絡してください。
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
- ベストアンサー
ブラウザでソースを開き、action属性の値を確認下さい。 action="<?=$_SERVER[PHP_SELF]?>" $_SERVER[PHP_SELF]では、PHP_SELFを定数として判断してしまう。 $_SERVER['PHP_SELF']と、シングルクォーテーションでくくるが、 実はセキュリティ的に問題あるのでこれも間違い。 $_SERVER['SCRIPT_NAME']を使う事。 後は、<?= ; ?>の様にショートタグが許可されているかを調べる。 許可されていないのであれば、<?php echo ; ?>を使用する。 今は暫定的に、画像の出力ヘッダが、フォームと同じファイルに書かれていて、 出力ヘッダは、image/jpeg 、text/html どちらなのかごちゃごちゃしてるので、 いづれは、<img src="image.php?newsize=1" />の様にした方が良い。
その他の回答 (1)
- nazal2010
- ベストアンサー率54% (12/22)
はじめまして、こんばんは。 スクリプトを拝見させていただきましたが、特に問題は無いように思います。 403エラーが出るタイミングは、初めて該当のPHPファイルへアクセスした場合ですか? それともサイズを選択してsubmitした場合でしょうか? 1、ディレクトリやファイルをアップロードした際のパーミッションは大丈夫ですか? リサイズする画像を置くディレクトリ(images)であれば、「755」 PHPファイルであれば、「644」など・・・。 2、スクリプトを走らすディレクトリや画像のディレクトリにHTMLファイルがあれば、 ジャマをしているのかも?といった感じでしょうか。 3、.htaccessファイルが設置されていませんか?また、サーバによって隠しファイルとして FTPの画面上には表示されない場合があるようです。 よくある403エラーは、ディレクトリは存在しているが、そこにファイルが存在していない為、 アクセスが出来ないといったパターンですが、間違いなく該当のディレクトリにファイルは 存在していますか? 現在思い当たる箇所はこのようなところでしょうか。 参考になるかどうか分かりませんが、回答させていただきます。
お礼
ご回答ありがとうございました。 仰って頂いたことを、今後参考にしたいと思います。 またよろしくお願い申し上げます。
補足
ご丁寧にご回答くださいまして、ありがとうございます。 >1のディレクトリやファイルをアップロードした際のパーミッション これはおそらく大丈夫だとは思うのですが、方法は以下のやり方ですか? 該当ディレクトリにカーソルを合わせ ⇒ 右クリック ⇒ プロパティ ⇒ 読み取り専用の□がチェックもしくは青くなっていれば、□をクリックして 無表示にして ⇒ 適用 ⇒OK ですか? そうであれば、何回かやっているのですが、見るたびに「読み取り専用の□」が青く囲まれており、その都度そこをクリックし ⇒ 「適用」 ⇒ 「OK」をクリックしております。 そして、画面にも毎回「読み取り専用設定解除」しました。 と出ます。これで設定ができているのかいつも不安になります。 どのようにすれば、設定ができるのか詳しく教えて頂ければ幸いです。 >2、スクリプトを走らすディレクトリや画像のディレクトリにHTLファイルがあればジャマをしているのかも? これはHTMLファイルがなかったので大丈夫でした。 >3、xampp32-1.7.3exeを使っているのですが、これをインストールした時に既にhtaccessが入っているディレクトリもあり、気にせず使っておりましたが、これは削除したほうがよろしいのでしょうか(削除すると、他のファイルが動かなくなりそうですが大丈夫でしょうか)? それとも、削除以外にも何かいい方法はございますでしょうか? お忙しいと存じますが、 何卒ご教授のほどお願い申し上げます。
補足
ありがとうございます! 無事解決致しました! ただ、わからないことがあったので、再度ご質問なのですが、 「<?= ; ?>」のショートタグが許可されているかを調べる」には どうすればよろしいのでしょうか? また、 >出力ヘッダは、image/jpeg 、text/html どちらなのかごちゃごちゃしてるので、 いづれは、<img src="image.php?newsize=1" />の様にした方が良い。 上述が指すものは、 (1) //画像を出力 header("Content-type: image/jpeg"); を、<img src="image.php?newsize=1" />に直すべきなのでしょうか? (2)それとも、 <FORM action="<?=$_SERVER['SCRIPT_NAME']?>" method="POST"> を、<img src="image.php?newsize=1" />に直すべきなのでしょうか? お忙しいところを恐れ入りますが、ご教授頂ければ幸いでございます。