CGIからCGIへの変数の渡し方の再度教えてください
- CGIからCGIへの変数の渡し方について再度教えていただけますか?前回の質問では、1階層目ではうまくいったが、2階層目ではうまく動作しなかったとのことです。ブラウザのアドレスを更新すると受け取れることが分かりました。具体的なコードと問題の箇所を教えていただけると助かります。
- CGIからCGIへの変数の渡し方について再度教えていただけますか?前回の質問では、1階層目ではうまくいったが、2階層目では動作しなかったようです。ブラウザのアドレスを更新すると受け取れるとのことです。具体的なコードと問題の箇所を教えていただけると、問題を解決するためのヒントが見つかるかもしれません。
- CGIからCGIへの変数の渡し方について再度教えていただけますか?1階層目では動作したが、2階層目ではうまくいかなかったようです。ブラウザのアドレスを更新すると受け取れるという情報もあります。具体的なコードと問題の箇所を教えていただけると、解決策が見つかるかもしれません。
- ベストアンサー
再度:cgiから別のcgiへの変数の渡し方
再度教えていただきたいのですが。 前回 http://oshiete1.goo.ne.jp/kotaeru.php3?q=111919 で 1階層目は動いたのですが、2階層目では動きませんでした ブラウザ(IE)のアドレスで何かをさわって更新すると受け取れます。 TOP.CGIより <frame src=\"./B.cgi?UserID=$USR\" name=\"ue\" > A.CGIで受け取れました A.CGI より <FORM METHOD=POST ACTION=\"WT.CGI?U=$USR\" TARGET=\"_top\"> WT_CGIで受け取れませんでした。(ここでアドレス欄をさわって更新) WT_CGIより Location: ./TOP.CGI?U=$USR TOP.CGIで受け取れました。
- KIMV
- お礼率10% (83/770)
- CGI
- 回答数1
- ありがとう数1
- みんなの回答 (1)
- 専門家の回答
質問者が選んだベストアンサー
ごめんなさい。 質問の意味が判らないのですが・・・ 要はGET方式では動いて、POST方式では上手く動かなかったと言う事なんでしょうか? ちなみに <FORM METHOD=POST ACTION=\"WT.CGI?U=$USR\" TARGET=\"_top\"> は無意味です。 これをやるとすると、 <FORM METHOD=POST ACTION="WT.CGI" TARGET="_top"> <INPUT TYPE=hidden name="U" value=$USR> <INPUT TYPE=submit name=button value="送信する"> </FORM> とすべきです。 チェックすべき点は <FORM>~</FORM>が一対である事 送信用のボタンが存在している事 です。
関連するQ&A
- a.cgi経由で、b.cgi実行
a.cgiからLOCATIONで、b.cgiを実行したいのですが、 1つ条件がありまして、b.cgiを実行する場合は必ず a.cgi経由出なければいけないというチェックをしたいのです。 LOCATIONを使用した場合、環境変数「HTTP_REFERER」に値がセットされないみたいなのでNGでした。 またパラメータを持たせるにしても、LOCATIONはGETしか使えないので、アドレスを見ればばればれになってしまいNGです。 何かいい方法はないでしょうか? よろしくお願いします。
- ベストアンサー
- Perl
- apacheのCGI設定
pc9821にFreeBSD(98)をいれapache1.3を起動させています。cgiはlight.cgiというソフトをつかっています。なかなかcgiがうまくいきません。参考ページには public_html / index.html (トップページ) | +-- bbs / light.cgi [755] | admin.cgi [755] ・・・・(省略) +-- lock [777] / | +-- past [777] / 0001.cgi [666] とかかれていますが、実際に私のサーバーにはpublic_htmlというフォルダは存在していなくて /usr/local/www/cgi-binにbbsというフォルダをつくり あとは上のようにしています。またindex.htmlは/usr/local/www/dataのなかにいれて表示してWebサーバーとしてはたらいています。またapacheの/usr/local/etc/apacheのhttpd.confは 関係ありそうな行だけあげると ServerRoot "/usr/local" DocumentRoot "/usr/local/www/cgi-bin" <Directory "/usr/local/www/cgi-bin/bbs"> Options Indexes FollowSymLinks MultiViews <location "/cgi-bin/"> Options ExecCGI AllowOverride AuthConfig Limit Order allow ,deny Allow from all </Location> <IfModule mod_mime.c> TypesConfig /usr/local/etc/apache/mime.types ADDHandler cgi-script .cgi </IfModule> ScriptAlias /cgi-bin/ "/usr/local/www/cgi-bin/" <Directory "/usr/local/www/cgi-bin/bbs"> AllowOverride None Options ExecCGI Order allow,deny Allow from all </Directory> AddHandler cgi-script .cgi どこがおかしいのかおしえていただけないでしょうか?
- ベストアンサー
- CGI
- perlでLocation
Locationでは#xxxというのは使えないのでしょうか? #!/usr/local/bin/perl print "Location:xxx.cgi#xxx/?userID=$name\n\n"; exit; という風に書いています。 xxx.cgiはローカルにあるcgiでそのcgiの中身は表示できます。 しかしxxx.cgiの中の <xxxx.cgiの中身> print <<"EOM"; <html> . . . <A NAME="xxx>image</A> . . . </HTML> EOM exit; xxxのところでなく一番最初が表示されてしまいます。 どうすればいいのでしょうか?
- ベストアンサー
- Perl
- CGIの呼び出し方法について
CGIの設定方法について質問があります。 今まで正常に動いていたhtml書き出しのCGIファイル(A.cgi)をコピーしてB.cgiを作りました。 A.cgiに書かれているメールの送信先アドレス$mailtoを変更するとその変更が反映されるのですが、 B.cgiについて同様のことをしても変更が反映されず、変更前のアドレスにメールが送られてきます。 cgiの呼び出し元であるC.htmlにはB.cgiを呼び出すよう記述されており、 書き出されたhtmlはB.cgiとなっています。 <form action="../cgi-local/B.cgi" method="post" name=""> ですが、A.cgiを読みに行っているためA.cgiに書かれているメールの送信先アドレスに送信されています。
- ベストアンサー
- HTML
- CGIのforeach文
CGIを作成していてforeach文のところを通ってくれません。原因が不明なのですが下記でおかしいことなどがあったらおしえてください。 お願いします。 $entrycgi = "./touhyou.cgi"; $Location = '../images'; $imgVote = $Location."/click.gif"; $votefile = "./database/vtbl.dat"; sub vote_form{ print "<FORM ACTION=\"$entrycgi\" METHOD=\"post\" NAME=\"Form\">\n"; print "<INPUT TYPE=\"hidden\" NAME=\"proc\" VALUE='entry'>\n"; print "<INPUT TYPE=\"hidden\" NAME=\"Action\">\n"; print "<TABLE><TR><TD><IMG SRC=\"$Location."/top.gif\"></TD></TR></TABLE>\n"; open(FILE, "+<$votefile"); @output = <FILE>; close(FILE); print "<TABLE><TR>\n"; $i = 1; @output_sort = sort { $b <=> $a } @output; foreach $output_sort(@output_sort){ ($COUNT, $NM, $FILENM, $NO) = split(/\,/, $output_sort); $filename = $Location.$FILENM; print "<IMG SRC='$filename' HEIGHT=100 WIDTH=100></TD>\n"; if ($i == 5) { last; } else { print "<TD width=\"50\"></TD>\n"; $i++; } } print "</TR></TABLE>\n"; }
- ベストアンサー
- CGI
- CGIのディレクトリについて詳しい方よろしくお願いします。
CGIを使ううえでディレクトリを2階層にグループ分けをしたいと考えています。 そこで質問ですがディレクトリを2階層にグループ分けをするにはどうすればいいのでしょうか トップでttp://www.アカウント.com/1ディレクトリ/ トップからのリンク先で ttp://www.アカウント.com/1ディレクトリ/2ディレクトリ/**.htm 上記のような感じで考えています。 サーバーの仕様を確認したところCGI専用ディレクトリについて お好きなディレクトリに設置しても動作します。 ただし、ファイル・ディレクトリ名に 「半角英数字」「_(アンダーバー)」「-(ハイフン)」「.(ピリオド)」 以外を使用すると正常に動作致しませんのでご注意ください。 と記載されていました。 CGIやディレクトリ詳しい方よろしくお願いします。
- 締切済み
- CGI
- (CGI)お気に入り登録やアドレス直打ちを防ぐには?
フレームページ等を使用していてフレーム内のアドレス直打ち、それによるお気に入り登録を防ぐには以下のタグが有効ですよね?↓↓ <SCRIPT language="javascript"> <!-- if (!document.referrer){top.location.href="http://************";} //--> </SCRIPT> または、 <script language="JavaScript"> <!-- if(self ==top){location.href = "http://*****";} // --> </script> この「アドレス直打ち、お気に入り登録を防ぐ機能」をCGIで表す事は可能ですか? 可能ならば、とどのようになりますでしょうか? CGIで作成した掲示板の中に挿入して防ぎたいのですが・・ 宜しくお願いしますm(_ _)m
- ベストアンサー
- CGI
- HTMLからCGIの呼び出しができません。
既に作ってあるHTMLファイルをコピーして、CGIファイルの名前を変えて送信ボタンをクリックしました。CGIファイルはTITLEだけの記述にしましたが、TITLEは表示されず、http://~のようにアドレスが表示されます。HTMLファイルの方は、<form action="./A.cgi" method="post">のように修正し、CGIファイルの方には、以下のように記述してあります。何が原因でTITLEが表示されないのでしょうか? #!/usr/local/bin/perl use CGI qw(:standard); print<<END_OF_HTM; Content-type:text/html <HTML> <HEAD> <TITLE>XXXXXX</TITLE> </HEAD> </HTML> END_OF_HTM
- ベストアンサー
- Perl
- CGIだとうまくいかない!
まずは下記ソースをご覧ください。 これを実行させると上下2のフレームができまして、上フレームにある「Jump C」と いうリンクをクリックすると、下フレームが「ccccccccc」というところまでジャンプ するように作りました。 まずは実験版としてCGIでなくPC上でHTMLファイルを作成(main.cgiがmain.htmになる) しました。その時はうまく下フレームの「cccccccc」までジャンプしたのですが、これを CGIに作り直して実行させたところ、何も動作しないままでした。 CGIでもHTML上同様の動きをさせるにはどのようにしたらよろしいでしょうか? どなたかご存知の方いましたら、ご鞭撻のほどお願い致します。 -------------- main.cgi ------------------------------------- <HTML> <HEAD><TITLE>フレームテスト</TITLE></HEAD> <FRAMESET ROWS="20%,*"> <FRAME SRC="top.cgi" NAME="FRAME2"> <FRAME SRC="btm.cgi" NAME="FRAME3"> </FRAMESET> </HTML> -------------- top.cgi ------------------------------------- <HTML> <head> </head> <body> <a href="right_btm.cgi#c" target="FRAME3">Jump C</a> </body> </html> -------------- btm.cgi ------------------------------------- <HTML> <head> </head> <body> <A NAME="#a">aaaaaaaaa<br><br><br><br><br><br><br><br><br> <A NAME="#b">bbbbbbbbb<br><br><br><br><br><br><br><br><br> <A NAME="#c">ccccccccc<br><br><br><br><br><br><br><br><br> <A NAME="#d">ddddddddddd<br><br><br><br><br><br><br><br><br> </body> </html> ------------------------------------------------------------ このCGIを実行すると、
- 締切済み
- その他(インターネット・Webサービス)
お礼
TYPE=hidden を使うのですね。 うまくいきました。 初心者の上 ASPとCGI(PERL)を併用で作ってまして。 ごちゃごちゃになってしまいました。 ありがとうございました。