あるサイトを作っています。
サイトのメイン部分の上段に、
<?php include("*****.php"); ?>
でインクルードすると、それより下のphpが絡んだ部分が表示されなくなります。
インクルードした内容はきちんと表示されます。
また、
<?php include("******.php"); ?>
をコメントアウトしてみると、それより下のphpが絡んだ部分は表示されます。
調べてみてるのですが答えが見つかりません。
どういった問題によりこういうことが起きるのでしょうか?
アドバイスをいただけないでしょうか。
よろしくお願いします。
No.1
- 回答日時:
>どういった問題によりこういうことが起きるのでしょうか?
インクルードした*****.phpのタグが正常に閉じてないから。
インクルードすると
「<?php include("******.php"); ?>が無かった事になって、その代わり、その位置に******.phpの中身が挿入される」
のです。
******.phpの一番最後に「こっから後ろは全部コメントだよ」って書いてあったら、<?php include("******.php"); ?>のある行から最後まで全部がコメントになってしまいます。
同様に、******.phpの「一番最後のタグが閉じてない」と、そこから後ろにあるすべてが「タグの中に書かれた物」になってしまって、何も表示されなくなるでしょう。
この回答への補足
他にも同じように<?php include~~~~~; ?>があるのですが、それについては問題なくすべてが表示されています。
?>で閉じたということにはなっていないということなのでしょうか?
具体的にどうしたらいいか見えてこなくてつまづいています。
良い対処法があれば教えていただけないでしょうか。
No.2
- 回答日時:
include先のPHPみないと解決するわけない
include先PHPの出力内容でタグ閉じしてないのがあるとか、そういうのが原因だろう、って#1の人は言っているのです。
簡単にいえば、「******.php」の記述ミスである可能性が高い。
それ以上の可能性はコード見ないと不明
この回答への補足
include先のファイルは確認しているのですが、動作も正常でタグ閉じ等記述ミスはないのでは認識しているのですが、相談をさせていただいたような問題が生じているということはやはりinclude先のファイルの内容の記述の仕方等に問題があるのだとは思います。
図々しいかとは思いますが、出力部分での記述ミスがあればご指摘いただけないでしょうか。
include先のPHPファイルは以下のようなコードです。
<?php
$debug = false;
$url = "localhost";
$user = "DBユーザー名";
$pass = "DBパスワード";
$db = "DB名";
$link = mysql_connect($url,$user,$pass) or die("No Connected");
$sdb = mysql_select_db($db,$link) or die("No Connected");
if($debug) echo_r($_GET);
mysql_set_charset('utf8');
if($_SERVER["REQUEST_METHOD"] != "GET") {
echo "Error: invalid method";
exit();
}
$query = "SELECT * FROM テーブル名 ORDER BY id DESC limit 4";
$result = mysql_query($query) or die($query . '<br />' . mysql_error() . '<hr />');
$num_rows = mysql_num_rows($result);
?>
<!DOCTYPE html>
<html lang="ja">
<head>
<meta charset="UTF-8">
<title>新着情報</title>
</head>
<body>
<?php while($row = mysql_fetch_assoc($result)): ?>
<div class="row">
<div id="contents" class="span12 area-ma">
<h2 class="f2"><b>■<a style="color:#2d2d2d;"href="recent.php">新着情報</a></b></h2>(5)
<div class="row-fluid">
<!--span3-->
<div class="span3">
<?php echo '<img src="get_image.php?id=' . $row['id'] . '" width="" height="">' ?>
<div class="fl"style="margin-left: 6px;">
<div>
<font class="c2">場所</font>
<font class="c0"><?php echo $row['area']; ?></font>
</div>
<div>
<font class="c2">名前</font>
<font class="c0"><?php echo $row['name']; ?></font>
</div>
<form action="detail.php" method="GET" class="detail">
<input type="submit" value="detail">
<input type="hidden" name="key" value="<?php echo $row['name'] ?>">
</form>
</div>
</div>
</div>
</div>
</div>
<?php endwhile; ?>
</body>
</html>
No.3
- 回答日時:
>include先のPHPファイルは以下のようなコードです。
(中略)
><?php endwhile; ?>
>
></body>
></html>
って、</html>でhtml文書が終わっていますよね?それ以降に何をブラウザに返そうとしているんでしょうか?
ブラウザ側で受け取っているhtmlソースを確認してください。ちゃんと受け取っているけど、その前にhtmlが終了しているので(ブラウザが)レンダリングしていないだけではありませんか?
この回答への補足
<form>~~~~</form>
という部分を、元のページのメイン画面の一部に表示させようとしています。
これは単純に、<html></html>や<body></body>タグを消して、
phpの部分と<form></form>のみ書いてそれをincludeするということでしょうか?
だいぶ頭の中がこんがらがってしまい要領をつかめずにいます。申し訳ありません。。
No.4ベストアンサー
- 回答日時:
ANo.3です
>これは単純に、<html></html>や<body></body>タグを消して、
>phpの部分と<form></form>のみ書いてそれをincludeするということでしょうか?
いいえ。開始タグまで消してしまってはダメです。
前の回答でも書きましたが、今現在どういうhtmlソースがブラウザに返っているか(ブラウザの「ソース表示」で)確認されましたか?
そして「どういうhtmlソースを返せばいいか」をちゃんと設計してからphpソースを書いてください。返すhtmlが(ブラウザがどうレンダリングするかはひとまず置くとしても【正しい】htmlが)書けない状態でphpスクリプトを書くことはできません(php以前の問題です)。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- HTML・CSS インクルードした要素がヘッダーにかぶってしまう 3 2022/09/13 17:35
- WordPress(ワードプレス) wordpressでphpを読み込みたい 1 2022/10/30 23:40
- その他(プログラミング・Web制作) .htaccessファイルの修正がこれで問題ないかどうか 1 2022/04/21 08:42
- MySQL #1062 - '0' は索引 'PRIMARY' で重複しています。とでています。 1 2023/01/01 06:13
- PHP PHP MySql ページング 2 2022/09/20 06:38
- MySQL MySQL,JavaScript,PHPコードの結果を表示する方法を教えてください。 1 2023/02/13 17:49
- PHP PHP ページング データベース 1 2022/06/16 10:30
- PHP PHPで訪問回数を表示するカウンタを作成したい 3 2023/05/27 07:09
- その他(プログラミング・Web制作) WEBアプリ開発に必要な言語 5 2023/06/28 16:57
- JavaScript ラジオボタンによるフォームの開閉を行いたい 3 2022/03/31 21:30
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
九州各地の美味しいものをお取...
-
php リロードしない(再読み込...
-
php セレクトボックス 分岐 ...
-
ランチャの作り方
-
階層が違う場合の絶対パス相対...
-
連想配列を含むヒアドキュメン...
-
php 完了画面の送信メールのコ...
-
TCPDFについて
-
CFileDialogの最初のディレクト...
-
フォントの色を変えるには?
-
onedrive にexcelファイルをア...
-
phpのftp_get()でエラーが出ます。
-
phpでget_headers()が使えない?
-
Content-Typeが機能していない?
-
awsにApacheとPHPを入れて、何...
-
XAMPPでApacheが起動しなくなり...
-
PHPのif文でその処理を途中で抜...
-
ワードプレスサイト PHP8.0.25...
-
拡張子php画像をjpg画像等に変...
-
mb_send_mail関数が利用出来ない
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
centos6のlogにscript not foun...
-
正規表現を使い、URLで条件分岐...
-
階層が違う場合の絶対パス相対...
-
文字化けで混乱中です...
-
ロリポップでの.htaccess 設定
-
includeでHTMLファイルを呼出し...
-
PHP file_get_contents 503 ser...
-
バージョンアップしたら「次の...
-
PHPファイルのシンボリックリン...
-
htmlをphpにするにあたってデメ...
-
index.phpにbbs.phpを埋め込みたい
-
ランチャの作り方
-
ZendFrameWorkで、.htaccessを...
-
ドラえもんDVD 2112年ドラえも...
-
連想配列を含むヒアドキュメン...
-
数値から文字列へ変換後の先頭...
-
htaccessでphpとSSIを同時に動...
-
php リロードしない(再読み込...
-
onedrive にexcelファイルをア...
-
フォントの色を変えるには?
おすすめ情報