共有サーバーを利用していますが、
public_html/index.php より 一つ上のpublic_htmlの階層にあるimageフォルダの中のファイル(phpファイルとjpgファイル)にアクセスしたいのですが、phpファイルは読み込めるのですが、画像ファイルを読み込むことができません。原因が分かりません。もし何か気付きましたら教えてください。よろしくお願いします。( imgaeフォルダと画像ファイルのパーミッションは777にしています。phpファイルは644です。)
<!--index.php->
<?php
require_once("../image/HelloWord.php");
?>
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>TEST</title>
</head>
<body>
<img src="../image/HelloWorld.jpg"/>
</body>
</html>
No.5ベストアンサー
- 回答日時:
> imageフォルダに同様に入れたHelloWorld.phpにechoでHello World> を書きましたが、それの場合は、public_html/index.phpのほうで読
> み込むと、表示される
当然です。
それはPHPとしてサーバ側の処理であって、HTMLがブラウザで解釈されてクライアントからアクセスされるURLとは別物です。
> 仮にバイナリーデータで得たものをHtmlに出力するという形になる
> と、どのような形が考えられますでしょうか?
画像ファイルのバイナリデータを表示する方法は、以下ページのような方法を取ります。
http://kaworu.jpn.org/kaworu/2008-04-06-1.php
ただし、当たり前ですが、画像の種類によってバイナリデータは異なりますし、その画像をバイナリデータとして表示するということは、そもそも公開して構わない情報ということになります。
また、jsファイルもファイル内容を読み込んで全てechoするというなんとも無意味な実装を取ることになります。
ありがとうございます。今回の目的とは異なりますが、違う場面で応用できると思いましたので、感大変謝します。知らないことが多いので、とても参考になります。
No.7
- 回答日時:
答は出尽くしていると思いますが、基本はこれだけ
■共有サーバにはブラウザからみえるファイルと
見えないファイルがある。
■imgタグの画像はブラウザから取りに行くので
ブラウザから見えないファイルは表示できない。
■phpのrequire_onceによるファイル参照は
phpがサーバ側でファイルを読むということなので全く別の話
共有サーバであなたに与えられた公開用フォルダが
public_htmlなら、画像はその下に置かないと
駄目でしょう。
ありがとうございます。PHPを今年に入ってから、勉強しているのですが、最近頭が、ごちゃごちゃになってきて整理する意味でも、まとめの返信に感謝します。たしかにこうして比較してみると、PHPがサーバー側でファイルを読むということと、ブラウザからファイルを読むという違いがあり、しっかりしたイメージで理解することができました。感謝いたします。
No.6
- 回答日時:
因みに画像ファイルをバイナリで処理する典型的なパターンは、
特定のログインユーザーのプロフィール登録において、
画像ファイルのアップロードをした、などの場合です。
誰にでも公開していいものではありませんからね。
つまり、誰にでも公開していい画像ファイル、jsファイル、cssファイルは、
普通にwebroot直下のimage、js、cssディレクトリ内などに設置すべきです。
ありがとうございます。PHPは勉強の身なので、まだ浅く、最近、実験として、ちょうどプロフィール画面を作っていました。ちょうど画像をアップする部分を作っていまして、私の我流でのやり方ですと、アップする画像のファイル名をハッシュ化して、それにユーザーidを加えて区別していました。ちょっとやりかたがこれでいいのか迷っていたので、バイナリ処理に関しては非常に参考になります。
No.4
- 回答日時:
> MVCモデル では、public_htmlの下の階層ではなく、同階層にフォル
> ダを配置して見えない場所で管理する手法がある
それはユーザーに直接参照させないビジネスロジックなどであって、
ユーザーに公開させる画像、jsファイルはいつも通りwebroot配下に
置きます。
htmlファイルに限ってのみ、テンプレートエンジンを利用するなどの
関係上、Viewとして構成され、非公開ディレクトリへ設置します。
返信ありがとうございます。てっきり、public_htmlの階層で操作をするのだと思っていました。非公開ディレクトリというものの理解が間違っていただけに、大変参考になりました。調べて見ると、 .htaccessの設定などがあり、このあたりも弱いところなので、理解したいと思います。
No.2
- 回答日時:
>>index.phpより一つ上のpublic_htmlの階層
1つ上じゃ無いよ。index.phpはpublic_htmlの階層にいる。
それより1個上を指してるんだから、共用サーバの、あなたの管理範囲外。だからアクセス出来る訳が無い。
/image/フォルダはpublic_htmlの下の階層のはず。
つまり、index.phpの下
<img src="../image/HelloWorld.jpg"/>
↓
<img src="image/HelloWorld.jpg"/>
ありがとうございます。MVCモデル では、public_htmlの下の階層ではなく、同階層にフォルダを配置して見えない場所で管理する手法があるとのことなので、質問するに至りました。このあたりはレンタルサーバーによってもことなるのでしょうか?
No.1
- 回答日時:
public_html
├index.php
└image
└HelloWorld.jpg
という構成ならば、index.phpに記される画像パスは以下のいずれかでしょう。
・./image/HelloWorld.jpg
・/image/HelloWorld.jpg
/
├public_html
│└index.php
└image
└HelloWorld.jpg
という構成の場合、imageディレクトリは、Web上で公開している
ディレクトリでないため、アクセスすることはできません。
どうしてもこうしたいならば、PHP側で一旦画像ファイルを読み込み、
バイナリを得た上で、それをHTMLに出力する、という形になると
思います。
2つの解説ありがとうござまいす。後者の説明が私の現状であります。
MVCモデル では、public_htmlの下の階層ではなく、同階層にフォルダを配置して見えない場所で管理する手法があるとのことなので、気になったもので、実験してみました。ただ、imageフォルダに同様に入れたHelloWorld.phpにechoでHello Worldを書きましたが、それの場合は、public_html/index.phpのほうで読み込むと、表示されるので、全てが禁止されているわけではないような気がしました。ただ画像だけがどうしても無理でした。
仮にバイナリーデータで得たものをHtmlに出力するという形になると、どのような形が考えられますでしょうか? もし知っていましたら、イメージだけでもお聞かせください。よろしくお願いします。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- PHP imageフォルダに、画像をリサイズして保存する時のファイル名を変更したい 1 2023/05/30 11:39
- PHP PHP MySql 画像を取得 1 2022/06/04 14:05
- PHP PHPプログラムの間違い 1 2022/10/06 14:33
- PHP htmlspecialcharsが機能していないです。 バグですか? 1 2022/04/05 01:22
- JavaScript html5に変えるとスライドショーが消えてしまった。 3 2022/03/26 19:53
- HTML・CSS CSSが効かずどのように指定すれば良いか分からないのでアドバイスお願い致します 2 2023/06/07 12:25
- JavaScript clear機能を失わずにファイルアップロード機能を作成したい 3 2023/06/10 16:12
- PHP php ログイン 1 2022/11/01 00:24
- HTML・CSS CSSでサイトの背景に画像を組み込みたいのですが反映されません 2 2022/11/22 16:21
- HTML・CSS cssが効かなくて困ってます 1 2023/01/01 23:57
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
HPを開くとダウンロードページ...
-
index.php index.html
-
cakePHP デザイナーの分業
-
onedrive にexcelファイルをア...
-
.phpと.incファイルの違いはな...
-
トランザクションが原因?DBに...
-
フォントの色を変えるには?
-
現在位置より2つ上のディレク...
-
CFileDialogの最初のディレクト...
-
VBSの「MsgBox」について
-
3つ以上の論理積は利用可能なの...
-
php文字列中のシングルクオート...
-
PHPのif文でその処理を途中で抜...
-
MySQLでのdeadlockをPHPで検出...
-
.phpファイルが、表示されない
-
FTPコマンドでディレクトリごと...
-
C# メール送信ついて困っています
-
URLの変わらないページをPHPで...
-
「@$変数」の「@の意味は?」
-
WinとLinux両方で通じる書き方...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
HPを開くとダウンロードページ...
-
社内イントラネットのHPにアク...
-
phpのheader関数でページ移動さ...
-
VScode文字の色の変更について
-
index.phpって何ですか? 具体...
-
application/x-httpd-php
-
phpでjarファイルを実行したい
-
public_htmlと同じ階層にあるフ...
-
phpで大量のhtmlを任意の順番で...
-
PHPのクエリ付(?)URLの転送
-
htmlの入力フォームからphpに値...
-
ヒアドキュメントの中で別ファ...
-
PHP 正規表現について教えて下さい
-
file_get_contents()の動きが読...
-
PHPとhtmlの関係
-
phpでAuthorizationヘッダを追加
-
PHPでの複数ファイル出力
-
すごく初歩的な質問です
-
共通ファイルの読み込み
-
PHPをhtmlに読み込んだファイル...
おすすめ情報