[PHP-users 11057] フォームの変数をPostgreSQLにINSERT
php-users@php.gr.jp
php-users@php.gr.jp
24 Oct 2002 11:33:00 +0900
こんにちは。
お忙しいとは思いますが、
よろしくお願い致します。
過去履歴を徹夜で見て、
register_globals、変数、フォームなどをキーワードに検索をしたのですが、
どうしてもうまくいきませんでした。
PHPそのものを理解していないと言われてしまうと思うのですが、教えてください。
まず以下のようなPHPからPostgreSQLへのデータ投入例があります。
form.html
<form action="insert.php" method="post">
<input size="20" type="text" name="name">
<input type="submit" value="登録">
</form>
insert.php
$sql_insert = "insert into test (name) values ('$name')";
PHP4.2.0以前(4.1.0になるんでしたっけ?)では、
上記内容でPOSTの変数を受け取ってデータが投入されていて、
最近、register_global がoffになったことなどによって、
変更点があるということも分かりました(解釈が間違っていたらご指摘ください。)。
とりあえず、insert.php に
if($HTTP_POST_VARS != ""){ // 呼び出しパラメータを取得
while (list($key,$val) = each($HTTP_POST_VARS)) {
$$key = $val;
}
}
を加えて、
$sql_insert = "insert into test (name) values ('$name')";
でも従来通りデータは投入されるようになったのですが、
さて、
if($HTTP_POST_VARS != ""){ // 呼び出しパラメータを取得
while (list($key,$val) = each($HTTP_POST_VARS)) {
$$key = $val;
}
}
を書かない場合、
insert.php はどのように書けばうまくいくのでしょうか。
ちなみに恥ずかしながら試してみたものを公開しますと、
$sql_insert = "insert into test (name) values (' ".$_POST['$name']." ' );
です。
過去歴を見て、そのまんまやってみたのですが、
上記では変数を受け取ることができませんでした。
これは insert.php に問題があるのでしょうか。
それとも form.html にも何か仕掛けをしてやらないといけないのでしょうか。
以上、ご教授ください。
よろしくお願い致します。