CGIだけど、なんか質問ある? Part 6
■ このスレッドは過去ログ倉庫に格納されています
0001nobodyさん
02/07/06 13:41ID:Mpxtn4bk※CGIは特定の言語に依存するものではありません。
※Perlのコーディングに関する質問は専用スレがありますのでそちらでお願いします。
↓
Perl 初心者コーナー Part13
http://pc.2ch.net/test/read.cgi/php/1022731565/l50
過去ログ・関連スレッドは >>2
0352nobodyさん
02/07/30 02:14ID:???フォームその3でscalar2 scalar3しか表示されないのはあたりまえかと
0353nobodyさん
02/07/30 02:23ID:???hairetu1もhairetu2も渡されないから渡されるとしたらscalar2かscalar3
だけだろう。
また、&form1実行後画面においてhairetu1に入力するかどうかによって次の
フォームが1つや2つに変動する可能性もある。
0354347
02/07/30 02:32ID:???ありがとうございます。
でもフォームその2のところで,
@hairetu1 = split(/,/,$FORM{'hairetu1'});
@hairetu2 = split(/,/,$FORM{'hairetu2'});
$scalar1 = $FORM{'scalar1'};
と,フォームの内容を変数に格納しておいたんですが,
どうしてこの中身が消えてしまうのでしょう?
0355nobodyさん
02/07/30 02:37ID:???mode=form2のときだけです。
if ($mode eq 'form2') { &form2; }
0356347
02/07/30 02:42ID:???ええと,一度代入を行えばその中身はずっと保持されるわけじゃないんですか?
0357nobodyさん
02/07/30 02:50ID:???0358347
02/07/30 02:55ID:???すると&form3にデータを持ち越すには,
引数をつけて呼び出してやれば良い訳ですかね?
0359nobodyさん
02/07/30 02:58ID:???取得した値を出力HTMLフォーム内にhiddenタグで埋め込んで出力する。
0360347
02/07/30 03:04ID:???ごく初歩な質問に親切なご回答ありがとうございました。
精進します。
0361nobodyさん
02/07/30 10:11ID:???書かなきゃいけないのですか?
別にいらないよ。
スクリプトがそこで終わることを明示してるだけ。
そのトークンから先はパースしないから、Perlとは関係ないものを書ける。
大抵はドキュメントを書いたり、スクリプト内に大量のデータを埋め込んだりするときに使うね。
0363nobodyさん
02/07/30 11:11ID:???書かなければいけないということは無い。
0364nobodyさん
02/07/30 19:07ID:0gW7G4YTcgi-binはしーじーあいびんじゃなくて
しーじーあいばいんだと聞いたのですが本当ですか?
なんか、ばいなりの”ばい”らしいのですが。
おねがいします
0365nobodyさん
02/07/30 19:58ID:???0366ごめんなさい1
02/07/30 22:43ID:aKXjz8b/内容的にWEB制作版なんですがちょっとこっちのが安心なんで質問させてください。
お世話になっています。
ちょっとはまり気味なのでお知恵をいただきたく思ってます。
早速ですが。
イメージ的には以下のような感じです。
チェックボックスを選択していない場合エラーを返します。
<script language="Javascript">
<!--
function chkNull() {
var cnt = 0;
for(i=0; i <= document.forms[0].stock.length-1;i++){
if (document.forms[0].stock[i].checked == true){
cnt=cnt+1 ;
}
}
if (cnt < 1){
alert('少なくとも1つは選択してください');
return false;
}
return true;
}
//-->
</script>。
0367ごめんなさい2
02/07/30 22:46ID:aKXjz8b///このフォームは動的な部分。SQLのレコード数で0回以上ループしている。
<input type ="checkbox"
name="stock" value="#SQL.RESULT#">hoge
</form>
これで動かすとレコードが2つ以上の場合は、予定通り動くのですが、レコードが1つの場合、チェックボックスをONにしているにもかかわらず、チェックに引っかかってしまいます。
しらべてみると、レコードが1つの場合
document.forms[0].stock.length
がイメージでは1になるはずが配列として評価されていないみたいです。UNDEFINEDを返しています。
じゃ場スクリプトの勉強が足りないためちょっと嵌まっています。
ほかの方法も含めアドバイスがあればおねがいします
0368nobodyさん
02/07/30 22:56ID:???0369ごめんなさい2
02/07/30 23:12ID:aKXjz8b/0370nobodyさん
02/07/30 23:32ID:TwJHY/7Zか1000まで行ってHTML化されて過去ログとなります。
つまり、ある段階まではそのリンクをクリックして普通にスレッドが表示されま
す。
次の段階では、「HTML化を待つしかない!」という表示になります。
最終段階では「隊長!過去ログ倉庫で発見しました!」という表示になって、
そこのリンクをクリックすると出てきます。
この最終段階まで行ったときに、訪問者にいちいち画面の下のほうにあるリンク
を探させてクリックさせるのがイヤなので、HTML化が済んだスレッドは自動的に
リンクを過去ログ倉庫の方に変更したいのです。
どうすればいいですか。
ちなみに現状は、1週間ごとに手動でリンクをクリックしてHTML化されていれば
手動でリンクを変更しています。
HTML化されているスレッドであれば、「隊長!過去ログ倉庫で○○を発見しまし
た!」という文字列があるので、その文字列があるかどうかを検索し、もしあれ
ばそのURLをコピーして自動的にリンクをアップデートする、というロジックで
いいのでしょうか。
誰かがスレに「隊長!過去ログ倉庫で○○を発見しました!」って書いたらどう
すればいいでしょうか。
0371nobodyさん
02/07/31 00:48ID:???殆ど理解出来ないけど
「隊長!過去ログ倉庫で発見しました!」
とスレッド内の書き込みは違うセッションでしょ?
/隊長!過去ログ倉庫で発見しました!/ (HTML確認)
↓
Location または meta (クリック)
↓
スレッド内に
隊長!過去ログ倉庫で発見しました! (要求達成)
0372初心者ですいません。
02/07/31 21:50ID:???初心者で説明下手ですが申し訳ありません。
KENTの「SUN BOARD」を設置しようとしたのですが、どうしてもうまく表示できません。
http://www.kent-web.com/bbs/sunbbs.html
もしかして「$htm_dir」を「/public_html」にしたのが間違いなのかと思ったりしたのですが、正直わかりません。
説明書き通りにダウンロードしてプログラムの修正もして「lockフォルダ」も作ったのですがうまく表示されません。
大変困っている状態が1週間も続いておりますが、どなたか迷惑でなければ親切に詳細に教えていただけないでしょうか。
本当によろしくお願いいたします。
チェックモードの表示
./sunbbs.log のパス:OK
./sunbbs.log のパーミッション:OK
./public_htmlindex.html のパス:NG
./public_htmlindex.html のパーミッション:NG
./public_htmlindex2.html のパス:NG
./public_htmlindex2.html のパーミッション:NG
ロック形式:symlink
ロックディレクトリ:./lock
ロックディレクトリのパス:OK
ロックディレクトリのパーミッション:OK
過去ログ:設定あり
NOファイルパス:OK
NOファイルパーミッション:OK
過去ログディレクトリのパス:NG → ./past/
0373nobodyさん
02/07/31 21:55ID:???0374nobodyさん
02/07/31 22:01ID:???http://www.kent-web.com/support/ 逝け。
0375372・初心者ですいません。
02/07/31 22:18ID:???0376教えてください。
02/07/31 22:19ID:tRDjSXEOCGI設置してみてパスもPerlもパーミッションもあってるのですが
なぜかエラーがでてしまいます・・・
なにか他に原因はあるのですか?
0378nobodyさん
02/07/31 22:42ID:???転送モードは?
CGIの使える鯖?
SSIは使っている?使える鯖?
sendmailは使っている?使える鯖?
外部参照禁止鯖とか?
サーバの設定でhtml、CSS、画像がCGIだけ別鯖になっていない?
何処のスクリプト?
あなたが組んだの?
ローカルでは動いた?
つーか、ソース晒せコラァ!
0379教えてください。
02/08/01 00:10ID:Xu6VR8fOパスはあってるはずなんですが・・・
転送モードはアスキーモードです。
CGIは使えるはず!
SSIは・・・わかりません。
そのあとは・・・まったくわかりません・・・
すみません初心者な者で・・・
いろいろなところのでためしてみました。
KENT.WEBとかエイプボードとかタッキーさんのところのとかやってみました。
ソース?どうしたらいいのですか??
0380nobodyさん
02/08/01 00:10ID:???>もしかして「$htm_dir」を「/public_html」にしたのが間違いなのかと思ったりした
普通はありえないパスだろ、まぁサーバ調べないと断定はできないが・・・
0381nobodyさん?
02/08/01 00:29ID:???勉学が足りませんな。
ソースといえば、そのCGIの配布元等へのリンクでいいのです。
後は、貴方の使ってるサーバー環境を書いておくと。
0382教えてください。
02/08/01 00:35ID:Xu6VR8fOごめんなさい。
サーバー環境とかよくわからないのですが・・・
リンクとは??
ほんとにごめんなさい〜。
0383nobodyさん
02/08/01 00:40ID:???そこまで知識がないなら、自分で設置しない方がいいと思う。
トラブル起こして他利用者に迷惑かけるかもしれないし。
BBS程度なら、レンタルで探した方がいいぞ。
それで、レンタルしてる間にもっと初歩から勉強しろ。
0384教えてください。
02/08/01 00:45ID:Xu6VR8fOお勉強しておきます。
0385nobodyさん
02/08/01 13:59ID:qdgiH1MDパブリックはルートになるだろうから、cgiに指定するような場合は、書いちゃだめだろ。
あと、パーミションでNGってでてるのに、いいの?
0387nobodyさん
02/08/01 16:58ID:oYTgtzZ00388nobodyさん
02/08/01 17:08ID:???0389nobodyさん
02/08/01 19:45ID:???配布サイトからDLしたCGIを
自鯖にウプして日記をつけてるのですが、
解析に引っかからないかとヒヤヒヤしています。
掲示板も…。
ロボットよけタグを埋めこみたいのですが、
できるものなのでしょうか?
ここのサイトのを使ってます。
ttp://www.t-okada.com/cgi/
0390nobodyさん
02/08/01 19:59ID:???ttp://pc.2ch.net/test/read.cgi/php/1028193595/
【 スクリプト改造工房 PART 5 】
0392nobodyさん
02/08/03 23:31ID:8gDBPjZ01つの form タグのなかに 2つの submit ボタンを作って
cgi の中でどっちのボタンが押されたのか判断するには
どうしたらよい?
0393nobodyさん
02/08/03 23:34ID:???ダメなん
0394nobodyさん
02/08/04 00:03ID:??????
<input type="submit" name="button1" value="ボタン1">
<input type="submit" name="button2" value="ボタン2">
として、
if( $form{ button1 } eq 'ボタン1' ) { ... }
ってこと?
0396nobodyさん
02/08/04 00:52ID:???0398396
02/08/04 01:08ID:???fscanfと同様の動作をする関数ってCGIだとなんていうの?って意味だったんだけど。
CGIでもfscanf(FILE *stream, const char *format, ...)とかって使うのかな?
0400nobodyさん
02/08/04 01:18ID:???Perl に scanf があるかってことか?
0402nobodyさん
02/08/04 06:57ID:RYk8zHFq突然恐れ入ります。
134でリンクされている URLの意味がわかる方いらっしゃいます?
0403nobodyさん
02/08/04 07:43ID:???もう遅いかな。
Perl本のPOSIXモジュールの項より抜粋。
scanf - C固有のものである。代わりに<>と正規表現を使うこと。
だそうだ。
0404403
02/08/04 07:45ID:???0406nobodyさん
02/08/04 12:30ID:cDdwUQe9みんな CGI のメッセージは Shift_JIS で書いてるの?
0408nobodyさん
02/08/04 12:41ID:???0409nobodyさん
02/08/04 12:57ID:???2ch の CGI プログラムの表示って Shift_JIS でしょ。
CGI を EUC-JP で書くとプログラム内に埋め込まれた
メッセージも EUC-JP になるわけで、そうすると受け
取ったデータの表示とかも EUC-JP で扱わなきゃだめなん?
0411410
02/08/04 13:02ID:???0412409
02/08/04 13:13ID:???Perl だけど。
EUC-JP だと AA とかチルダとかエンマークとかどうなっち
ゃうのかなって思ったけど問題ないみたいだからいいや。
CGI プログラムも EUC-JP で、フォームから受け取った
データも jcode.pl の convert で euc に直して扱えば
いいですよね。
0414nobodyさん
02/08/04 14:11ID:???>>394 だけど、よく分からない。
<input type="submit" name="button" value="ボタン1">
<input type="submit" name="button" value="ボタン2">
if( $form{ button } eq 'ボタン1' ) { ... }
ってこと?
0415nobodyさん
02/08/04 14:54ID:???バカ?
0418nobodyさん
02/08/04 16:04ID:???http://web.archive.org/web/20010123233000/http://www2.plala.or.jp/Nieztche/mammy/
0419414
02/08/04 16:17ID:???394 で聞いて、414 で試してうまくいかないから
きいてんだけど。$form{ button } が空だよ。
0421nobodyさん
02/08/04 16:29ID:???>420 ハァ?
0422nobodyさん
02/08/04 16:34ID:???0423414
02/08/04 16:38ID:???value に日本語使うのやめたらでけた。サンクス。
あと、417 は僕じゃないですよ。
0424nobodyさん
02/08/04 17:18ID:???0425nobodyさん
02/08/04 17:41ID:???0426nobodyさん
02/08/04 17:47ID:???nameには使わないけどね。
0427nobodyさん
02/08/04 18:01ID:J46SL+QD0429nobodyさん
02/08/04 20:57ID:???フォームの内容を確認してから実際に登録するような
CGI では、
1.フォームに入力
↓
2.確認ボタンを押す
↓
3.HTML で入力データが表示される
↓
4.確認して登録ボタンを押す
↓
5.実際に登録
というような手順を踏むと思うのですが、
4.で登録ボタンを押して送信される入力データは
どこに確保あるのでしょうか?
0430nobodyさん
02/08/04 21:04ID:???0431nobodyさん
02/08/04 21:07ID:???0432nobodyさん
02/08/04 21:39ID:???レスありがとうございます。
やっぱり hidden ですか。hidden はデータが大きかったり
複数行にわたるデータの場合に html に埋め込むのはあまり
エレガントではない気がするんですが。
セッションは使ったこと無いのでよく分からんです。
0433nobodyさん
02/08/05 14:30ID:???さっきまでは大丈夫でした。
ローカルではエラーが出てないです。
サーバーのログを見るとテキストファイルがビジーです。と出ます。なにこれ?
サーバを見てみないとなんとも言えないなぁ。
ホスト名とアカウントは?
0435nobodyさん
02/08/05 14:49ID:???0436nobodyさん
02/08/05 14:54ID:???短時間に何回もアップロードやりまくってたらエラーが出たんでサーバーが疲れてたのかもしれません。
0437nobodyさん
02/08/05 15:24ID:???0438nobodyさん
02/08/05 20:21ID:Cv0Vcdj10439nobodyさん
02/08/06 16:13ID:ov0Bn0l9xmlをhtmlに変換する事はできますか?
xmlとxslだけではIEでしか表示できないので普通に手作業で、
msxsl.exeを使ってhtmlへ変換していましたが
今回はcgiでxmlを生成してそこからhtmlへ変換することになったのです。
なのでmsxsl.exeの役割をcgiの中でも出来るのかどうかというわけなのです。
0440nobodyさん
02/08/06 16:18ID:ov0Bn0l9という話です。
0441トウモロコシ
02/08/06 18:39ID:AiGWWT1t0442nobodyさん
02/08/06 18:46ID:???HTTP圧縮の際にも利用される。
0443トウモロコシ
02/08/06 18:51ID:AiGWWT1t0444nobodyさん
02/08/06 18:54ID:+CLAZ6EKcgiからの出力を、ブラウザの戻るボタン押下時に意図的にリ
ロードさせたいだけなんですが。。。
<%
Response.AddHeader "Expires", "0"
If Request.ServerVariables("SERVER_PROTOCOL") = "HTTP/1.0" Then
Response.AddHeader "Pragma","no-cache"
Response.CacheControl = "no-cache"
Else
Response.CacheControl = "no-cache"
End If
%>
とか
<meta http-equiv="Pragma" content="no-cache">
<meta http-equiv="Expires" content="-1">
とか
試したんですが無理でした。
誰かよろしくお願いしますっ!
0445nobodyさん
02/08/06 19:21ID:???ttp://tohoho.wakusei.ne.jp/wwwxx008.htm
0446nobodyさん
02/08/06 19:30ID:???CGI 利用可能なレンタルスペース(鯖?)
ではだいたい Jcode.pm は使えるのでしょうか?
0448nobodyさん
02/08/06 20:10ID:???<meta> タグで漢字コード euc-jp 指定して、
CGI の出力も EUC-JP にしてるのに Mozilla
で文字化けするんですけど、どうにかなりませんか?
ブラウザのフォントを日本語(EUC)にする。
0450nobodyさん
02/08/06 20:28ID:???AutoDetect して欲しいんです。
■ このスレッドは過去ログ倉庫に格納されています