• 締切済み

POSTについて。初心者にもわかるように教えてください。

けっこうどの文献みても、htmlのinputからのデータ引渡しについては結構書いてあるのですが、cgiで使用した変数を、次のcgiへ引き継ぐ方法はあまり書かれていません。(見ている文献が初心者用ばかりだという理由もあるかと思いますし、どっちにしろちんぷんかんぷんなのですが・・) 以下のような例の場合に、abc.cgiおよび、xyz.cgiには、どのような記述をすればよろしいのでしょうか? 例 abc.cgi csvデータの取り込み $a="Iam2888" $b=2888  ↓  ↓ $a、$bのデータを受け渡し  ↓ xyz.cgi 変数の引継ぎ 質問が、初歩的すぎて申し訳ありません

  • CGI
  • 回答数3
  • ありがとう数0

みんなの回答

  • leaz024
  • ベストアンサー率75% (398/526)
回答No.3

 abc.cgi、xyz.cgi は、それぞれ HTML を出力するのですか? だとすれば、直接変数の値を渡す方法はないと思います。  やはり出力する HTML に HIDDEN データとして変数名と値を持たせ、画面遷移を行うボタンで(リンクで遷移するならJavaScriptで)送信するようにすれば、POST で渡せますよね。  あるいは、init.pl などに csv データの取り込みルーチンを書き、両 CGI から require すれば、引継ぎではないですが値は共有できると思います。 (csv が、リアルタイムに更新されなければの話ですが)

  • flame
  • ベストアンサー率100% (3/3)
回答No.2

容量が小さいのであれば、abc.cgiの出力として、<input type="hidden">タグを送り出し、xyz.cgiを呼び出すときにデータを渡すようにすればいいと思います。 容量が大きくて、ブラウザを経由して渡すのが難しい場合には、たとえば、クッキーかhiddenタグで、abc.cgiで作成したデータファイルの名前をブラウザに渡し、xyz.cgiでそのファイル名のデータファイルを読み出して処理すればうまく行くと思います。 データファイルの名前は、たとえば time . $$ というような値を使えば、重複の可能性はほとんどないと思います。$$は、プロセス番号を表す特殊変数です。 なお、ファイル名がおかしくなっていないかどうかきちんとチェックしないと、セキュリティホールになりかねないのでご注意を。

Iam2888
質問者

補足

ブラウザを経由してってことは、それってたぶんGETですよね? postで渡すっていうのは無理なのでしょうか、やり方としてやっぱりクッキーしかないんでしょうかねぇ。 クッキーもちんぷんかんぷんですけど(涙) なんか、初心者でも明朗に理解できる、get以外の手っ取り早い方法ってありませんでしょうか?雛形書いてくれたら助かるなぁ。

  • m-to
  • ベストアンサー率0% (0/0)
回答No.1

一回、別のデータファイルにCGIから書き込んで 次のCGIファイルを使うときにまた読み出せばいいのではないでしょうか?

Iam2888
質問者

補足

そうすると、多数の人が利用していた場合、タイミングによっては、一度書き換えた別のデータファイルが、他人によって作業が終了しないうちに書き換えられるって可能性ありませんか? どなたか、POSTによるperlの雛型を提示していただくと助かります。

関連するQ&A

  • request.getについて

    jspのデータの引き渡しで以下のような現象が発生しました。 変数名"A"ではデータの引き渡しができない。 変数名"B"ではデータの引き渡しができる。 このような現象は起こり得るのでしょうか? 何が原因として考えられるでしょうか? =================================================================================================== for( ~ ) { ・・・ <td><input type="textbox" name="A" value= "test1" /></td> <td><input type="textbox" name="B" value= "test2" /></td> } ==================================================================================================↓画面遷移後 (1) String[] get_A = request.getParameterValues("A");←データを受け取れない。 (2) String[] get_B = request.getParameterValues("B");←データを受け取れる

    • ベストアンサー
    • Java
  • 半角スペースを有効にしたい

    Dim aa As String InpF1 = "c:\bb.csv" Open InpF1 For Input As #1 Do Until EOF(1) Input #1, aa Loop close #1 上記の構文で入力データの値が "XYZ     " ・・・後ろが半角スペース の時、読み込みされたデータが "XYZ"だけになります。 これを"XYZ     "の形でaaに取り込みすることは 可能でしょうか? よろしくお願いします。

  • 変数をリンクで使う

    Aのホ-ムPから、Bのホ-ムPへ 下記のコ-ドで print "<A HREF=\"./cgi-bin/photobbns.cgi?mode=disp&no=$abc\">\n"; 変数$abcを引数としてリンクで渡しBのホ-ムPで変数$abcを 使用したいのですが、変数$abcが数字の時は使えるのですが 変数$abcが文字の時は使えません、 文字の時も使える方法はありますか。

    • ベストアンサー
    • CGI
  • CGI.pmのcheckboxの-labelにHTMLタグを含んだ文字

    CGI.pmのcheckboxの-labelにHTMLタグを含んだ文字列を渡すことはできますか 具体的には、CGI.pmのcheckbox関数を使って次のような文字列を生成したいです <label><input type="checkbox" name="abc" value="xyz" accesskey="A" />abc(<span style="text-decoration: underline">A</span>)</label> 次のソースでうまくいくと思ったのですが、 $q->checkbox(-name => 'abc', -value => 'xyz', -accesskey => 'A', -label => 'abc(' . $q->span({-style => 'text-decoration: underline'}, 'A') . ')') 実際に返される文字列は、 <label><input type="checkbox" name="abc" value="xyz" accesskey="A" />abc(&lt;span style=&quot;text-decoration: underline&quot;&gt;A&lt;/span&gt;)</label> のように-labelに指定したHTMLタグが&○○;のようにエスケープされてしまいました・・・(T_T)

    • ベストアンサー
    • Perl
  • htmlのフォームからcgiにデータを渡す方法

    下記[例1]のhtmlで作成したフォームから下記[例2]のcgiへデータを渡したいのですが、 どのようにしたら良いのでしょうか? 初心者なので全くわかりません。 お手数とは存じますが、ご享受お願い致しますm(__)m [例1] <form method="post" action="xxx.cgi"> <input type="text" name="a" value="" size="10" /> <input type="text" name="b" value="" size="10" /> <input type="submit" value="送信" /> </form> [例2] *****($a,$b); 上記[例1]の、aとbを、cgi[例2]の$aと$bに。 質問内容が分かりにくくて申し訳ございませんが、よろしくお願い致します。

    • ベストアンサー
    • CGI
  • 文字列の括弧について(初心者)

    textに自分で入力した値を変数文字列として扱う場合に、括弧を使いたいのですが、 例 Dim A as string Dim B as string A = Text1.text B = "abc" としてコマンドボタンを押したときにAとBの値が同じ場合(Aがabc)は1をAとBの値が違うときは0を出力するプログラムを作ったのですが、これに追加で括弧()や[]をつけても1を出力するプログラムが作りたいのですが、よくわかりません。 Text1.textの値が(abc)か[abc]でも1を出力、 [ab]cやa(b)cでも1を出力、(abcやa)bc(やa(b(cのときは0を出力するプログラムが作りたいのです。 どうか教えてください。 おねがいします。

  • CGIから別のCGIへPostするには?

    こんにちは。 a.cgiにアクセスがあったらb.cgiに<data=hoge>というデータを postしたいのですが、どうすればいいのですか? よろしくお願いします。

    • ベストアンサー
    • CGI
  • 外部jsファイルの変数に代入するには?

    初心者ですがjavascriptについて質問です。 なんらかの値を外部ファイル内の変数に代入させることは可能なのでしょうか? うまく説明できませんが・・・ あるjsファイル内の文字をリンク先の外部jsファイル内の変数の中に入れたいです。 <例> abc.js の中にある文字列"○○○" ↓ abc.jaから <a href="xyz.js">にリンク ↓ xyz.js の中の var xxx ="○○○" に、したいのですが・・・説明が下手ですみません。 わかる方是非教えてください。

  • エクセル)ファイルを検索し、セルを参照

    Aフォルダ内に入っている複数のファイルがあります。 abc01xyz.xls abc02xyz.xls abc03xyz.xls それぞれのブックのシートX、セルA1にはファイル名にある数字と同じ数字が入っています。 ■質問 abc02xyz.xlsのセルB2に、abc(abc02xyz.xlsのシートX、セルA1の値-1)xyz.xls のシートY、セルB2の値をコピーしたいのですが、どんな関数を使えばよいのでしょうか、いろいろ本をめくったり、インターネットで調べたのですが、なかなか参考になるケースがなくて困っておりまして、どなたか詳しい方、ご指南いただけませんでしょうか・・・。 INDIRECT関数を使うのでしょうか

  • エクセルでデータのリンク元が所在不明の場合

    エクセル2010です。 ABC.xlsx のあるセルは、VLOOKUP式で、XYZ.xlsのSheet1のA1:B26の表を参照しています。 ところが、リンク元であるXYZ.xlsの所在が不明です。 このような場合、ABC.xlsxが保持しているリンクの最終更新時のA1:B26の表データを取り出すにはどのようにすればよいでしょうか?