• ベストアンサー

フォームから値の受渡し

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>

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

  • ベストアンサー
  • 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 で定義されている変数については 自分で調査なさってください。