• 締切済み

PHPの携帯サイトの

PHPの携帯サイトの http//hoge.ne.jp/img/1 で画像を公開しようとしています。 このURLにリンクした際はPHPの処理で特定のユーザー以外は見れないようにします。 しかし、画像ファイルが実際においてある http//hoge.ne.jp/file/img/hoge.jpg にアクセスされた場合はすべてのユーザに見られてしまいます。 これを防ぐ方法はなにか無いでしょうか?

みんなの回答

  • inoue_kou
  • ベストアンサー率57% (27/47)
回答No.2

<?php /* ここで個体識別情報で振り分け処理をして$userを得る */ // $userそれぞれの画像パス(webから参照できない場所でも可。読み込み権限は必要。) $imgfile = '/home/user/file/img/'.$user.'.jpg'; // ファイルの存在を確認 if (file_exists($imgfile)){ // ヘッダーを作成 header('Content-Type: image/jpeg'); header('Content-Length: ' . filesize($imgfile)); ob_clean(); // バッファを全て書きだす flush(); // ファイルを読み込んで標準出力に書き出す readfile($imgfile); } exit; ?> 上記の方法だと画像しか出力しない。 htmlの中に画像を入れるなら、上記の画像を出力する部分を別ファイルにする。 たとえば、getimg.php に画像出力部分を書くとすると、 元の個体識別用のphpでは、識別後にhtmlの出力を書いて、 その中のイメージ呼び出し部分で echo "<img src=\"./getimg.php?u=$user\">"; と言うように呼び出させる。

すると、全ての回答が全文表示されます。
  • inoue_kou
  • ベストアンサー率57% (27/47)
回答No.1

PHPの処理がどういうものか分からないですが、 PHPで認証すると同時に画像を表示させてやる。 画像はwebからアクセスできない所に置く。 もしくはPHPからのアクセス以外は拒否するように.htaccessを書く。 ではだめですか?

ttakayoshi
質問者

補足

>PHPの処理がどういうものか分からないですが、 説明不足ですいません。 個体識別情報で振り分けています。 >PHPで認証すると同時に画像を表示させてやる。 >画像はwebからアクセスできない所に置く。 >もしくはPHPからのアクセス以外は拒否するように.htaccessを書く。 知識が足りないもので・・・ それぞれのやり方を教えていただけませんか?

すると、全ての回答が全文表示されます。

関連するQ&A