HTMLのpost送信について

このQ&Aのポイント
  • 送信した文字列が表示されない現象についての質問です。
  • 送り側プログラムのHTMLファイルの記述に誤りがある可能性があります。
  • 受け側プログラムのPHPの記述に誤りがある可能性があります。
回答を見る
  • ベストアンサー

HTMLのpost送信について

HTMLのpost送信について 送り側で入力した文字がphpのプログラムへ送られ、 ブラウザが開いて送られた文字列が表示されるはず なのですが、HTMLファイルの送信ボタンを押しても 無反応です。どこがまちがっているいのでしょうか? 送り側プログラム ファイル名:okuri1.html <html> <head> <hitle>送り側プログラム</title><br> </head> <body> <from method="post" action="uke1.php"> <input type="text" name="a"size="20"> <br> <input type="submit" value="送信" size="20"> </form> </body> </html> 受け側プログラム ファイル名:uke1.php <?php print POST["a"]; ?>

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

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

  • ベストアンサー
  • nazal2010
  • ベストアンサー率54% (12/22)
回答No.3

No.1の回答への補足にある、 ↓コレを print $_post["a"]; ↓コレに print $_POST["a"]; -------------------------------------------- ▼okuri1.html <html> <head> <meta charset="utf-8"> <title>phpの学習</title> </head> <body> <form method="post" action="uke1.php"> <input type="text" name="a"> <br> <input type="submit" value="送信"> </form> </body> </html> -------------------------------------------- ▼uke1.php <html> <head> <meta charset="utf-8"> <title>phpの学習</title> </head> <body> <?php print $_POST["a"]; ?> </body> </html> -------------------------------------------- 一応文字コードの指定もきちんとしたほうが良いと思います。 ファイルを保存する際のエンコードの種類も合わせてください。 あと、Notice: Undefined~のエラーは、王道なので一旦ググってみることを オススメします。

その他の回答 (2)

  • ONEONE
  • ベストアンサー率48% (279/575)
回答No.2

送られていない一番の原因はformでなくてfromになっていることでしょう。 <title>の後に<br>はいりません。

  • freetaka
  • ベストアンサー率53% (106/197)
回答No.1

送り側の間違い <hitle>送り側プログラム</title><br> ↓ <title>送り側プログラム</title><br> <from method="post" action="uke1.php"> ↓ <form method="post" action="uke1.php"> 受け側の間違い print POST["a"]; ↓ print $_POST["a"];

koro01
質問者

補足

修正しましたがダメです。 ファイル名:okuri1.html <html> <head> <title>phpの学習</title> </head> <body> <form method="post" action="uke1.php"> <input type="text" name="a"> <br> <input type="submit" value="送信"> </form> </body> </html> ファイル名:uke1.php <?php print $_post["a"]; ?> HTMLから文字列を入力して送信すると、以下のメッセージが出てしまいます。 なぜ???????? Notice: Undefined variable: _post in C:\xampp\htdocs\uke1.php on line 2

関連するQ&A

  • POSTできない

    いま、phpを勉強中です。 そこで簡単なコードを書いてテスト&トライしてますがいきなりつまずいてます… <HTML> <HEAD> <TITLE>post request</TITLE> </HEAD> <BODY> <FORM ACTION="sample.php" METHOD="POST"> 名前:<input type="text" name="myname" value=""> <input type="submit" name="cmd" value="送信"> </FORM> <?php print "入力された文字は?".$myname . "<BR>"; ?> </BODY> </HTML> これを実行し、フォームに文字を入れて送信しても画面にでてきません。"入力された文字は?"だけが表示されたままです。(送信を押すと砂時計がでるのでプログラム自体は走っていると思います) postを使う場合どこか設定をしないといけないのですか??よろしくお願いします。

    • ベストアンサー
    • PHP
  • $_POSTが、上手くできません。。

    PHP勉強中の初心者です。 簡単な教材で勉強しているのですが、何度やっても上手く行かない部分があり、質問させて頂ければと思います。 やりたい事としては、「form.html」で入力した内容を、$_POSTで「view.php」に表示をするということです。 上手くいっていない処理としては、「form.html」のフォームから文字を入力し、「view.php」で、『○○さん、こんにちは』と表示がしたいのですが、実際には、「form.html」に文字を入れて送信すると、「view.php」の全ソースがブラウザ上で、表示されてしまいます。 こちらは、どのようにすれば、『○○さん、こんにちは』という風に表示することが出来ますでしょうか?php自体の設定に問題があるのでしょうか? もしお分かりになる方がいらっしゃれば、ご教授いただけると幸いです。宜しくお願い致します。 ■form.html <HTML> <HEAD> <TITLE>テキスト送信のテスト</TITLE> <META http-equiv="Content-Type" content="text/html; charset=Shift-JIS"> </HEAD> <BODY bgcolor="#FFFFFF" text="#0000000"> <FONT size="4">テキスト送信のテスト</FONT> <FORM name="form1" method="post" action="view.php"> 名前:<BR> <INPUT type="text" name="onamae"> <BR> <INPUT type="submit" value="送信"> </FORM> </BODY> </HTML> ■view.php <html> <head> <title>PHPのテスト</title> </head> <body> <?php print $_POST["onamae"]. "さん、こんにちは"; ?> </body> </html>

    • ベストアンサー
    • PHP
  • HTMLファイルからPHPファイルへの送信

    PHP超初心者です。 現在「基礎からのMYSQL」という本でXAMPPを導入しMySQL,PHPの基礎を勉強中です。 本にある通りにHTMLおよびPHPファイルを作成してみましたが、データ送信(post)がうまくいきません。 okuri.htmlファイルでテキストを入力してuke.phpファイルで入力されてテキストを表示するだけなのですが、入力し送信してもPHP側にはエラーも何も表示されません(真っ白です)。 Apacheも正常に起動しています。 原因がまったくわかりません。 考えられる原因をおしえてください。よろしくおねがいします。 okuri.htmlファイルの内容 <form method="post" action="uke.php"> <input type="text" name="a"> <br> <input type="submit" value"送信"> </form> uke.phpファイルの内容 <?php print $_post["a"] ?> 1.Windows7使用 2.XAMPPを導入した付属CD-ROMの内容  ・Apache(HTTPD2.2.6 + Openssl0.9.8e)  ・MySQL(5.0.45)  ・PHP(5.2.4)  ・PHP(4.4.7)  ・phpMyAdmin(2.11.1)  ・Zend Optimizer

    • ベストアンサー
    • PHP
  • phpでメール送信

    phpでメール送信を行ってもメールが来ません。 普通のメールアドレスです。使っているサーバーはちゃんとphpが つかえるようです。ソースは下記です。訂正するところなどありまし たらよろしくお願いします。 ソース:(ホーム)<html> <head> <meta http-equiv="Content-Type" content="text/html; charset=Shift_JIS"> <title>sample</title> </head> <body> <form action="1.php" method="post"> ホームページの名前:<br> <input type="text" name="subject" size="30" value=""><br> ホームページのアドレス:<br> <input type="text" name="name" size="30" value=""><br> メールアドレス:<br> <input type="text" name="mail" size="30" value=""><br> ホームページの紹介文:<br> <textarea name="message" cols="30" rows="5"></textarea><br> <br> <input type="submit" value="送信する"> </form> </body> </html> 送信側:<?php mb_language("Japanese"); mb_internal_encoding("SHIFT-JIS"); $message = "ホームページのアドレス:" . $_POST["name"] . "\nホームページの紹介文:" . $_POST["message"]; if (!mb_send_mail("めーるアドレス@メールアドレス.jp", $_POST["subject"], $message, "From: " . $_POST["mail"])) { exit("メールの送信に失敗しました。"); } ?> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=Shift_JIS"> <title>sample</title> </head> <body> <p>メールが送信されました。</p> </body> </html>

  • 複数のフォームから送信

    複数のフォームから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を始めたばかりの初心者です。 Windows NT4.0 + apache 1.3.24 + php 4.20の環境で 以下のようなサンプルプログラムを作って実行したのですが、「送信」ボタンを押しても、入力した文字が表示されません。初歩的な質問ですいませんが、原因を御教授下さい。 <HTML> <body> <FORM ACTION="sample.php" METHOD="POST"> 文字の入力 <INPUT TYPE="text" NAME="val" VALUE=""><BR> <INPUT TYPE="submit" VALUE="送信"> </FORM> <BR> <?PHP print "入力文字は<B>" . $val . " </B>です。"; ?> </BODY> </HTML>

    • ベストアンサー
    • PHP
  • フォームで送った文字がおかしくなる

     フォームから文字を記入して、送信ボタンを押すと次のページでその文字が表示されるという初歩的なプログラムをつくっています。しかし、フォームからPOSTでデータを送る場合、ある特定の一文字の漢字だけを記入して送信ボタンを押すと正常に表示されません。 例えば、「卒業」だと正常に表示されるのに「卒」だと「'」になってしまい、他にも「文」や「動」を一文字だけ記入すると、何も表示されません。ひらがなやカタカナ、複数文字の場合は全て正常です。原因が分からなくて困っています。 a.php (入力フォーム) <HTML> <HEAD> <TITLE>テキスト送信のテスト </TITLE> <META http-equiv="Content-Type" content="text/html; charset=EUC_JP"> </HEAD> <BODY> <FORM method="POST" action="view.php"> 入力してください: <INPUT type="text" name="name"> <BR> <INPUT type="submit" value="送信"> </FORM> </BODY> </HTML> view.php (表示するphpファイル) <HTML> <HEAD> <META http-equiv="Content-Type" content="text/html; charset=EUC_JP"> <META http-equiv="Content-Style-Type" content="text/css"> </HEAD> <BODY> <?php print $_POST["name"]; ?> </BODY> </HTML> どこか間違いがあるでしょうか? a.phpとview.phpは両方とも日本語(EUC)改行=LFで保存しています。 phpのバージョンは5.1.1です。よろしくお願いします。

    • ベストアンサー
    • PHP
  • HTMLの送信ボタンで送信されずコードが表示される

    HTMLのフォームに設定した値がサーバーに送信されて、 どのように回収するのか基本的なことが まだよく理解できていないのですが、 https://www.sejuku.net/blog/24658 のサイトの情報を参考にして、 下記のコードのファイル(mailform.htmlとmail.php)を作成して、 Microsoft Edge ( Internet Explorerでも同じ) で、 mailform.htmlのファイルを読み込むと、 フォームが表示されるので、 受信者に自分のメールアドレス タイトルにTEST 本文にテスト と入力して送信ボタンを押すと、 私の理解が正しければ、 自分の所にフォームに設定した値(TESTとテスト)のメールが 届くと思われますが、 なぜか、 Edgeの画面には、 mail.phpの中身のコードが表示されてしまいます。 メールも送られてきません。 ./mail.phpの部分をフルパスで指定しても同じです。 なぜでしょうか。 よろしくお願いします。(Windows10,IE,Edge) ---mailform.html------------------------------------------- <html> <head> <meta charset="utf-8" /> <script type="text/javascript" charset="UTF-8"></script> </head> <body> <form action="./mail.php" method="post"> <p>受信者</p><input type="text" name="to"> <p>タイトル</p><input type="text" name="title"> <p>本文</p><textarea name="content" cols="50" rows="5"></textarea> <p><input type="submit" name="send" value="送信"></p> </form> </body> </html> ---mail.php------------------------------------------- <html> <head> <meta charset="utf-8" /> </head> <body> <?php mb_language("Japanese"); mb_internal_encoding("UTF-8"); $to = $_POST['to']; $title = $_POST['title']; $content = $_POST['content']; if(mb_send_mail($to, $title, $content)){ echo "メールを送信しました"; } else { echo "メールの送信に失敗しました"; } ?> </body> </html> -------------------------------------------------------

    • ベストアンサー
    • HTML
  • PHP入力フォームから確認画面にいって送信する。という事がやりたいので

    PHP入力フォームから確認画面にいって送信する。という事がやりたいのですが、入力フォームと送信画面は作成できたのですが、その間の確認画面をどう作成したらよいかわからないので、質問致します。 1.入力フォーム(mail.htmlで作成) <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <title>sample</title> </head> <body> <form action="send.php" method="post"> 件名:<br> <input type="text" name="subject" size="30" value=""><br> 送信者名:<br> <input type="text" name="name" size="30" value=""><br> メールアドレス:<br> <input type="text" name="mail" size="30" value=""><br> 本文:<br> <textarea name="message" cols="30" rows="5"></textarea><br> <br> <input type="submit" value="送信する"> </form> </body> </html> 2.確認画面・・・ここが作成したいページです。 3.送信画面(send.phpで作成) <?php mb_language("Japanese"); mb_internal_encoding("UTF-8"); $message = "名前:" . $_POST["name"] . "\n本文:" . $_POST["message"]; if (!mb_send_mail("hoge@example.com", $_POST["subject"], $message, "From: " . $_POST["mail"])) { exit("メールの送信に失敗しました。"); } ?> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <title>sample</title> </head> <body> <p>メールが送信されました。</p> </body> </html> という感じです。 やりたい事としては、第三者に入力フォームに入力してもらい、送信ボタンを押すと、入力内容はこれでよろしいですか?という画面が出て OKならば、そのまま送信。修正したい場合は戻るボタンでmail.htmlに戻り、修正する。その際の戻るボタンを押した場合は 入力した内容が消えていないこと。という事がやりたいのです。 「2.確認画面」のサンプルスクリプトを教えて頂けないでしょうか。 1と3も間違っているならご指摘下さい。よろしくお願い致します。

    • 締切済み
    • PHP
  • メールの中身が入りません。なぜでしょう?

    PHPを勉強し始めまたばかりで、つまずいています。 本を買って来て、サンプルプログラムをセコセコ写して、イザ クリックしましたら、メールは届くのですが、なぜか本文が 入りません。届くのは      ↓ さんからのメールが届きました。 ----------------------------------------------------- ----------------------------------------------------- これだけです。 「POST」を使っているので php.iniのregisterglobalsをOnにしても、届きません。 何が悪いんでしょう? PHPのバージョンでしょうか? それとも、Apacheのバージョンでしょうか? php-5.0.2のwindows版 Apache_2.052 なのですが・・・。 どなたか詳しい方宜しくお願いいたします ******************************* <?php if (! isset($_POST[btnExec1]) and ! isset($_POST[btnExec2]) and ! isset($_POST[btnCancel1])){ $body = "名前とメッセージを入力して[OK]ボタンをクリックしてください。 <FORM action='$_SERVER[PHP_SELF]' method='POST'> 名前: <INPUT size='40' type='text' name='name'><BR><BR> メッセージ:<BR> <TEXTAREA row='6' cols='40' name='message'></TEXTAREA><BR><BR> <INPUT type='submit' name='btnExec1' value='OK'> </FORM>"; } elseif (isset($_POST[btnExec1])){ $name = htmlspecialchars(stripcslashes($_POST[name])); $message = htmlspecialchars(stripcslashes($_POST[message])); $body = "次の内容でメッセージを送信します。<BR> よければ送信ボタンをクリックしてください。 <FORM action='$_SERVER[PHP_SELF]' method='POST'> 名前:$name<BR><BR> メッセージ:<BR>". nl2br($message). "<BR><BR> <INPUT type='submit' name='btnExec2' value='送信'> <INPUT type='submit' name='btnCancel1' value='キャンセル'> <INPUT type='hidden' name='name' valu=\'$name\'> <INPUT type='hidden' name='message7 valu=\'$message\'> </FORM>"; } elseif (isset($_POST[btnExec2])){ $name = stripcslashes($_POST[name]); $message = stripcslashes($_POST[message]); $mailto = "*********@*********"; $mailsbj = "メールフォームからの送信"; $mailbody = "$name さんからのメールが届きました。\n". "-----------------------------------------------------\n". "$message \n". "-----------------------------------------------------\n"; mb_language("ja"); if(mb_send_mail($mailto,$mailsbj,$mailbody,$mailheader)){ $body = "メールを送信しました!<BR><BR>"; } else{ $body = "メールの送信に失敗しました!<BR><BR>"; } $body.="<A href='$_SERVER[PHP_SELF]'>戻る</A>"; } elseif (isset($_POST[btnCancel1])){ header("location: $_SERVER[PHP_SEIF]"); exit(); } ?> <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <HTML> <HEAD> <META http-eqive="Content-Type" content="text/html; charset=x-euc-jp"> <meta http-equive="Content-Style-Type" content="text/css"> </HEAD> <BODY> <?=$body?> </BODY> </HTML>

    • ベストアンサー
    • PHP

専門家に質問してみよう