perlでURLに引数を入れるで表示する方法

このQ&Aのポイント
  • perlでURLに引数を入れて表示する方法について説明します。
  • 現在の方法はMETHOD=GETで渡す方法ですが、コマンドライン引数で渡す方法に変えたいです。
  • 具体的なプログラムの記述についてアドバイスをいただきたいです。
回答を見る
  • ベストアンサー

perlでURLに引数を入れるで表示する方法

現在以下のURLで正常に表示しています。 http://hoge.jp/i.cgi?id=a これを http://hoge.jp/i.cgi?a で表示させたいと思うのですが、ウエブで調べましたら「METHOD=GETで渡す」方法が現在のやり方 で「コマンドライン引数で渡す」方法に変えたいのですが、perlの記述がいまいちわからず迷ってます。 プログラムはファイルを読み込んで if ("$idno" eq "$id") のこの$idの条件式でヒットさせているものになります。 変数記述等アドバイスいただけますと助かります。 うまく説明できずすみません。 よろしくお願いいたします。

  • Perl
  • 回答数1
  • ありがとう数1

質問者が選んだベストアンサー

  • ベストアンサー
  • notnot
  • ベストアンサー率47% (4848/10261)
回答No.1

URLの ? の後の物は、QUERY_STRINGという環境変数に入るので、下記で参照できます。 $ENV{"QUERY_STRING"}

hihin2003
質問者

お礼

早速の回答ありがとうございます。 無事動作出来ました。

関連するQ&A

  • Perl(cgi)からPerl(cgi)への引数

    (1)Perl(cgi)から(2)Perl(cgi)へ引数(データ)を渡す方法を教えてください。 プログラムの流れとしましては、 (1):データベースを検索&該当結果の番号をリンクで表示 (2):(1)でクリックしたリンクと対応する結果を表示 となっております。 また、セキュリティの事を考えて「POST」で送りたいと考えています。 よろしくお願いいたします。

    • ベストアンサー
    • Perl
  • パールについて

    CGIでの環境変数を使ってホスト名を取得するときの (($host eq "") || ($host eq $addr)))の文のなかで使われている ||の意味が分かりません。とても初歩的な質問のような気がするのですが教えて頂けませんか。言語はパールです。

    • ベストアンサー
    • Perl
  • フォームのアクションから引数をとる

    <form action="test.cgi?ref=5" method="post"> このような感じで、引数を送ります。 my $cgi = CGI::new(); my $ref = $cgi->param('ref'); if ($ref eq 0){ (省略) }elsif ($ref eq 5){ こんな感じでプログラムを書きました。 アドレスを見ても、ちゃんとref=5となっていますし、 普通に<a href="test.cgi?ref=1">などのリンクから飛べば、指定したifの処理に入ります。 しかし、 <form action="test.cgi?ref=5" method="post"> 上のフォームのsubmitから送ると、ref=5のifが判別されません。 どうすれば、判別してくれるのでしょうか? ご存知の方がいらっしゃいましたら、ご教授ください

    • ベストアンサー
    • CGI
  • URLに引数を渡す良い方法

    お世話になっております。 URLに動的に引数を渡したいのですが、効率のよい方法が思いつきません。 <a href="/?1=1<?($id)?'&id='.$id:'')?><?($page>0)?'&page='.$page+1:'')?>&sort=created">最新順</a> <a href="/?1=1<?($id)?'&id='.$id:'')?><?($page>0)?'&page='.$page+1:'')?>&sort=popular">人気順</a> <a href="/?1=1<?($id)?'&id='.$id:'')?><?($page>0)?'&page='.$page+1:'')?>&sort=comment">コメント順</a> このように見づらいコードになってしまいます。 みなさんはどのような方法で解決されているでしょうか?

    • ベストアンサー
    • PHP
  • URLに表示されるパラメータについて

    携帯用のメンバー制cgiを使っています。 クッキーで式でなく、パラメータ(引数)にIDとPASSに渡してページ間をリンクさせるのでURLにIDとPASSが丸見えになります。個人的に不安を感じるのでパラメータ部分を暗号や記号みたいなものに変換してURLに表示させる簡単な方法はないでしょうか?Perlの知識はほとんどない私ですが、アドバイスをいただけたら幸いです。 以上、よろしくお願いします。

    • ベストアンサー
    • CGI
  • perl言語でのURL取得

    perl言語にてCGIを書いてます。 皆様のお知恵を借りれればと思い、質問させていただきます。 CGIで表示されたページのURL(クエリを含む)を変数にしたいと思っています。 CGI.pmではクエリを含めることができずに困ってしまいました。 URI.pmで合成するのが無難でしょうか?

    • ベストアンサー
    • CGI
  • CGI間のデータ送信について(perl)

    perlのcgiで詰まってしまったので質問します。 現在困っていることは、cgiからcgiへの変数の値の受け渡しについてです。 色々調べてやってみたのですが、うまくいきません。 送信側で print "<form action = \"sendmail.cgi\" method=\"post\">"; print "<A href =\"sendmail.cgi?$array1[0]&$array1[1]&$array1[2]&$array1[3]\">sendmail.cgi</A>"; print "<input type=\"submit\" value=\" ボタンです。 \">"; print "</form>"; として 受信側で # postでもgetでも受信できるようにする if ($ENV{'REQUEST_METHOD'} eq "GET") { $data = '1'; $testmsg = "GETで受信"; $formdata = $ENV{'QUERY_STRING'}; print("$formdata<BR>"); } elsif ($ENV{'REQUEST_METHOD'} eq "POST"){ # こちらを使用している $data = '2'; $testmsg = "POSTで受信"; $length = $ENV{'CONTENT_LENGTH'}; read(STDIN,$formdata,$ENV{'CONTENT_LENGTH'});# $dataに受信する print("$formdata<BR>"); } else { $data = '3'; $testmsg = "受信することができませんでした。<BR>"; } としてpostにて受信しようとしています。 postのif文には入ったようなのですが、データが空っぽで何も入っていないようなのです。 何が原因なのでしょうか?助けてほしいです。

    • 締切済み
    • CGI
  • Perlでsub a($)のように$をつける効果は? 引数の細かい仕様について

    よくPerlの書籍にsub a($$)のように$をつけるのは、 その関数の引数を明示するのに記述面で優れていると重いますが、他に何か効果や果たす役割はあるのでしょうか? また sub a(){と sub a{の記述の仕方で動作が異なることはあるのでしょうか?

    • ベストアンサー
    • Perl
  • 動的にonclickを割当ながら、引数を正しく渡す方法を教えてください。

    皆様のお知恵を拝借させてください。 以下のように、HTML上の<div id="contents">の子になっている <div>のa~cに、動的にonclickの動作を割り当てようとしています。 Javascriptの独自関数abcの引数として、"contents"を渡すことにより、 その子となっている<div>を取得し、 それぞれについて、 「A~Cをクリックすると、それに該当するdivのidを表示する」 という内容になっています。 私の期待としては、  Aをクリックするとa  Bをクリックするとb  Cをクリックするとc を表示させたいのですが、 どれをクリックしてもcが表示されてしまいます。  ---------------------------------------------- <div id="contents"> <div id="a">A</div> <div id="b">B</div> <div id="c">C</div> </div> <script> abc("contents"); function abc(contents){ var elm = document.getElementById(contents); var cn = elm.childNodes; for (var i = 0; i < cn.length; i++) { var oElement = cn[i]; ★ document.getElementById(oElement.id).onclick = function(){def(oElement.id);}; } } function def(id){ alert(id); } </script> ------------------------------------ 要するに、 「動的にonclickの動作を割り当てることができる」 「引数がただしく渡せる」 の2つが満たしたいのですが、上記のような方法しかわからず、 行き詰ってしまっています。 また、説明を簡略化するためにあえてdef()の中身は、 alertのみにしていますが、実際にはもう少し複雑な処理をさせています。

  • CGI(Perl)とHTMLについて

    CGI初心者です、Perlの知識は皆無です。 質問は2つあるのですが・・・ 1、CGIのページを例えば画像を呼び出すようにHTMLで指定できるのでしょうか? 画像であれば<img src=".../AAA.gif">ですが、こんな感じでCGIのページ自体をHTMLの指定した枠に呼び出すことはできるのでしょうか。 2、CGIページのカスタマイズ 現在、CGIレスキューさんからダウンロードしたファイルをカスタマイズしています。 条件指定ができる検索データベースです。 設置と動作確認はできたのですが、思うようにレイアウトできないでいます。 Perl記述中にテーブル(HTML)を挿入すると、プルダウンメニューから選択項目が飛び出してしまうのです。 (おおざっぱに記述すると) print <<"---HTML---"; あいうえお<select name="aiueo" size=1> ---HTML--- forseach $i (@AIUEOs) { print "<option value=\$i\"$pref_selected{$i}>$i</option>\n";} print <<"---HTML---"; </select> <p> (略) ---HTML--- こんな感じです、変数の部分は変えてます。 ずっと上の方で、 @AIUEOs = ("あああ", "いいい", "ううう", "えええ", "おおお"); と、変数が定義されてるようです。 名称かきく「プルダウンメニューA」 名称あいうえお「プルダウンメニューB」 要は、「 」の部分を揃えたい(縦に整列)のですが、うまくいきません。プルダウンメニューが飛び出してしまいます。 2段目のHTML記述部分がなぜ閉じタグから始まっているのかもよくわからないです。 端折ってますので、分かりにくいと思いますが、コメントいただける方、よろしくお願いします。

    • ベストアンサー
    • CGI

専門家に質問してみよう