>>951 改造するより1から作り直した方がよさげ。
>>947 CGI名でググってみたけど元が積み上げ式のBBSだな。
しくみはよくみてないけど、
レスタイトルや投稿者名、投稿日時とかをログから切り出して
それにリンク貼って一覧を作んなきゃなんないし、
レス単独表示の機能がなければレスを表示する処理も作んなきゃなんない。
そのCGIに思い入れがあるのかもしれんが素直に別のトピック式?を
探した方が幸せになれるんでないかい?
954 :
947:03/09/14 13:58 ID:???
>>952 >>953 ありがとうございます。
やっぱり素直に別のを使った方が良いですか。
残念だけどそうします。
955 :
nobodyさん:03/09/14 14:56 ID:1Xlg9LW5
957 :
nobodyさん:03/09/14 17:19 ID:1Xlg9LW5
<!--#exec cgi= から呼ばれたのか、投票ボタンを押して呼ばれたのか
区別するってこと。すべてのケースで差し替えたら本体が表示されないでしょ
type="submit" の部分に nameを追加してそのnameがパラメタに含まれていたら
submitと判断すればいいのではないかな
よくわからなかったら、vote.cgiをコピーしてvote2.cgiを作り
index.shtmlからはvote2.cgiを呼び出し、
vote.cgi の Content-type ・・・ を Location: に差し替え
(Locationをprint したらexit;で抜ける)れば動作すると思う
結構初心者ですけど、
入力した文字を送信して
その文字を表示させるのってどうやってやるの?
入力欄は名前やE-mailを入力する欄と同じに
(゚Д゚)What's!?
value="<?=$foo?>" とかの話しかね?
つか、スレ違い?
つか、マルチ。
965 :
955:03/09/15 00:02 ID:iLw2WSof
>>958 意味はわかるのですが、具体的にどういう構文を組めばよいのでしょうか。
↓おそらく該当部分でつ。
#
# [ヘッダ表示]
#
sub hed_ {
print "Location:
http://redalart.hp.infoseek.co.jp/cgi-bin/anketo/index.shtml\n\n ";
print <<"_HTML_";
<html><head>
として、さらに、以下のsubmit部分にname=を付け加えるとのことですが、
}
print"<tr><td colspan=2 align=center><input type=\"submit\" value=\" 送信 \"></td></tr>\n";
print "</table></form>\n";
&foot_;
}
この部分はどうなりますか?
教えてクンでスンマソン・・・。
966 :
955:03/09/15 01:06 ID:iLw2WSof
スンマソン・・・いろいろ試してみましたがだめなようです。
当方ではお手上げです。
CGI呼び出し投票>ログへ書き込み>結果表示
↑ ↑
│ ここでSHTMLへ飛ぶように指示
│
SSIから呼ばれたかsubmitから呼ばれたか判断
という構造なのでしょうか?具体的な改造方法を教えてくだちい・・。
>>958 >type="submit" の部分に nameを追加してそのnameがパラメタに含まれていたら
>submitと判断すればいいのではないかな
これはどういう構文を組めばよいのでしょうか。
968 :
955:03/09/15 01:11 ID:???
ずれました。鬱
969 :
955:03/09/15 01:14 ID:???
>>967 お返事
('・ω・')キターーーーーーーーーーーーーーーーーーーーー
早速やってみまつ!
>>965 >>959のやりかたが簡単でよい(action=をいくつか書き換えるが)んだが・・・
あえてかえるなら、
<input type=\"submit\" name=\"vote\" value=・・・
とかやって、$FORM{"vote"} に値が入ってたらLocation、入ってなかったら Content-type
と切り替える。
973 :
955:03/09/15 02:36 ID:???
さっそくやってみました。しかし、
#
# [ヘッダ表示]
#
sub hed_ {
if (exists $FORM{'submit'}) {
print "Location:
http://redalart.hp.infoseek.co.jp/cgi-bin/anketo/index.shtml\n\n ";
exit;
}
print "Content-type: text/html; charset=Shift_JIS\n\n";
print <<"_HTML_";
<html><head>
としてみたところ、
a [an error occurred while processing this directive]
というエラーが表示されてしまいます。何度もすいません・・・。
974 :
955:03/09/15 02:38 ID:???
>970
具体的にどうやりますか?教えてもらえますか。おながいします
975 :
967:03/09/15 02:59 ID:???
>>973 行頭の全角スペースは消すなりタブに変換するなりしてくれ
あと\n\nのあとのスペースは消したほうがいいかもしれん
976 :
955:03/09/15 03:12 ID:???
>>967 やったーーーーできたヨーーーー!!
みなさんありがとん〜〜〜〜!
夜分遅くまでお世話様でした。
>>972 如何ほどのご予算で?
と、返しておく。
tu-ka放置すればよいのか。
あーくそ、過去スレ1.2見られないのか。
>>949で上げられてるタイプの掲示板(stlfbbs?)の事を調べたかったのに。
979 :
955:03/09/15 15:19 ID:???
昨日はサンクスでした。
さっそくサイトに仕込んでみましたが、
【フォルダA】
└index.shtml
【CGI-BIN】
├vote.cgi
└index.shtml
CGI-BINフォルダのindex.shtmlよりCGIを呼び出すと正常に
フォルダAのindex.shtmlへ飛ぶのですが、
フォルダAのindex.shtmlよりvote.cgiを飛び出すと
403 Forbidden
以下のような理由が考えられます。
iswebサイト以外からのCGI呼び出しは禁止されています。
ファイル、ディレクトリのパーミッションが不適切です。
CGIはcgi-binディレクトリに設置してください。
参照しようとしたユーザーディレクトリにはindex.htmlが存在しません。
といわれてしまいますが、どれも確認しましたが作動しません。
解決のヒントを。
>>979 そのエラーメッセージの中に答えは無いのかよ
少しは自分で考えるか、自分でどうやって呼び出してるか書けよ
1
982 :
955:03/09/15 22:20 ID:???
>>983 "環境変数" "PATH_INFO"でググれ
>>982 そのエラーメッセージの中に答えは無いのか
少しは自分で考えるか、自分でどうやって呼び出してるか書いて
>>982 本物の馬鹿だろ、おまえ。
おまえの状況なんかどうでもいいんだ。
おまえはエラーメッセージを理解できない自分を問題にした方がいい。
「解決のヒントをおながいします」なんて言っても、
エラーメッセージの中にすでに十分なヒントは出ている。
だからみんな何も言わないんだ。
これだけ明白なヒントが出ているのにそれに気づかない程度なら、
むしろ、あきらめた方がこれからのおまえのため。いや、マジで。
at works のアクセス解析「access cgi ver.2.81」を使ってるんですが、
ログファイルの日本語表示部分(曜日)だけが文字化けしてしまいます。
FTPソフトでログファイルをダウンロードしてみると
漢字コードがCIS-JISになっていて、SHIFT-JISに変換してアップすると正常に表示されますが、
新たにアクセスがあった分はまた文字化けしてしまいます。
(やはりログがCIS-JISになってしまう)
同じものを別のサーバーでは問題なく使えていて、
ログファイルをダウンロードするとSHIFT-JISになっています。
一体どうやったら文字化けしなくなるんでしょうか?
*スクリプト
print "<SCRIPT language=\"JavaScript\">\n";
print "<!--\n";
print "function OpenWin(){\n";
print " win=window.open(\"wwwlng.cgi?print+$file\",\"new\",\"width=100,height=100\");\n";
print "}\n";
print "// -->\n";
print "</SCRIPT>\n";
*エラーメッセージ
Name "main::file" used only once: possible typo at tmp.pl line 1. tmp.pl syntax OK
(一度だけ使用される名前「main::file」:tmp.pl 4行に可能な誤植。tmp.plシンタックスOK)
新しいウィンドウを開くJavascriptを入れて文法チェックしたのですが
上記のエラーメッセージが出て上手く行きません。
4行目を削ったり足したりしてチェックしてみたところ、「$file」がエラーの原因になってるようなんですが
ここからどうやって修正したら良いか解らないんです。
target="_blank"なら上手く行きますが、サイズ指定や各種バーの設定も兼ねていまして。
他のウィンドウを開くJavascriptも試してみましたがやはり$fileが・・・。
対策方法をお願いします。
$file を \$file にしたらどうよ?
そもそも $file ってどっから出てきたんだ・・・
990 :
988:03/09/16 14:15 ID:???
>>989 ありがとうございます。
\を加えたところ、文法ミスが無くなりました。
良かった。
↑のスクリプト、とほほさんの所で配布してる物です。
お前、こんなところでもやってんのか
>>982 >>985-986 こいつは他の初心者系スレでも暴れてた厨房ですんで、
無視してやってください。そのうちいなくなりますから。
>>990 ""の中の変数($file)は評価されるからね
しかし、自分で書いといてなんだが、
これをエスケープしても本質的な解決にならんと思うぞ
993 :
988:03/09/16 15:12 ID:???
>>992 はい、なりませんでした。
サーバーに上げてチェックしてみると、開いたウィンドウにラウンジエラー(ファイルが不正)。
やけになって全部$fileを\$fileにすると当然サーバエラー。
文法チェックに引っかかった\$fileを修正してもラウンジエラー。
今まではこの方法で通ってたのになぁ・・・。
ttp://tohoho.wakusei.ne.jp/cgi/wwwlng.cgi の掲示板のタイトルをクリックすると新しいウィンドウを開くようにしたいんですが、
ちょっと別の方法を考えてみようと思います。
>>993 この場合、OpenWin() に引数を設け、
呼び出し側の"・・OpenWin()・・" を "・・OpenWin($file)・・"とすればいいのでは
>>988 line: 946-947
print "<TD><A HREF=\"wwwlng.cgi?print+$file\" TITLE=\"$file\">";
print "$subject</A>($count件)</TD>\n";
を、
print qq{<TD><input type="button" value="新しいウィンドウで開く"};
print qq{ onclick="win=window.open(\"wwwlng.cgi?print+$file\",\"new\",\"width=100,height=100\");">$subject($count件)</TD>\n};
ってことかしらん?
よーわからん。
♪長すぎる行があります。って bbs.cgi に怒られた。。。
996 :
988:03/09/16 17:03 ID:???
出来た!
>>994-995 ありがとうございます。
>>994の言うように、呼び出し側に$fileを入れたら上手く行きました。
ちゃんと動くようになるまで少々手間取りましたけど。
やった・・・!
997 :
983:03/09/17 01:04 ID:???
おはよう?
?
1000
1001 :
1001:
このスレッドは1000を超えました。
もう書けないので、新しいスレッドを立ててくださいです。。。