• ベストアンサー

変数の受け渡し

アップローダのスクリプトにダウンロードパスをつけようと日々頑張っているのですが、なかなかうまく出来ません。 例.No1をダウンロードしたい場合 一覧ページからNo.1の記事を選択       ↓ No.1をダウンロードするためのパス入力画面       ↓ No.1ダウンロードページ 上記のようにしたいのですが、 記事表示CGIからパスワードCGIへ変数を渡そうとしていますがなかなかうまくいきません。 ***記事表示CGIのパスワード入力画面*** <form action="パスワードCGIのパス" method="POST"> <input type=hidden name=No value="$no"> <input type=password name=pass size=10> <input type=submit value="認証"> ***パスワードCGIでの条件分岐*** if ($in{'pass'} ne $loginpass) { print "認証画面に戻って再度パスワードを入力して下さい\n"; } print "Location: 記事表示CGIのダウンロードページ&kno=$no\n\n"; exit; としているのですが、変数$noをパスワードCGIの方で取得できません。 CGIは最近弄り始めたばかりなのでぜんぜん分からなくて…。 そもそも <input type=hidden name=No value="$no"> でパスワードCGIの方に$noが送られているのでしょうか? 送られているのでしたら$noの取得方法を教えていただけないでしょうか。 よろしくお願いします。 P.S.拙い文章の為、分かりにくいところなどがありましたら質問してください。 分かる限りはお答えしたいと思います。

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

  • ベストアンサー
  • ren10
  • ベストアンサー率52% (9/17)
回答No.3

でしたら #1 の方の回答にあるように $in{'No'} に入っているのでは? $no = $in{'No'}; この行を $no を使う前に置くか、あるいは print "Location: 記事表示CGIのダウンロードページ&kno=$in{'No'}\n\n"; こんなんでどうでしょう?

janne-like
質問者

お礼

ありがとうございました。 皆さんのおかげできちんと動作いたしました。 これからはもっと勉強して、皆さんのように人に教えられるようになりたいと思います。 今回は本当にありがとうございました。

その他の回答 (2)

  • ren10
  • ベストアンサー率52% (9/17)
回答No.2

> そもそも <input type=hidden name=No value="$no"> でパスワードCGIの方に$noが送られているのでしょうか? 記事表示CGIのパスワード入力画面で ページのソースを確認してみて value="$no" の ところに期待する数字が入っているでしょうか? もし入っていなければその手前での問題になりますが…

janne-like
質問者

お礼

ありがとうございました。 皆さんのおかげできちんと動作いたしました。 これからはもっと勉強して、皆さんのように人に教えられるようになりたいと思います。 今回は本当にありがとうございました。

janne-like
質問者

補足

ソースを確認したところ、きちんとvalue="$no"の所には期待したとおりの数字が入力されておりました。 つまり、記事表示CGIの方には問題がなく、パスワードCGIの方にて処理できていないということでしょうか…。

回答No.1

$in{'No'} に入っているのではないですか。

janne-like
質問者

お礼

ありがとうございました。 皆さんのおかげできちんと動作いたしました。 これからはもっと勉強して、皆さんのように人に教えられるようになりたいと思います。 今回は本当にありがとうございました。

janne-like
質問者

補足

つまり、パスワードCGIの頭の方に $in{'No'} = $no; という1行を追加すればよいということなのでしょうか。

関連するQ&A