質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.50%
PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

Q&A

解決済

1回答

55193閲覧

<?php内で取得した変数を<html>内で使う方法

my_port_is_53

総合スコア43

PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

0グッド

2クリップ

投稿2015/08/18 05:07

現在、FFFTPを使って簡易掲示板を作っています。
掲示板への投稿と削除はできるようになったのですが、
編集の実装で躓きました。
正確には編集の機能だけなら実装できるのですが、
編集する際に、書き込み番号を選択した後に、
編集前のデータを編集フォームに入力済み状態で表示させることができません。

yahoo知恵袋の質問でhtmlタグのinputの中にphpの変数を入れるやり方
を参考に以下のコードを記述しました。

php

1//編集フォームからPOSTでフォームの番号を受け取り 2$rew = $_POST['rew_num']; 3//数字判定 4if(ctype_digit($del)){ 5//userdataを書き込み 6$fp = fopen('userdata.txt', 'ab'); 7//newuserdataはtmp的な位置づけ 8//newuserdataを空にする 9$fp1 = fopen('newuserdata.txt', 'w'); 10fclose($fp1); 11//一時的にuserdataの中身をnewuserdataに移す 12$fp1 = fopen('newuserdata.txt', 'ab'); 13 14//userdataの中身を回すために$trimmedにuserdataの中身を移す 15$trimmed = file('userdata.txt', FILE_IGNORE_NEW_LINES | FILE_SKIP_EMPTY_LINES); 16//$trimmedの行数カウント 17foreach ($trimmed as $trimmed_num => $trimmed){ 18//$trimmedを<>で配列に分割し$trimmed_arrayに格納 19$trimmed_array = explode("<>",$trimmed); 20//編集フォームから受け取った値が、一致しているか比較 21//一致すれば、そのままデータを格納 22 if($rew == $trimmed_array[0]){ 23 24$data0 = $trimmed_array[0]; 25$data1 = $trimmed_array[1]; 26$data2 = $trimmed_array[2]; 27$data3 = $trimmed_array[3]; 28 29} 30} 31 32fclose($fp1); 33fclose($fp); 34} 35?> 36 37 38//HTML処理 39<HTML> 40<HEAD> 41<META HTTP EQUIV='Content-Type' CONTENT='text/html;charset=UTF-8'> 42<TITLE>編集指定用フォーム</TITLE> 43</HEAD> 44<BODY> 45//kadainew_rew_form.phpにお名前、コメントを送信 46<FORM ACTION="kadai2_5_1.php" METHOD="post"> 47//ここの$data1を上のphpの変数として使用したい 48お名前<INPUT TYPE = 'text' NAME = 'name' SIZE = '30' value = "'.$data1.'"><BR> 49//ここの$data2を上のphpの変数として使用したい 50コメント<INPUT TYPE = 'text' NAME = 'comment' SIZE = '30' value = $data2><BR> 51<INPUT TYPE = "submit" VALUE = "送信"> 52//kadai2_5_1.phpの分岐で使用 53<input type="hidden" name='on' value="rewon"> 54//ここの$rewを上のphpの変数として使いたい 55<input type="hidden" name='rew1' value=$rew> 56 57</FORM> 58</BODY> 59</HTML> 60 61

しかし、フォームには
.$data1.
といった表示しかされませんでした。

フォームからフォームに変数を渡すにはどうすればよいでしょうか?
よろしくお願い致します。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

ベストアンサー

お名前<INPUT TYPE = 'text' NAME = 'name' SIZE = '30' value = "'.$data1.'"><BR>

は、<?php ?>で囲まれていないので、HTML領域ですよね?
ですので、PHPのコードとして$data1を認識してくれません。

お名前<INPUT TYPE = 'text' NAME = 'name' SIZE = '30' value = "<?php echo $data1;?>"><BR>

とするか、

<?php echo "お名前<INPUT TYPE = 'text' NAME = 'name' SIZE = '30' value = '".$data1."'><BR>"; ?>

としてみましょう。

投稿2015/08/18 05:25

Jake

総合スコア289

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

my_port_is_53

2015/08/18 06:23

迅速な返信ありがとうございます。 仰る通りにコードを入力した処無事に入力済み状態で表示させることが出来ました。 ありがとうございます。 html領域ではphpの変数とかを反映させるためには、echoが必要なのですね。 C言語のprintfのようなものだと思っていたので教えて頂き目から鱗です。 ありがとうございました。
otn

2015/08/18 14:35

実際に使うときは、単に$data1でなく、htmlspecialchars($data1, ENT_QUOTES)をechoしてくださいね。
my_port_is_53

2015/08/19 10:12

わかりました。 セキュリティ面での対策も教えて頂きありがとうございます。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.50%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問