スレッド表示 | フラット表示〕 全トピック 920 件中 560 番目 次≫ ≪前

フォーム変数の取得について

created: 2004-09-05 20:07 | modified: 2004-09-06 21:26 | reply: 4

[1780] フォーム変数の取得について

user: aoki | created: 2004-09-05 20:07
初めまして、PHP超初心者(3日目)です。
よろしく御願いいたします。

さて、フォーム変数の取得で基本中の基本で行き詰まっています。

<html>
<body>
<form method="POST" action="<? $HTTP_SERVER_VARS["PHP_SELF"] ?>">
<input type="text" name="hensu1">
<input type="submit" name="submit" value="送信">
</form>
<?php
print "受け取った変数:<br>\n";
/* 受け取った変数は? */
print $hensu1;
print $HTTP_POST_VARS['hensu1'];
?>
</body>
</html>

以上のphpを実行すると、
Notice: Undefined variable: hensu1 in c:\inetpub\wwwroot\yotei\test1.php on 
line 10
Notice: Undefined index: hensu1 in c:\inetpub\wwwroot\yotei\test1.php on line 11

が出てしまいます。
その後、フォームに入力して送信を押せば、ちゃんと動作しますが、
IEの再起動後などはまた同じ状況です。

いろいろとWEB内を検索してみましたが、見つけることが出来ませんでしたので、
お教え頂ければ幸いです。

よろしく御願いいたします。
reply: 1781 返信 編集 削除

[1781] 変数を定義してあげてください

user: hamaji | created: 2004-09-05 21:23
こんばんは。

> 以上のphpを実行すると、
> Notice: Undefined variable: hensu1 in c:\inetpub\wwwroot\yotei\test1.php on 
> line 10
> Notice: Undefined index: hensu1 in c:\inetpub\wwwroot\yotei\test1.php on line 11
>
> が出てしまいます。
のエラーの内容は調べてみましたか?
(日本語訳にしてみる)

> いろいろとWEB内を検索してみましたが、見つけることが出来ませんでしたので、
→aokiさんには申し訳ないですが、探し方が悪いだけだと思います。
http://www.google.co.jp/search?hl=ja&ie=UTF-8&q=PHP+Notice+Undefined+variable&btnG=Google+%E6%A4%9C%E7%B4%A2&lr=lang_ja
とかで調べると結構出てきます。
こことか
http://pon.sub.jp/clrea/read.php?id=1045547041
こことか
http://ns1.php.gr.jp/pipermail/php-users/2004-March/021301.html

長くなりましたが、ようは
『未定義の変数を使用しています。』
というエラーです。

PHPの設定ファイル(php.ini)
の『error_reporting』という設定項目を
以下のようにするか、プログラム側で回避してあげてください。
php.ini
error_reporting = E_ALL & ~E_NOTICE
PHPをはじめて間もないのであれば、phpの設定ファイル云々といっても難しいでしょうから、
以下のようにしてはどうでしょうか?
<?php
$hensu1 = null; // 変数を宣言・初期化する

// POST・GET変数は初期化できないので値がセットされているか調べる
if (isset($HTTP_POST_VARS['hensu1'])) {
$hensu1 = $HTTP_POST_VARS['hensu1'];
}

print "受け取った変数:<br>\n";
print $hensu1;
?>
php.iniの設定はこの辺を参考に。
http://www.foocrane.jp/WAPS2/chapter06/section02.html
Parent: 1780  reply: 1782 返信 編集 削除

[1782] お礼 そして ご質問

user: aoki | created: 2004-09-05 22:16
こんばんは hamaji様。

早速のご回答どうもありがとうございます。
検索の件、ご指摘のようにしっかりとありましたが、やはり初心者のもので、内容を見ても把握出来ていませんでした。

さて、お教えいただいた記述でエラーを回避する事はできましたが、実際にはフォームが
多量に存在しますので、foreach か何かで全部処理しなければならないのでしょうか?
またerror_reportingのphp.iniでの変更も
確認しましたが、これはサーバー側の変更の
ようですが、プログラム上で変更する事が
できるのでしょうか?
よろしく御願いいたします。
Parent: 1781  reply: 1783 返信 編集 削除

[1783] Re.お礼 そして ご質問

user: hamaji | created: 2004-09-06 01:09
こんばんは。

> さて、お教えいただいた記述でエラーを回避する事はできましたが、実際にはフォームが
> 多量に存在しますので、foreach か何かで全部処理しなければならないのでしょうか?
aokiさんが一番よいと思う方法でいいと思います。
foreachを使うなり、1個1個処理すればいいと思います。
私はPOST、GET変数を格納する変数や配列を事前に宣言し、1個1個処理する方法をとっています。
#PHP等のスクリプト言語でも変数の宣言、初期化等の処理を心がけるようにしてます。

> またerror_reportingのphp.iniでの変更も
> 確認しましたが、これはサーバー側の変更の
> ようですが、プログラム上で変更する事が
> できるのでしょうか?
> よろしく御願いいたします。
人にお願いする前に自分で調べることはしないのですか?
PHPマニュアル
http://www.php.net/manual/ja/ref.errorfunc.php

Google検索
http://www.google.co.jp/search?hl=ja&ie=UTF-8&q=php+error_reporting&btnG=Google+%E6%A4%9C%E7%B4%A2&lr=lang_ja

php.iniの設定を変えるならサーバー管理者に確認してください。
error_reporting()等の関数は禁止されてる場合があるので、それもサーバー管理者に確認してください。
Parent: 1782  reply: 1784 返信 編集 削除

[1784] お礼

user: aoki | created: 2004-09-06 21:26
hamaji様

更なるご教授どうもありがとうございます。
会社ではこの掲示板に繋がりませんでしたので、返信する事が出来ませんでした。
失礼致しました。
asp生活が長かったもので、新しい言語は
だいぶ取っつきにくく、苦しんでおります。
変数の宣言も初期化も結構いい加減で良かったので・・・
php.iniの件に関するご指摘も耳が痛い所ではありますが、自分としては数十分は探し回りましたが、慣れないうちはたとえヒットしても、それと判らない事がありますので、
難しいところです。

これからも何かありましたらよろしく御願いいたします。
Parent: 1783  返信 編集 削除
スレッド表示 | フラット表示〕 全トピック 920 件中 560 番目 次≫ ≪前
ページの一番上へ
Googleグックマークに登録 Yahooグックマークに登録 livedoorクリップに登録 @niftyクリップに登録 はてなブックマークに登録 deliciousに登録 Buzzurlに登録 FC2ブックマークに登録
最近更新された掲示板トピックス
管理人Blog
Yahoo Search

最近更新したNote
PHPマニュアル
今日のブックマーク
PHPマニュアル関数検索
関数名を入力し検索ボタンをクリック↑