• ベストアンサー

フォームから値の受渡し

http://www.stackasterisk.jp/tech/php/php02_06.jsp こちらのページを参考にしてみたのですが、うまく表示されません 解決法ご存知でしょうか? 具体的には、display.php3 のページは表示されますが ソースを見ると php の部分になにも書かれてないようです display.php3 > display.php にしたり <? → <?php に変えたりしてみたのですけども 【form.html】 <html><body> <form action="display.php3" method="POST"> <input type="text" name="fName" size="30"><br> <input type="submit" value="submit"> </form> </body></html> 【display.php3】 <html><body> <? print $fName; ?> </body></html>

  • PHP
  • 回答数2
  • ありがとう数0

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

  • ベストアンサー
  • yambejp
  • ベストアンサー率51% (3827/7415)
回答No.2

ご覧になっている情報サイトはかなり古いもののようです。 あまり古いものを参考にすると学習効果がうすまる可能性もあります。 バージョンの切り替え時期でもあるのでphp5以上がベターでしょうけど せめてphp4に準拠したものをベースに学習したほうがよいでしょう。 ちなみに今回の命題でひっかかっているのはphp.iniという設定ファイルの register_globalesという値がoffになっているからです。 これがonになっているとできますが、セキュリティ上offとするのが肝要です。 最初は面倒におもうかもしれませんが、以下のように一度変数に書き出す 処理をいれてください。 <html><body> <? $fName=$_REQUEST['fName']; print $fName; ?> </body></html>

hirosi1999
質問者

補足

回答ありがとうございます。 ご指摘いただいた部分を修正しまして ローカル環境で動作したのですが、 サーバーのロリポップ上でパーミッションのエラーとでてしまいました。 「ロリポップの環境」 Apache 1.3.36 PHP 4.4.6 http://lolipop.jp/?mode=manual&state=hp&state2=cgi リンク集を作成中でして、フォームにアドレスとタイトルを入れて 保存出来るものを作ろうとしてます。 web.php web.txt save.php3 ちなみに、php3 と php はどう違うのでしょう? 参考に、以下がソースです。 もし無駄な箇所があればご指摘願います。 [ web.php ] <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <title>web</title> <style type="text/css"> <!-- a { border: 1px solid #ccc; font-family: Verdana, Arial, Helvetica, sans-serif; text-decoration: none; width: 200px; height: 30px; line-height: 30px; display: block; color: #09f; float: left; padding-left: 10px; font-size: 14px; } a:hover { background: #eee; } textarea, input { font-family: Verdana, Arial, Helvetica, sans-serif; color: #666; font-size: 14px; } --> </style> </head><body> <form action="save.php3" method="POST"> <input type="text" size="100" name="title"><br> <textarea cols="100" rows="2" name="url"></textarea> <input type="submit" value="submit"> </form> <br /> <?php $fp = fopen('web.txt', 'r'); while (!feof($fp)) { $line = fgets($fp); print $line; print "\n"; } fclose($fp); ?> </body></html> [save.php3] <?php //print $_POST['url']; $url2 = $_POST['url']; //print $_POST['title']; $title2 = $_POST['title']; $str = "<a href=\"$url2\">$title2</a>\n"; $file = fopen('web.txt','a'); fwrite($file, $str); ?> [web.txt] <a href="http://www.google.co.jp">Google</a> <a href="http://www.yahoo.co.jp">Yahoo</a>

その他の回答 (1)

回答No.1

どのような環境で実行されているかわかりませんので、推測でしかお答えできませんが、 質問者様のような単純な変数名での(この場合ですと $fName ですね)参照は 最近の PHP では出来なくなっていたような…。 試しに print $fName; を print $_POST['fName']; にしたらどうでしょうか? なお、$_POST のような PHP で定義されている変数については 自分で調査なさってください。

関連するQ&A

  • 二度目のForm表示

    こんにちは。 例えば一行で下記のように○○.htmlとすると、 <html><body> <form action="display.php" method="POST"> <input type="text" name="fName" size="30"><br> <input type="submit" value="submit"> </form> </body></html> 次のdisplay.phpにて下記で呼び出せますが、 print $_POST['fName']; その後更に別ページで上記を呼び出す場合は どうしたら良いのでしょう? わかる方、ご教授ください。

    • ベストアンサー
    • 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を始めたばかりの初心者です。 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
  • フォームから値を受け取る方法について

    例えば <form method="post" name="frm" action="mail.php">名前<input type="text" name="namae"><br> 住所<input type="text" name="jyuusyo"><br> 電話番号<input type="text" name="denwa"><br> 職業<input type="text" name="syokugyou"><br> 年齢<input type="text" name="nenrei"><br> <input type="submit" value="送信"><br> </form> というフォームがあるとして、それをmail.phpで 名前を取得する場合$_POST['namae']と書く以外で フォームの1番目の値を取得するというような書き方はあるのでしょうか? frmのパラメータの数(上記の場合5コ)というのは取得出来るのでしょうか? ご存知の方教えてください。お願いします。

    • ベストアンサー
    • PHP
  • 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の文法がわかってないので、つまづい ています。多分、配列変数の記述方法がおかしいのだと思うのですが・・。 ご教授よろしくお願いします。 <html> <body> <form method = "POST" action ="test2.php" > <?php //データ渡し側 for ($i = 0 ;$i < 2 ;$i ++){ for ($j=0 ;$j <2;$j ++ ){ echo ("<input type ='text' name = 'data[$i][$j]' size ='10'>\n"); echo ("<br>\n"); } echo ("</tr>\n"); } ?> <input type="submit" name ="sbmit" value="data_input" > </form> </body> </html> <?php //データ受け側 for ($i = 0 ;$i < 2 ;$i ++){ for ($j=0 ;$j < 2;$j ++ ){ $tmp_data[$i][$j] = $_POST["data"][$i][$j]; echo ("$tmp_data[$i][$j] <br>\n"); } } ?> <html> <body> <form method = "POST" action ="test2.php" > <?php for ($i = 0 ;$i < 2 ;$i ++){ for ($j=0 ;$j <2;$j ++ ){ echo ("<input type ='text' name = 'data[$i][$j]' size ='10' value='$tmp_data[$i][$j]'>\n"); echo ("<br>\n"); } } ?> </table> <input type="submit" name ="sbmit" value="in" > </form> </body> </html> 実行結果は、 Array[0] Array[1] Array[0] Array[1] と表示されて、実際の入力した値が反映されません。

    • ベストアンサー
    • PHP
  • フォームの値をまとめて取得する関数

    以下のようなフォームから値を取得するときに、(2)のような関数化したいと思っていますが、思うように取得できません。どこが問題かアドバイスください。 <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=sjis" /> <title>sample</title> </head> <body> <form action="" method="post"> 名前:<br /> <input type="text" name="name" size="30" value="" /><br /> コメント:<br /> <textarea name="comment" cols="30" rows="5"></textarea><br /> <br /> <input type="submit" value="登録する" /> </form> </body> </html> (1)問題なく表示できる <?php  foreach(${"_" . $_SERVER["REQUEST_METHOD"]} as $k=>$v) {   ${$k}=$v;  } echo "名前:$name<br>"; echo "コメント:$comment<br>"; ?> (2)表示できない? <?php function Request() {  foreach(${"_" . $_SERVER["REQUEST_METHOD"]} as $k=>$v) {   ${$k}=$v;  } } Request(); echo "名前:$name<br>"; echo "コメント:$comment<br>"; ?>

    • 締切済み
    • PHP
  • POSTメゾットでの値の受け渡しについて

    フォームからの値の受け渡しについて質問いたします。 <form ction="test.php" method="POST">   <input type="text" name="text">   <input type="submit" value="検索"> </form> で渡されたtextを下記スクリプトで受け取れません。 ====testphp==== <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=EUC-JP"> </head> <body> <? print ".$_POST['text']."; ?> </body> </html> ========== ただ気になることがあり、このファイル達が置かれているディレクトリの.htaccessに <Limit GET POST> require valid-user </Limit> の記述があります。 このディレクトリはメンバー制限をかけているディレクトリですが、 メンバーとしてこのディレクトリのTOPページに入り、 検索フォームを入力してsubmitしても値はブロックされるものでしょうか? よろしくお願いします。

    • ベストアンサー
    • PHP
  • メールフォームの値保持

    メールフォームを作成しているのですが、値をセッションにて保持したいのですが上手くできません。 考え方が誤っているような気がするので、指摘いただけないでしょうか。どうかよろしくお願いします。 以下のような3画面移動で、値を保持したいのです。 入力==================================================================== <html><head><title>入力</title></head> <body> <form action="confirm.php" method="post"> 魚は好きですか?<BR> はい<input type="radio" name="fish" value="yes"><BR> いいえ<input type="radio" name="fish" value="no"><BR><BR> <input type="submit" value="送信"> </body> </html> 確認==================================================================== <?php session_start(); $fish = $_POST["fish"]; $_SESSION["fish"] = $fish; ?> <html><head><title>テスト確認画面</title></head> <body> <?php print("変数fishの値は".$_SESSION["fish"]."です。"); ?> <form action="output.php" method="post"> <input type="submit" value="次ページへ値を渡す"> </body> </html> 完了==================================================================== <?php session_start(); ?> <html> <head><title>テスト完了画面</title></head> <body> <?php print("変数fishの値は".$fish."です。"); ?> </body> </html>

    • ベストアンサー
    • PHP
  • ページを切り替えずにphpに値を渡したい。

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

    • ベストアンサー
    • PHP

専門家に質問してみよう