phpファイルに書いたhtmlソースが表示される

このQ&Aのポイント
  • phpファイルに書いたhtmlソースがブラウザに表示されてしまう問題について
  • 使用しているphpファイルにおいて、html部分のソースのみが表示されてしまう現象が発生しています。そして、処理結果も表示されません。
  • 原因として考えられるのは、phpの記述(<?php・・・?>)以外のソースが処理されていないことです。解決策としては、正しくphpのタグを使用しているか確認し、phpファイルが正常に実行されるように修正することです。
回答を見る
  • ベストアンサー

phpファイルに書いたhtmlソースが表示される

php側で用意した変数にhtmlタグと合わせて $tempHTML=<tr><td>$data1</td><td>$data2</td></tr>"; のように文字列を代入して、表形式でデータを表示させようとしているのですが、 なぜかhtml部分のソースのみがブラウザに表示されてしまいます。 ファイル名"search_result.php" --------------------------- <html> <body> <script type="text/javascript"><!-- function dataFunc(txt){ alert("search_result_data"); document.search_result.search_result_data.value = txt; } --></script> </head> <body> <form name ="search_result" method="post action="./search_result_test.php"> <input type="hidden" name="search_result_data" value=""></input> </form> <script type="text/php"> <?php 処理の記述 ?> </script> </body> </html> --------------------------- と書いて実行させると、 --------------------------- <html> <body> <script type="text/javascript"><!-- function dataFunc(txt){ alert("search_result_data"); document.search_result.search_result_data.value = txt; } --></script> </head> <body> <form name ="search_result" method="post action="./search_result_test.php"> <input type="hidden" name="search_result_data" value=""></input> </form> <script type="text/php"> </script> </body> </html> --------------------------- と表示され、phpの記述(<?php・・・?>)以外のソースがまるまるブラウザで表示されてしまいます。 しかも肝心の処理結果も表示できません。 どなたか原因が分かる方がいらっしゃったら教えていただけますか?

  • PHP
  • 回答数3
  • ありがとう数4

質問者が選んだベストアンサー

  • ベストアンサー
noname#129900
noname#129900
回答No.2

もっと小規模なコードにして考えればわかりやすいのですが。 <?php $data = 'XXX'; $tempHTML = '<div id="datatable">' . $data . '</div>' . PHP_EOL; ?> <html><head></head><body> <div><?php echo $tempHTML; ?></div> </body></html> HTMLを囲う時は、シングルクォーテーションで。 PHP_EOLは改行を表し、ソース整形の為に付与しています。

kreboa
質問者

お礼

回答ありがとうございます。 プログラムの中身を大幅に削って、かなり小規模なコードにして どこに原因があるのかを調べてみました。 するとphpの処理の先頭に書いた header('Content-Type: text/html; charset=UTF-8'); が原因でした。 ダブルクォートがタグに書かれているときは、シングルクォートでくくるんですね。参考になりました。 PHP_EOLも初めてしました。ありがとうございます。

その他の回答 (2)

  • abacabu
  • ベストアンサー率37% (250/663)
回答No.3

PHPの方の知識が無いのでわかりませんが HTMLは趣味でいじった経験が有ります。 あの・・・何のHTMLかうたってないので恐らくタグとして認識されていないと思いますよ。 あと他の方も言われていますが、冒頭にbodyで始まってheadで締めるという誤った記述があります。 あとフォーム内に=”これ無駄に多い部分が有る気がします。 <form name ="search_result" method="post action="./search_result_test.php"> 上記記述が何となくおかしいです。 methodの後の”の前の数と締めの数が合いません。 過去に書いた経験があるだけでだいぶ経つので忘れました… そういうところからタグという認識でなく文字列としてにんしきされているのではないですか?                               

kreboa
質問者

お礼

回答ありがとうございます。 プログラムの中身を大幅に削って、どこに原因があるのかを調べてみると、 phpの処理の先頭に書いた header('Content-Type: text/html; charset=UTF-8'); が原因でした。そのせいでabacabuさんのおっしゃるように タグを正しく認識してくれなかったのだと思います。 説明に載せていない部分が原因で、 丁寧に説明していただいたのに申し訳ありません。

  • noris02
  • ベストアンサー率74% (56/75)
回答No.1

私には、意味不明です。。 <html> <body> ←?? <script type="text/javascript"><!-- function dataFunc(txt){ alert("search_result_data"); document.search_result.search_result_data.value = txt; ←??? } --></script> </head> ←???? <body> ←????? <form name ="search_result" method="post action="./search_result_test.php">← 「”」? <input type="hidden" name="search_result_data" value=""></input> </form> <script type="text/php">←?????? <?php 処理の記述 ?> </script> </body> </html>

kreboa
質問者

お礼

回答ありがとうございます。 説明のためのソースに誤りが多々あり、意味不明なプログラムになってしまいました。今後は気をつけます。 無事解決いたしました。

関連するQ&A

  • ソースコードに読み込み側phpの結果を表示させたい

    http://itpro.nikkeibp.co.jp/article/COLUMN/20060525/239029/?ST=develop このページではajaxを使ってhtmlファイルにphpファイルを読み込ませるサンプルが紹介されていますが、このサンプルを実際にブラウザで表示した後にctrl+Uで開くソースコードでは↓のようになっています。 <body> <form name="fm"> ISBNコード: <input type="text" name="isbn" size="30" /> <input type="button" value="送信" onclick="send()" /> <div id="result"></div> </form> </body> 読み込み側のphpファイルの内容も↓のようにソースコードに表示させたいです。 <body> <form name="fm"> ISBNコード: <input type="text" name="isbn" size="30" />4-7981-1070-1 <input type="button" value="送信" onclick="send()" /> <div id="result">XMLデータベース入門 NeoCore/XprioriでXMLDBを極める!</div> </form> </body>

    • ベストアンサー
    • AJAX
  • HTMLとPHPのデータのやり取りで問題発生

    HTMLサイドで<form> のsubmit ボタンで、あるデータをPHPスクリプトに送った後、PHPサイドの画面(特に何も表示はしないので真っ白)になったまま、HTMLの画面に戻ってくれません。 PHPサイドではHTML側から送ったデータに基づいて、単純な2進2ビットのデータファイルを作るだけで,この部分はちゃんと働いています。HTMLページは表示されたまま、PHPにはバックグラウンドで仕事をしてもらいたいのですが、やり方がよくわかりません。 お知恵を貸していただける方、よろしく教えてください。お願いします。 自分が使っているテストプログラムを載せておきます。 HTMLサイド <table border="1"> <tr> <td> <form method="get" action="attenuate.php"> <input type="submit" value="1:1"> <input type="hidden" value="01" name="select"> </form> </td> <td> <form method="get" action="attenuate.php"> <input type="submit" value="2:1"> <input type="hidden" value="10" name="select"> </form> </td> <td> <form method="get" action="attenuate.php"> <input type="submit" value="5:1"> <input type="hidden" value="11" name="select"> </form> </td> <td> <form method="get" action="attenuate.php"> <input type="submit" value="Amplify"> <input type="hidden" value="00" name="select"> </form> </td> </tr> </table> PHPサイド  file: attenuate.php <html> <head></head> <body> <?php $fp=fopen("attenuation.txt","w"); switch($_GET['select']) { case '00': fwrite($fp,"00");break; case '00': fwrite($fp,"01");break; case '00': fwrite($fp,"10");break; case '00': fwrite($fp,"11");break; } fclose($fp); ?> </body> </html>

    • ベストアンサー
    • PHP
  • PHPでのメールフォームにつてい。下記のソースで送信・受信できますか?

    それから、何処に、送信先のアドレスを入れればいいでしょうか?? <html lang="ja"> <head> <META http-equiv="Content-Type" content="text/html; charset=Shift_JIS"> <title>mail</title> </head> <body> <br> <h3>Mail Form</h3> <!-- error --> <?PHPif ($error) { echo $error; }else{?><!-- form --> <form enctype="multipart/form-data" action="<?PHP echo EXE; ?>" method="post"> <table> <tr> <td>題名</td> <td><input type="text" name="subj" size="34" value="題名"></td> </tr> <tr> <td>アドレス</td> <td><input type="text" name="mail" size="34" value="あなたのアドレス"></td> </tr> <tr> <td>名前</td> <td><input type="text" name="name" size="34" value="ここに名前"</td> </tr> <tr> <td>内容</td> <td> <textarea name="???" cols="50" rows="10" wrap="soft"> ここに内容</textarea> </td> </tr> <tr> <td> File </td><td><input type="file" name="file" size="28"> <input type="submit" value="送信"> </td></tr> </table> <br> </body></html>

    • ベストアンサー
    • PHP
  • サブウィンドウから親ウィンドウのフォームへの書き込み

    よろしくお願いします。 やりたい事は サブウィンドウを開いて サブウィンドウのテキストボックスに入力した内容を 親ウィンドウのテキストボックスに書き込みたいのです。 以下親ウィンドウ(oya.html) <html> <head> <script type="text/javascript"> <!-- function search(){ window.open( 'sub.html' ,'childwin', "width=350,height=250,location=no,menubar=no,toolbar=no,resizable=yes,scrollbars=yes" ); } --> </script> </head> <body> <form name="mainform" method="POST" action="hoge.php"> <TABLE border="1"> <TR> <TD>A:<INPUT type="text" name="A" id="A"></TD> </TR> <TR> <TD>B:<INPUT type="text" name="B" id="B"></TD> </TR> <TR> <TD><input type="button" onclick="search();return false;" value="サブウィンドウ"></TD> </TR> <TR> <TD><center><input type="submit" name="exec" value="確認"></center></TD> </TR> </TABLE> </form> </body> </html> 以下サブウィンドウ(sub.html) <html> <head> <script type="text/javascript"> <!-- --> </script> </head> <body> <form name="subform"> <TABLE border="1"> <TR> <TD>A:<INPUT type="text" name="A" id="A"></TD> </TR> <TR> <TD>B:<INPUT type="text" name="B" id="B"></TD> </TR> <TR> <TD><input type="button" value="入力"></TD> </TR> </TABLE> </form> </body> </html> 以上です。親ウィンドウの中にformが入れ子状態になってしまうため javascriptで対応できないのかと思い質問させて頂きました。 ご教示お願いいたします。

  • forで作成したフォームの値を更にPHPへ渡して表示する方法

    初心者です。 現在、PHPでforを利用し、繰り返しフォームを表示 させた後、その表示されたフォームへ入力をし、更に 違うPHPで入力された値を出力させようとしているのですが、 最終の出力が出来ずに悩んでおります。 繰り返しでフォームを作成するまでは出来たのですが、 どなたか御助力頂けたら助かります。 ---------------------------------------------------- <form.html> <html> <head> <title>it1</title> </head> <body> <form name="form" action="./it.php" method="POST"> <b>ラジオ選択<br> <input name="machine" type="radio" value="24">24<br> <input name="machine" type="radio" value="48">48<br> <input name="machine" type="radio" value="24">50</b><br><br> </body> <input type="submit" name="Submit" value="設定"> </form> </html> ------------------------------------------------------ <it.php> <?php $a = $_REQUEST["machine"]; ?> <html> <body> <p>入力テキストボックス表示</p> <?php for ($c=0; $c<$a; $c++){ $var[$c] += $var[$c]; $dest[$c] += $dest[$c]; $no[$c] += $c+1; } ?> <table> <tr> <td><center> <form name="form" action="./it2.php" method="POST"> <td> <center> <b>vlan</b><br> <?php for ($i=0; $i<count($var); $i++) { "<form name="form" action="./it2.php" method="POST">" print("fa0/${no[$i]}<input type=\"text\" name=\"${var[$i]}\" size=\"3\" maxlength=\"3\"><br>\n"); } ?> </td> <td> <b>description</b><br> <?php for ($i=0; $i<count($dest); $i++) { print("<input type=\"text\" name=\"${dest[$i]}\" size=\"15\" maxlength=\"15\"><br>\n"); } ?> </td> </tr> </table> <input type="submit" name="Submit" value="設定"> </form> </body> </html> -------------------------------------------------------- 以降の出力ソースに関して、難儀中。

    • ベストアンサー
    • PHP
  • PHP初心者です。基本的な所でつまづいています。

    PHP初心者です。基本的な所でつまづいています。  PHP初心者です。掲示板を自分で考えて作っているのですが、 わからないところがあります。PHPを勉強してから、まだ月日が 経っていないので基本的なことでつまづいています。 どなたかご教授下さい。 タイプ10代・20代・30代をselectから選び、食べ物をインプット し、radioボタンで好みを選びます。登録ボタンを押すとテキスト ファイルlist.txtに書き込まれ、form1.phpに10代・20代・30代の selectボタンを作り、その中から選び表示ボタンをクリック する。  もし、10代を選んだらそのデータだけを表示するように したいのですが、登録してテキストファイルに書き込まれては いるのですが、表示ボタンを押しデータを表示する所が、 わからないのでどなたかご教授下さい。    サイトや書籍で探しては見たのですが、基本的なことだと思う のですが、あまり詳しく載っているのがなく困っています。  もし、PHP初心者でもわかるサイト&書籍があれば教えて いただけませんか? form.html <html> <meta http-equiv="content-type" content="text/html; charset=euc-jp"> <body> <form method="post" action="form.php"> タイプ:<select name="type"> <option value="10代">10代</option> <option value="20代">20代</option> <option value="30代">30代</option> </select><br><br> 食べ物:<input type="text" name="tabemono" size=10><br><br> <input type="radio" name="konomi" value="好き">好き <input type="radio" name="konomi" value="嫌い">嫌い <input type="radio" name="konomi" value="どちらでもない">どちらでもない<br><br> <input type="submit" value="登録"> </form> </body> </html> form.php <html> <meta http-equiv="content-type" content="text/html; charset=euc-jp"> <body> <? $type=$_POST["type"]; $tabemono=$_POST["tabemono"]; $konomi=$_POST["konomi"]; $data=$type.",".$tabemono.",".$konomi."\n"; $f=fopen("list.txt","a"); fputs($f,$data); fclose($f); ?> </body> </html> テキストファイルの書込みは出来ています。    ここから先の表示ボタンを押しデータを表示する所が、 わからないです。 form1.php <html> <meta http-equiv="content-type" content="text/html; charset=euc-jp"> <body> 分類:<select name="type"> <option value="10代">10代</option> <option value="20代">20代</option> <option value="30代">30代</option> </select> <input type="submit" value="表示" name="btn"><br> <hr> <? $f=file("list.txt"); while( list($key,$value)=each($f)){ $a=split(",",$value); } ?> </body> </html>  実用的ではないかと思われますが、宜しくお願い致します。

    • ベストアンサー
    • PHP
  • PHPのお問い合わせフォームについて

    こんにちは、セレクトボックスの選択部分を変更するとフォームの内容が変わるというフォームを作っているんですが色々試しても何がどうおかしいのかわからないので質問させていただきます。 PHP初心者で触り始めて間もないのでわかりやすく教えてもらえると嬉しいです。 多分色々とおかしいことになってると思いますがよろしくお願いいたします。 【index.html】 <!doctype html> <html lang="ja"> <head> <meta charset="UTF-8"> <title>Document</title> <style type="text/css"> fieldset{ border: none; } </style> <script type="text/javascript"> function setForm(ex) { var target = ex.value; var group = ex.form.getElementsByTagName("FIELDSET"); var i=0, fs; while(fs=group[i++]) fs.style.display = fs.id == target?"block":"none"; } </script> </head> <body> <form action="form.php" method="post"> <table> <tr> <td>用件</td> <td> <select name="select1" onchange="setForm(this)"> <option value="">選択してください</option> <option value="A">ご質問</option> <option value="B">資料請求</option> <option value="A">その他</option> </select></td> </tr> </table> <fieldset id="A"> <table> <tr> <td>お名前</td> <td><input type="text" name="name" value=""></td> </tr> <tr> <td>Mail</td> <td><input type="text" name="mail" value=""></td> </tr> <tr> <td>サイトを知ったきっかけ</td> <td><input type="checkbox" name="chance[0]" value="friend">知り合い <input type="checkbox" name="chance[1]" value="serch">検索エンジン<td> </tr> <tr> <td>ご質問内容</td> <td><textarea name="message" cols="60" rows="5"></textarea></td> </tr> </table> </fieldset> <fieldset id="B"> <table> <tr> <td>お名前</td> <td><input type="text" name="name" value=""></td> </tr> <tr> <td>Mail</td> <td><input type="text" name="mail" value=""></td> </tr> <tr> <td>性別</td> <td><input type="radio" name="gender" value="man">男 <input type="radio" name="gender" vakue="woman">女</td> </tr> <tr> <td>住所</td> <td><input type="text" name="address" value=""></td> </tr> </table> </fieldset> <input type="submit" value="送信する" /> </form> </body> </html> </html> 【form.php】 <!doctype html> <html lang="ja"> <head> <meta charset="UTF-8"> <title>Document</title> </head> <body> <?php mb_language("japanese"); mb_internal_encoding("utf-8"); if(!empty($_POST['mail'])){ $to=$_POST['mail']; $name=$_POST['name']; $chance=$_POST['chance']; $message=$_POST['message']; $gender=$_POST['gender']; $address=$_POST['address']; $form=mb_encode_mimeheader(mb_convert_encoding("自分の名前","JIS","UTF-8"))."<aaa@aaa.com>"; $success=mb_send_mail($to,"名前:".$name."サイトを知ったきっかけ:".$chance."お問い合せ内容:".$messagge."性別:".$gender."住所:".$address,"from:".$from); } ?> <?php if ($success) { print('送信しました。'); } else { print('送信に失敗しました。'); } ?> </body> </html> よろしくお願いします!!!!

    • 締切済み
    • PHP
  • 検索結果をサイズ指定した新規ウインドウで表示する

    はじめまして。ATRYといいます。よろしくお願いします。 [search.html]でキーワードをformで入力してもらい、[result.php]で検索、結果を表示させています。 現在は、 --------------[search.html]--------------- (略) <FORM action="result.php" method="post" target="_blank"> キーワード: <INPUT type="text" name="keyword"> <INPUT type="submit" value="GO"> </FORM> (略) ------------------------------------------ のように、ターゲット指定で新規ウインドウを立てていますが、今度はサイズ指定をしたウインドウを立てたいと思います。 JavaScriptでwindow.open()を使うことはわかるのですが、いい方法が浮かびません。たとえば、 --------------[example.html]---------------- (略) <FORM> キーワード: <INPUT type="text" name="keyword"> <INPUT type="button" value="GO" onClick="javascript:window.open('result.php','','width=300,height=500')"> </FORM> (略) -------------------------------------------- としても新規ウインドウは開かず、思う結果にはなりません。何か大きなところを見逃してるような気がするのですが、解決できないでいるので、アドバイスをよろしくお願いいたします。

    • 締切済み
    • PHP
  • phpの掲示板で新しい順に表示したい

    php初心者です。 phpで掲示板を作っています。 新しい順に表示したいのですが、やり方がわかりません。 古い順に表示するやり方はわかるのですが、どうやったらよいでしょうか。 古い順のソースです <html> <head> <title>一行掲示板</title> </head> <body> <h2>一行掲示板</h2> 書き込む内容を入力してください。<hr color="black"> <form name="form" action="./sample01.php" method="POST"> タイトル      <input type=text name="title" action="./sample01.php" size="30" method="POST"><br><br> 名前          <input type=text name="namae" action="./sample01.php" size="30" method="POST"><br><br> メッセージ  <textarea name="body" rows="5" cols="50"></textarea> <input name="write" type="submit" value="書込"> <input name="write" type="reset" value="リセット"><hr> </form> <?php $data = file("../php/test1.txt"); for($i=0; $i<sizeof($data); $i++){ print "タイトル.${i}:<br>\n名前.${i}:<br>\n記事NO.${i}:${data[$i]}<br>\n<hr>"; } ?> <br> <a href="../phpcollect/index.html">トップページへ</a> </body> </html> どうかわかる方おりましたらご教授お願いします。

    • 締切済み
    • PHP
  • PHPとJSを使ったお問い合わせフォームについて

    こんにちは、セレクトボックスの選択部分を変更するとフォームの内容が変わるというフォームを作っているんですが色々試しても何がどうおかしいのかわからないので質問させていただきます。 PHPは特に触り始めて間もないのでわかりやすく教えてもらえると嬉しいです。 多分色々とおかしいことになってると思いますが出来るだけ分かりやすくよろしくお願いいたします。 【index.html】 <!doctype html> <html lang="ja"> <head> <meta charset="UTF-8"> <title>Document</title> <style type="text/css"> fieldset{ border: none; } </style> <script type="text/javascript"> function setForm(ex) { var target = ex.value; var group = ex.form.getElementsByTagName("FIELDSET"); var i=0, fs; while(fs=group[i++]) fs.style.display = fs.id == target?"block":"none"; } </script> </head> <body> <form action="form.php" method="post"> <table> <tr> <td>用件</td> <td> <select name="select1" onchange="setForm(this)"> <option value="">選択してください</option> <option value="A">ご質問</option> <option value="B">資料請求</option> <option value="A">その他</option> </select></td> </tr> </table> <fieldset id="A"> <table> <tr> <td>お名前</td> <td><input type="text" name="name" value=""></td> </tr> <tr> <td>Mail</td> <td><input type="text" name="mail" value=""></td> </tr> <tr> <td>サイトを知ったきっかけ</td> <td><input type="checkbox" name="chance[0]" value="friend">知り合い <input type="checkbox" name="chance[1]" value="serch">検索エンジン<td> </tr> <tr> <td>ご質問内容</td> <td><textarea name="message" cols="60" rows="5"></textarea></td> </tr> </table> </fieldset> <fieldset id="B"> <table> <tr> <td>お名前</td> <td><input type="text" name="name" value=""></td> </tr> <tr> <td>Mail</td> <td><input type="text" name="mail" value=""></td> </tr> <tr> <td>性別</td> <td><input type="radio" name="gender" value="man">男 <input type="radio" name="gender" vakue="woman">女</td> </tr> <tr> <td>住所</td> <td><input type="text" name="address" value=""></td> </tr> </table> </fieldset> <input type="submit" value="送信する" /> </form> </body> </html> </html> 【form.php】 <!doctype html> <html lang="ja"> <head> <meta charset="UTF-8"> <title>Document</title> </head> <body> <?php mb_language("japanese"); mb_internal_encoding("utf-8"); if(!empty($_POST['mail'])){ $to=$_POST['mail']; $name=$_POST['name']; $chance=$_POST['chance']; $message=$_POST['message']; $gender=$_POST['gender']; $address=$_POST['address']; $form=mb_encode_mimeheader(mb_convert_encoding("自分の名前","JIS","UTF-8"))."<aaa@aaa.com>"; $success=mb_send_mail($to,"名前:".$name."サイトを知ったきっかけ:".$chance."お問い合せ内容:".$messagge."性別:".$gender."住所:".$address,"from:".$from); } ?> <?php if ($success) { print('送信しました。'); } else { print('送信に失敗しました。'); } ?> </body> </html> よろしくお願いします!!!!

専門家に質問してみよう