はじめまして、最近やり始めたばっかりの初心者です。

質問なのですがブラウザ上でテキストにデータベース名を入力して
<form action=database5.cgi method=post>
<input type=text name ="data1">
<INPUT TYPE=submit VALUE=" 送信 ">
でdatabase5.cgiにわたして

そのcgiのなかで
#------------------------------------------<SELECT文 設定>
$SQL = "select column_name,data_type from user_tab_columns where table_name = 'この指定の仕方がわからない '";
$hSt = $hDb->prepare($SQL)
or die &err_ora;

のtable_name として用いたいのですが、いったいどのようにそのテキストに
入力したテーブル名を取り出したらいいのかわからないのです。

あらかじめテーブル名を記述しておいてブラウザ上で呼び出すと結果でる
というのはわかったのですが、実際にブラウザ上で任意のテーブル名を
いれて同様の結果を得るという操作がどうしてもできません。

まだ初心者な者で質問の仕方も非常にわかりにくいのですが
どなたかよきアドバイスをお願いいたします。

A 回答 (1件)

PostやGetでデータを取得するためには、「env」の「REQUEST_METHOD」からPost・Getされていることを判別してやるなど、フォームをデコードする必要があります。



***************************************

if ($ENV{'REQUEST_METHOD'} eq "POST") {
read(STDIN, $buffer, $ENV{'CONTENT_LENGTH'}); }
else { $buffer = $ENV{'QUERY_STRING'}; }

foreach (split(/&/,$buffer)) {
($key,$value) = split(/=/);
$key =~ s/%([a-fA-F0-9][a-fA-F0-9])/pack("c",hex($1))/ge;
$value =~ s/%([a-fA-F0-9][a-fA-F0-9])/pack("c",hex($1))/ge;
if (defined($in{$key})) {
$in{$key} = join("\0", $in{$key}, $value);
} else {
$in{$key} = $value;
}
}

***************************************

cgi-lib.plを使用するか、上記のようにデコードを実行して、

$data1 = $in{'data1'}; #上記コードの場合の書き方

のように呼んでやれば任意のデータが取れると思います。
わかりにくかったらごめんなさいね。
    • good
    • 0
この回答へのお礼

早速のご返事ありがとうございました。このような方法で任意のデータが
取り出せるとは知りませんでした。まだほんとに始めたばかりなのでまずは
教えていただいた方法を理解してから実際にやってみます。
ほんとうに、ありがとうございました。

お礼日時:2001/08/05 19:43

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!


このカテゴリの人気Q&Aランキング

おすすめ情報