• 締切済み

php初歩的な質問1

<body> <h1>PHPのテストです</h1> <form action="9.php" method="POST"> <p><input type="text" size="20px" name="ad1"></p> <p><input type="submit" value="送信"></p> <?php print"ようこそ" ?> </form> </body> </html> 9というファイルに文章を転送するという作業を勉強してますが、 テキストに文字をいれてもphpでかこっても 真っ白い画面になってます。 エラーではないんですが、何故なんでしょうか? すいません。今日からphpの勉強に入った者です。

  • PHP
  • 回答数11
  • ありがとう数9

みんなの回答

回答No.11

>Parse error: syntax error, unexpected '$_POST' (T_VARIABLE) in C:\xampp\htdocs\9.php on line 26 parse error → 文法のエラー on line 26 → コードの26行目あたりにエラーの原因があります ということなんですね。 だからコードの26行目を書いていただくのが速いんですけど。。 今回はおおかた <?php echo $_POST['ad1']; ?> のechoの前に全角スペースが入ってるとかじゃないですか? 本のほうで、「ああああああああ」のように 送信した内容を表示させる部分にどのようなphpコードが記述されているか 確認してみて下さい。僕の書いた内容でも表示は出来るんですけど。 9.phpになにも記述せずに、6.phpから送信した内容が 9.phpから表示されることはありえないので。 手紙だけ受け取って開封していない、みたいなもんですからね。

yonbakukan
質問者

補足

すいません。度重なるご無礼とご指導>< できました。 echoの前に全角スペースが入ってるとかじゃないですか? これでした。 それと本で<?php echo $_POST['ad1']; ?> はやはり書くようです。 なんだかこの本ばらばらに書いてあってわかりにくいです。 ですが一転 <?php print"ようこそ"; print$_POSTS["ad1"]; print"様"; ?> と書いたのですが、様がでてきませんでした。 ?なんでしょうかね^^

回答No.10

OKです。 質問者さんがPHPで情報を送る仕組みについて勘違いしていることがわかりました。 サーバーだなんだの説明はこの際省きます。 まず、9.phpには6.phpから送信された情報を受け取って 表示させるコードを書かなければだめです。 現状だと、いくらformから9.phpに情報を送っても、 9.phpのほうでその情報を活用する手続きが書かれていない状態です、 9.phpには<form>~</form>もいりません。 代わりに、次のように書いてください。 <?php  echo $_POST['ad1']; ?> この$_POST['○○']というのは、 nameが◯◯のinput要素から送信されたデータ、 という意味だと思ってひとまず大丈夫です。 この場合はname="ad1"のテキストボックスから9.phpに 入力内容を送信するので、 9.phpのほうで$_POST['ad1']と書いて入力内容を表示させるわけです。

yonbakukan
質問者

補足

しかしですね、本では <?php  echo $_POST['ad1']; ?> とは書いてないのですが、でたエラーが Parse error: syntax error, unexpected '$_POST' (T_VARIABLE) in C:\xampp\htdocs\9.php on line 26 とでてます。 そこで本にデバックとあり C:\xampp\htdocs\9.phpと26という部分が太字になっています。 本では、ここがエラーの要因であるとなってます。 テキストボックスの中に書かれた字を 9に送った際、ああああああああああと書いた場合 画面にああああああああああとでないと本通りではないようなわけです。

  • agunuz
  • ベストアンサー率65% (288/438)
回答No.9

>ファイルはあるんですよ。でもテキストに入れた文字を送るという事が >PHPの技術?なんじゃないんすかね。 データを送るのはhtmlとhttpの仕組みです。送るのはブラウザで、受けとるのが(サーバで動作する)phpスクリプトです。で、phpスクリプトで受けとるのには $_POST というスーパーグローバル変数を使います。 #あまりに基礎の話なので、ここから説明するのは時間の無駄な気が・・・ http://www.php.net/manual/ja/reserved.variables.post.php ↑ これを読んで理解できないなら、まだphpスクリプトを書いてはいけません。 ごく簡略化して 【form.html】 <form action="test.php" method="post"> POSTするデータ:<input type="text" name="dataname" /> <input type="submit" /> </form> 【test.php】 <?php if (isset($_POST['dataname'])) { print htmlspecialchars($_POST['dataname'], ENT_QUOTES, 'sjis') . " がPOSTされました"; } else { print "データがPOSTされていません"; } これだけのファイルで試してください。文字セットはsjisで。本当はutf-8推奨ですが、メモ帳で作成されると面倒なので(汗

回答No.8

いちど6.phpというファイルをメモ帳で開いて、 その中身を全部コピペしてここに書いてもらえますか? できれば9.phpのファイルも同じように。 それが一番手っ取り早い気がしてきました。

yonbakukan
質問者

補足

えっとですね。 上にかきました <body> <h1>PHPのテストです</h1> <form action="9.php" method="POST"> <p><input type="text" size="20px" name="ad1"></p> <p><input type="submit" value="送信"></p> <?php print"ようこそ" ?> </form> </body> </html> が6なんですよ。 それで <p><input type="text" size="20px" name="ad1"></p> <p><input type="submit" value="送信"></p> <?php print"ようこそ" ?> の部分がないのが9です。これ以上の書き方はできないです。 これ以外書いてないですから。

回答No.7

>じゃあ、自分の考えている事と違う展開になっているという事なんでしょうか?  →ですから、この「自分の考えている事」というのは具体的になんですか?    送信ボタンを押したらページが変わって、    テキストボックスに入力した内容が表示されることですか?        それとも、送信ボタンを押したら9.phpというファイルに    直接入力内容が書き込まれることですか?    送信ボタンを押したら9.phpというファイルの内容が直接書き換わって、    ブラウザから9.phpを開くことでそれが直接表示される、というような動作は基本的にはしませんよ。    そういう処理の流れを想像しているなら完全に勘違いです。 >実際ですけど、テキストの文面を送るというのはPHPでできるんでしょうか?  →この場合だとテキストではなくテキストボックスのほうが正しい言い方ですけれども、    テキストボックスに入力した文面をサーバに送信すること、という意味でなら可能です。

yonbakukan
質問者

補足

>→この場合だとテキストではなくテキストボックスのほうが正しい言い方ですけれども、    テキストボックスに入力した文面をサーバに送信すること、という意味でなら可能です。 これに関しては失礼しました。 一応色々ためしてみたんですが、 ようこそ Notice: Undefined variable: _post in C:\xampp\htdocs\6.php on line 35 様 なる部分が展開的には6というページを開くとでてくるのですが actionのところにはつまりactionとは送付先だと思うんですが 変化がないんですよ。ならこれは一体なんの意味があるのかが、 本の趣旨がわからないわけです。 余談ですがテキストボックスに書かれた例えば、名前とかは 簡単に9というファイルに6に書いたものを9に移す事は簡単にできるもんなんでしょうか? ※適切じゃないかもしれませんが、つまり内容を違うファイルにつまり 6で”あ”とかいたら9を開いたら”あ”と出てくるみたいな感じです。

  • agunuz
  • ベストアンサー率65% (288/438)
回答No.6

#「サーバーサイドプログラムの仕組み」を理解して #いないんだろうとしか思えません。 form要素でPOSTしたデータは、phpスクリプトに送られるだけです(phpスクリプトでは、$_POSTなどに格納されて利用出来る)。 勝手に 9 というファイルが出来上がったりはしませんww >テキストの中に入った字を9というファイルに >転送したいんです。 9 という名前のファイルに転送したければ、form要素のaction属性に指定している(つまりformデータを受け取る)9.php というphpスクリプトで <?php file_put_contents('9', $_GET['ad1']); echo "9 に保存しました"; ?> とでもしないといけませんが、そういうことをする意味は何もないです(毎回上書きされるなんて作り方はあり得ない)。まして「9.php が存在する(受け取ったデータを適切に処理する)」ことが大前提です。 まずは受け取った(formから送られた)データを表示でもして確認するのが先です。

yonbakukan
質問者

補足

>勝手に 9 というファイルが出来上がったりはしませんww ファイルはあるんですよ。でもテキストに入れた文字を送るという事が PHPの技術?なんじゃないんすかね。 まだ一日目とかなんで解りませんけど。

回答No.5

補足を読んだ上で、 質問者さんが現時点でどういう状態に持って行きたいのかが (画面がどういう表示になれば成功なのかが) まったくわからないので、まずそこを整理することでしょうか。。 それがわからないままであれば、いくら実践してもしょうがないかと。 ちなみにformのactionを9.phpに指定していて、 9.phpにあらかじめなにも記述していないのであれば 現時点で送信ボタンを押しても画面は真っ白になるだけです。

yonbakukan
質問者

補足

>現時点で送信ボタンを押しても画面は真っ白になるだけです。 じゃあ、自分の考えている事と違う展開になっているという事なんでしょうか? 実際ですけど、テキストの文面を送るというのはPHPでできるんでしょうか?

回答No.4

質問者の意図がわからないのでもうちょっと詳しく書くことにしました。 ・送信ボタンをクリックしたら9.phpというページにジャンプして、  その画面でad1というテキストボックスに入力した文字を表示させたい場合  →9.phpをテキストエディタで開いて    <?php echo $_POST['ad1']?>と記入して保存。 ・送信ボタンをクリックした時に、9.phpというファイルの中身自体を書き換えたい場合  →ひとまずは9.phpじゃなくて9.txtの形式のほうがいいような。。    ファイルの形式を変更したらプロパティのセキュリティから書き込みの許可を設定(ググってください)  →<form action="9.php" method="POST">を次のように書き換え   <form action="" method="POST">  →次に自分自身で受け取った値($_POST['ad1'])を9.txtに書き込む処理を追加 以下を入力欄のあるphpファイルの一番上に書き込み <?php if(isset($_POST['ad1'])){ $file = "9.txt"; $crr = file_get_contents($file); $crr .= $_POST['ad1']."\n"; file_put_contents($file, $crr); } ?> →ここまでやって実際に送信したら9.txtを開いて送信内容が書き込まれているか確認 これでどうですか?だめですか?

yonbakukan
質問者

補足

明日実践してみようと思いますが、 たぶん本のながれから例えば、 申し込み用紙とかをテキストに入力しますよね。 その内容を送信して受け取り側が見れるようにするというのが これからの展開だと思うのです。 こうのうなかは解りませんが、こういう事をPHPではできるという事なんでしょうか?

回答No.3

9.phpのファイルをテキストエディタで開き、 以下のコードを書いて(コピペでいいです)上書き保存してください。 <?php echo $_POST['ad1']?> これで表示されないなら、XAMPPを入れていないなど、 環境の設定をそもそもしていない可能性がありますね。

  • shimix
  • ベストアンサー率54% (865/1590)
回答No.2

>しかし、転送に失敗したのか字がでてこないのです いや、ですから 9.php というスクリプトはどういうソースなのですか? <?php print $_POST['ad1']; ?> だけのスクリプトということでしょうか? <?php var_dump($_POST); ?> ではどうなりますか?

yonbakukan
質問者

補足

><?php print $_POST['ad1']; ?> ではなくてですね。 テキストの中に入った字を9というファイルに 転送したいんです。 つまり9は空なんです。 もしかして、本が意図している事と僕は違う事をやっているのかな? でも、後にアンケートを作るらしいのです。。。

関連するQ&A

  • phpそのよん

    <h1>PHPのテストです</h1> <form action="1.php" method="POST"> <p><input type="text" size="20px" name="ad1"></p> <p><input type="text" size="20px" name="ad2"></p> <p><input type="submit" value="送信"></p> <?php $ad1=$_POST["ad1"]; if($ad1==""){ print"違う"; } else{ print"合格"; print"様"; } ?> とやったんですが、まったく反応がありませんでした。 どこがいかんのでしょうーか?

    • ベストアンサー
    • PHP
  • phpについについて質問3

    テキストボックスの内容を送信する事は成功しました。 しかし複数のテキストボックスはできませんでした。 <h1>PHPのテストです</h1> <form action="9.php" method="POST"> <p><input type="text" size="20px" name="ad1"></p> <p><input type="text" size="20px" name="ad2"></p> <p><input type="submit" value="送信"></p> <?php print"ようこそ"; print$_POST["ad1"]; print$_POST["ad2"]; print"様"; ?> </form> これは間違いでしょうか? エラーもでてました Notice: Undefined index: ad1 in C:\xampp\htdocs\6.php on line 37 Notice: Undefined index: ad2 in C:\xampp\htdocs\6.php on line 38 様 とでてます すいません いつもいつも 入力された内容を受け取るという作業ができれば なんとなく一応目標達成だとおもいます

    • ベストアンサー
    • PHP
  • 複数のフォームから送信

    複数のフォームからtextの値を送信したいのですができますか?〒番号を入力して検索ボタンをおすと住所がでてきて最後に登録をしたいです。検索だけのプログラムはできてますがフォームを二つにすると両方のsubmitが登録になります・・・ 一応自分でいろいろためしましたがだめでした。。。 html,php,javascriptです。 二つともだめでした。。。。 rei1.php ------------------------- <html> <body <form method="POST" action="1.php"> お名前:<input type="text" name="name"> <br> <br> <form method="POST" action="yubin.php"> 〒:<input type="text" name="yubin"> <input type="submit" value="検索"> <br> 住所:<input type="text" name="zyu"> <br> </form> メールアドレス:<input type="text" name="email"> <br> <input type="submit" value="登録する"> </form> </body> </html> -------------------------------------- rei2.php -------------------------------------- <html> <head> <script language="javascript"><!-- function send() { document.nform.submit(); document.nform2.submit(); document.nform3.submit(); } //--></script> </head> <body> <form name="nform" method="POST" action="1.php"> お名前:<input type="text" name="name"> <br> </form> <form name="nform2" method="POST" action="yubin.php"> 〒:<input type="text" name="yubin"> <input type="submit" value="検索"> <br> 住所:<input type="text" name="zyu"> <br> </form> <form name="nform3" method="POST" action="1.php"> メールアドレス:<input type="text" name="email"> <br> <input type="submit" value="登録する"> </form> </body> </html> ------------------------------------

  • フォームから受け取ったデータを変数に/PHP

    入力フォームからデータを送信し、受け取ります。 <form action="index.php" method="post"> <input type="text" name="hoge"> <input type="submit"> </form> <?php echo htmlspecialchars($_POST['hoge']); ?> この時に受けったデータが、「りんご」だとして この「りんご」を変数にしたいです。 ↓ <?php $keyword = "りんご"; ?> このようにするには、 <form action="index.php" method="post"> <input type="text" name="hoge"> <input type="submit"> </form> <?php echo htmlspecialchars($_POST['hoge']); ?> の後にどのような処理をすればよいでしょうか? または初めから「$keyword」としてフォームからデータを送ることはできるのでしょうか? 何卒ご指導の程よろしくお願いします。

    • ベストアンサー
    • PHP
  • PHPをはじめて1日目なので・・・

    参考書を見ながらPHPの勉強を始めていますが、本のサンプルと全く同様にコーディングしているはずなのに、良い結果が得られずバグとなります。 formとpostを使って内容を渡すという項目なのですが。 form.htmlの内容。 <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> </head> <body> <form method="post" action="form1.php"> 好きな食べ物は?<input type="text" name="food1"><br> 好きな飲み物は?<input type="text" name="food2"> <input type="submit" value="送信"> </form> </body> </html> form1.phpの内容 <?php header('Content-type: text/html; charset=UTF-8'); ?> <html> <body> <?php $f1 = $_POST['food1']; $f2 = $_POST['food2']; $f1 = htmlentities( $f1, ENT_QUOTES, 'UTF-8' ); $f2 = htmlentities( $f2, ENT_QUOTES, 'UTF-8' ); echo 'あなたは「', $f1, "」が好きなんですね。<br>\n"; echo '「', $f2, "」も好きなんですね。<br>\n"; ?> </body> </html> おそらくちょっとしたことが原因でエラーが出ているのだと思いますが、まだ始めて1日目なので、どこがいけないのかさっぱりわかりません。 一体どこがおかしいのか、教えていただけますか?

    • ベストアンサー
    • PHP
  • PHPでフォームからの送信

    PHPでフォームからデータを送信する方法について教えてください。例えばPHPファイルの中に下の様にフォームを作成して、送信ボタンを2つ作ります。一つのボタンをクリックすると全てのフォームの情報が送信されてしまいますが、独立して送信できるようにはできないのでしょうか。簡単にでもできるかできないかを教えていただけましたら、あとは自分でなんとかがんばりますので、どなたか教えていただけれますと幸いです。宜しくお願いします。 <form action="abc.php" method="post"> AAA:<input type="text" name="simei"> BBB:<input type="password" name="pass"> <input type="submit" value="送信"> </form> <form action="abc.php" method="post"> CCC:<input type="text" name="simei"> DDD:<input type="text" name="pass"> <input type="submit" value="送信"> </form>

    • ベストアンサー
    • PHP
  • 初歩的な質問で恐縮ですが、教えてください。(2)

    すみません。 フォームのデータを受信する方法について教えてください。 <form method="post" action="./test2.php"> <input type="text" name="fmTitle" > <input type="submit" value="次へ" > </form> で送った値を $_POST['fmTitle'] で受取ることができたのですが、 以前(前のサーバー)は、$_POST['fmTitle'] を使わなくても、 $fmTitleで、値を受取れたような記憶があります。 (半年程時間がたったので、正確ではありませんが。) php.iniで、設定を変えられるのでしょうか?

    • ベストアンサー
    • PHP
  • javascript php フォームについて

    javascriptで作ったフォームをphpに送信したいのですが、上手く送信できません。 どのようにすれば上手く送信することができるでしょうか? 回答お願いします。 javascript側のソース <body> <form name="nform1" method="POST" action="./kaitou1.php" enctype="text/plain"> <p>問1</p> <p> (1)<input type="text" name="kaitouran11" size="20"> (2)<input type="text" name="kaitouran12" size="20"> (3)<input type="text" name="kaitouran13" size="20"> (4)<input type="text" name="kaitouran14" size="20"> </p> </form> <form name="nform2" method="POST" action="./kaitou1.php" enctype="text/plain"> <p>問2</p> <p> (1)<input type="text" name="kaitouran21" size="20"> (2)<input type="text" name="kaitouran22" size="20"> (3)<input type="text" name="kaitouran23" size="20"> (4)<input type="text" name="kaitouran24" size="20"> </p> </form> <form name="nform3" method="POST" action="./kaitou1.php" enctype="text/plain"> <p>問3</p> <p> (1)<input type="text" name="kaitouran31" size="20"> (2)<input type="text" name="kaitouran32" size="20"> (3)<input type="text" name="kaitouran33" size="20"> (4)<input type="text" name="kaitouran34" size="20"> </p> </form> <input type="button" value="送信" onClick="send()"> </body> php側のソース <body> <p>問1</p> <p>(1)<?php print(htmlspecialchars($_POST['kaitouran11'], ENT_QUOTES, 'UTF-8')); ?> (2)<?php print(htmlspecialchars($_POST['kaitouran12'], ENT_QUOTES, 'UTF-8')); ?> (3)<?php print(htmlspecialchars($_POST['kaitouran13'], ENT_QUOTES, 'UTF-8')); ?> (4)<?php print(htmlspecialchars($_POST['kaitouran14'], ENT_QUOTES, 'UTF-8')); ?> </p> <p>問2</p> <p>(1)<?php print(htmlspecialchars($_POST['kaitouran21'], ENT_QUOTES, 'UTF-8')); ?> (2)<?php print(htmlspecialchars($_POST['kaitouran22'], ENT_QUOTES, 'UTF-8')); ?> (3)<?php print(htmlspecialchars($_POST['kaitouran23'], ENT_QUOTES, 'UTF-8')); ?> (4)<?php print(htmlspecialchars($_POST['kaitouran24'], ENT_QUOTES, 'UTF-8')); ?> </p> <p>問3</p> <p>(1)<?php print(htmlspecialchars($_POST['kaitouran31'], ENT_QUOTES, 'UTF-8')); ?> (2)<?php print(htmlspecialchars($_POST['kaitouran32'], ENT_QUOTES, 'UTF-8')); ?> (3)<?php print(htmlspecialchars($_POST['kaitouran33'], ENT_QUOTES, 'UTF-8')); ?> (4)<?php print(htmlspecialchars($_POST['kaitouran34'], ENT_QUOTES, 'UTF-8')); ?> </p> </body>

    • 締切済み
    • PHP
  • formタグについてPHP

    他でも質問しましたが、xamppはもともと練習に使うつもりでしたが、 現在はレンタルサーバーを使っているのでここで試したらどうかと 帰りの電車の中で考えました。 ※送るデーター <form acition="index.php"method="POST"> <p>氏名<input type="text" size="20" name="ad"></p> <input type="submit" value="送信"> </form> ※受け取るデーター index.php <?php echo$_POST['ad1']; echo$_POST['ad2']; ?> 質問1.上記に名前が書かれれば、サーバーに引き渡したデーターを ブラウザーに表示ができるのでしょうか? 質問2.echoはeachとは違うのでしょうか? 質問3.actionのところによくメールアドレスが入っていたりするような気がします。 メールアドレスでも受け取れるのでしょうか?

    • 締切済み
    • PHP
  • ページを切り替えずにphpに値を渡したい。

    メインのページの入力フォームからoutput.phpにページを切り替えずに値を渡したいのですがどうしたらいいですか? <form action="output.php" method="post"> <input type=text name="text1"> <input type=submit value="変更"> </form> このようにやるとページがきりかわってしまいます。フォームと言う方法にこだわってるわけではありませんのでちがうほうほうでもいいので教えてください。

    • ベストアンサー
    • PHP

専門家に質問してみよう