• 締切済み

POSTで送信したデータを使いたいのですが

はじめまして、最近やり始めたばっかりの初心者です。 質問なのですがブラウザ上でテキストにデータベース名を入力して <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 として用いたいのですが、いったいどのようにそのテキストに 入力したテーブル名を取り出したらいいのかわからないのです。 あらかじめテーブル名を記述しておいてブラウザ上で呼び出すと結果でる というのはわかったのですが、実際にブラウザ上で任意のテーブル名を いれて同様の結果を得るという操作がどうしてもできません。 まだ初心者な者で質問の仕方も非常にわかりにくいのですが どなたかよきアドバイスをお願いいたします。

みんなの回答

  • noopee
  • ベストアンサー率38% (114/297)
回答No.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'}; #上記コードの場合の書き方 のように呼んでやれば任意のデータが取れると思います。 わかりにくかったらごめんなさいね。

tattun
質問者

お礼

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

関連するQ&A

  • ブラウザからPOSTで受け取れるデータについて

    ブラウザからPOSTで受け取れるデータについて 理解不足で調べてみたのですが、よくわからないので教えてください。 <input name="NAMAE" type="text"... で入力したデータがsubmit後、POSTで受け取れるのはわかったのですが 何も入力しないでsubmitした場合、 NAMAE="" のように取得できると思っていたのですが NAMAEという環境変数名(?)そのものが標準入力で取得できないのでしょうか? よろしくお願いします。

    • ベストアンサー
    • CGI
  • フォームの一部をPOSTで送信できますか?

    フォームのPOST自体をあまり理解できていないかも知れないのですが・・・ onClickイベントでJavascriptでパラメータを送信したいと思っています。 <input type="text" name="text1"> <input type="text" name="text2"> <input type="text" name="text3"> <input type="text" name="text4"> <input type="text" name="text5"> <input type="button" value="ボタン1"> <input type="button" value="ボタン2"> <input type="button" value="ボタン3"> というようなフォームがあった場合、ボタン1を押したらtext1とtext2の値を、 ボタン2を押したらtext1とtext3の値を・・・という風に 送信する内容を変えたいのですが、それをPOSTで渡すことは可能なのでしょうか? ちなみに送信したい内容は、ボタンが違っても重なっているものもあります。 また可能であれば、どう記述すればよろしいでしょうか?(NNです) よろしくお願いします。

  • 1つのフォームで2つのcgiにデータを送るには

    どうぞよろしくお願いします。 テキストエリアにデータ入力して送信ボタンを押すと、 入力した内容が2つのcgiに送られるというようにしたいのですが、こういったことは可能でしょうか? イメージとしては下記のような感じです。 <form action="CGI名1" action="CGI名2" method="POST"> <inpu type="text" name="text1" size="32"> <input type="submit" value="送信"> </form> 両方の送信結果を別々のウインドウで表示します。 もしformタグでは不可能な場合、何か代換法がありましたらよろしくお願いいたします。

    • 締切済み
    • CGI
  • POSTで固定のクエリーの設定方法

    <form method="POST" action="/hoge.cgi?a=a&b=b"> arg1<input type="text" name="arg1" size="20"> <input type="submit" value="送信"><br> <form/> 上記htmlに追記して、クエリーをarg1="hoge"&arg2="piyo"にしたいです。(※textにhogeと入力した例) この時、arg2="piyo"は固定で、ブラウザーには表示されないようにしたいです。 どうhtmlを記述したよいですか?

    • ベストアンサー
    • HTML
  • HTMLのpost送信について

    HTMLのpost送信について 送り側で入力した文字がphpのプログラムへ送られ、 ブラウザが開いて送られた文字列が表示されるはず なのですが、HTMLファイルの送信ボタンを押しても 無反応です。どこがまちがっているいのでしょうか? 送り側プログラム ファイル名:okuri1.html <html> <head> <hitle>送り側プログラム</title><br> </head> <body> <from method="post" action="uke1.php"> <input type="text" name="a"size="20"> <br> <input type="submit" value="送信" size="20"> </form> </body> </html> 受け側プログラム ファイル名:uke1.php <?php print POST["a"]; ?>

    • ベストアンサー
    • PHP
  • PerlでSQLiteのデータテーブルを作成し

    PerlでSQLiteのデータテーブルを作成し、作成したテーブルへデータを追加するようにしたいのですが、 下記のように作成し、実行すると、 テーブルの作成のみ、もしくは、既存のテーブルへのデータの追加のみは可能なのですが、 両方処理させると、テーブルの作成のみされて、作成されたテーブルの中身はカラのままです。 #データベースに接続 $dbh = DBI->connect("dbi:SQLite:dbname=c:\\database\\tyumon.db"); open (DATA,"c.dat"); $data = <DATA>; close(DATA); $data = $data+1; $table = "user"; $table .= $data; #テーブル作成実行 $hst = $dbh->do("CREATE TABLE '$table'(name text,area text,tel text,mail text,jikan text, hoka text)"); #レコードの追加(INSERT文の実行) $st = $dbh->do("insert into '$table' values('$data','$name','$area','$tel','$mail','$jikan','$hoka')"); 「c.dat」には、カウントされた数字が入っています。 テーブル名は「user」+カウント数字で作成しています。 データベースと、CGIの勉強を兼ねて作成しているもので、 根本的な間違いなどあるかもしれません。 どなたか、ご指摘いただければ幸いです。

    • ベストアンサー
    • CGI
  • HTMLのフォームタグの送信順について

    HTMLのフォームタグは、必ず上から送られ 同じ名前で下に書いた場合、下にあるフォームで値は 必ず上書きされるでしょうか? 例: <form method="post" action="next.cgi"> <input type="hidden" name="test" value="1"> <input type="text" name="test"> </form> で送った場合、下のテキスト入力フォームで 入力した値が送られるのを期待しています。

  • SQL 完全に一致したデータを検索抽出

    SQLのテーブルから完全に一致したデータを抽出するにはどうすればよいでしょうか。 仮に、dayとweatherの2つのカラムでテーブルを作成 <?php /* 検索フォーム */ ?> <form action = "index.php" method="post">           <table> <tbody> <tr> <th>月</th> <th>天気</th> </tr> <tr> <td><input type="text" name="day"></td> <td><input type="text" name="weather"></td> </tr> </tbody> </table> <input type="submit" name="submit" value="検索"> </form> <?php /* 検索 */ ?> <?php ~略~(SQLを呼び出す) $pdo = connect(); $st = $pdo->query("SELECT * FROM table WHERE day LIKE '%" . $_POST["day"] . "%' ); $word = $st->fetchAll(); ?> とします。 カラム「day」の中に「2」「12」「25」のデータが入っていたとします。 この場合、検索フォームで「2」と入力して検索すると 「2」「12」「25」全てのデータが抽出されます。 そうではなく、「2」のデータだけが抽出されるにはどうしたらよいでしょうか? 検索フォームを作る時は、上記のLIKEを使ったものしか知らないので、困っております。 何卒よろしくお願いします。

    • ベストアンサー
    • MySQL
  • PHP POSTでデータ登録について

    PHP初心者です。PHP簡単な管理システムを作っていますが、データベースにデータ登録がうまくできないので、教えてください。 データ登録が出来ますが、登録ページの中に <a href ="xxx.php">に追加して、リンクをクリックしたら、空データがそのまま登録されてしまった。 フォーム中のボタンを押さないとデータ登録ができない設定するのを作りたいですが、ソースコードのどこで修正したら、ページリンクしても自動的に空データ登録できないのか? <form id="frmIpunt" name="frmIput" method="post" action=""> <table width="600" border="0" cellspacing="0" cellpadding="0"> <tr> <th colspan="2">新規店舗登録</th> </tr> <tr> <td>店舗名</td> <td> <span id="sprytextfield1"> <label for="shops_name"></label> <input name="shops_name" type="text" id="shops_name" size="10"> <span class="textfieldRequiredMsg">未入力</span></span> </td> </tr> <tr> <td>住所</td> <td><input name="shops_address" type="text" id="shops_address"></td> </tr> <tr> <td>電話番号</td> <td><input name="shops_tel" type="text" id="shops_tel"></td> </tr> </table> <input type="submit" class="order-button" value="登録する"> </form>

    • ベストアンサー
    • PHP
  • フォーム送信できないのは<TABLE>が原因?

    見当はずれの質問かもしれません。次のように、テーブルの中にフォームを入れてあります。その関係でしょうか、submit ボタンを押してもCGIプログラムにアクセスしません。私の方が何かを勘違いしているのかもしれませんが。。。。 <BODY bgcolor="#b08317"> <table border=4 width=680 align=left> <tr bgcolor="#cccccc"> <form method="GET" action="do_select.cgi" name="resultform"> <th> <textarea name="DATA" cols=52 rows=6> </textarea> </th> for ($i = 0; $i <= $#yakugo; $i++) { $yakugotext=$yakugotext . $yakugo[$i] . '$';} print <<EOD; <textarea name="hiddenyakugo" cols=1 rows=1>"$yakugotext"</textarea> <input type="submit" name="search" value="送信"> <INPUT type="submit" name="search" value="↑"> <INPUT type="submit" name="search" value="↓"> </form> </tr> </th> </table></BODY> もし、原因や改善のアドバイスをいただければ幸いです。

    • ベストアンサー
    • Perl

専門家に質問してみよう