★ INCM Plug-in開発掲示板 ★ TinyGrass Ver0.32a [戻る]
[0362] 01/05/04 00:47 かつ(0g5y5mEUAqI): 次のページ
プラグインを作ろうとしてるのですが、次のページを
上手く取得できません。
↓こんなformだったので
<form action="http://host/hogegoge/hoge.cgi" method=POST>
<input type=submit name=pos:60 value=次ページ>
</form>
CMLIB15.PLの httpreq に引数を↓こんな感じでわたしてるのですが
if(&httpreq("name=pos:".$page."&value=次ページ")){
最初と同じページを取得してしまいます。
libraryの使い方が変でしょうか?
宜しくお願いします。
[0361] 01/04/29 13:10 一 五明(YMjHyfzdazU): Re:360)あ、
>>> 全部くっつけてから変換するのがいいかも。
>これは、引数の区切りの&も変換されちゃうから、まずいんじゃないですか?
まずいです(^^;
TGrassでまとめて逆変換やってるので勘違いしてました。
http://kt.sakura.ne.jp/~timeflow/M/
[0360] 01/04/28 13:56 Buckeye(UnTUYw5MC2c): Re:359)RE: URLエンコーディング?
一 五明さん、
名前部分はいいんです。@niftyは、英数字のIDで認証を受けたら、あとは、その
システム側がIDから名前をつけてくれる仕組みです。つまり、こちらからは名前
を送らないので。
>> 全部くっつけてから変換するのがいいかも。
これは、引数の区切りの&も変換されちゃうから、まずいんじゃないですか?
それとも、encodeって、そこも含めてするものなんでしょうか……
>> あと、「+」→「%2b」の変換も要るはずです(でないとスペースに変換され
>>るはず)。
これ、テストしてみました。たしかに、スペースに変換されちゃいます。
Perlモジュールのencodeはどうなってるんだろ……ということで、もう一度、ヘ
ルプを見直してみたんですが、もしかしたら、あのコードでは、encode処理はか
からないのかもしれません。少し調べてみます。
Best Regards,
Buckeye
[0359] 01/04/28 11:10 一 五明(YMjHyfzdazU): Re:356)RE: URLエンコーディング?
>ということなので、「&」のかわりに「%26」としてみたところ、これでうまくい
>くようです。本文部分(タイトルも、かな)にある半角&を、ぜんぶ「%26」に
念のために名前もですね(^^;
全部くっつけてから変換するのがいいかも。
あと、「+」→「%2b」の変換も要るはずです(でないとスペースに変換されるはず)。
URLエンコードの仕組み自体は「URLに含めてはならない文字を %xx (xxは16進数の
キャラコード)に変換、ただし例外としてスペースは+に変換」だったと思います。
http://kt.sakura.ne.jp/~timeflow/M/
[0358] 01/04/28 11:10 一 五明(YMjHyfzdazU): Re:357)RE: URLエンコーディング?
>httpで通らないコードとかあるんですかね。
http自体はバイナリデーターをPOSTすることも可能です。
(実際お絵描き掲示板やファイル添付系掲示板はそうです)
ただ…
>biglobeに設置したInterNetCockはうまくいくのに、
>mmtrに設置したInterNetCockにはうまくいかないという問題がおこりました。
>漢字とかいろいろS-JISコードそのまま送ってました。
サーバーが厳しく?チェックしてるとこうなるんですね。
(最低限の変換にすれば普通にURLエンコードするより転送量が減っていい
かなと思ったんですが)
Content-typeがurlencodedの時のみのチェックだとしたら、octet-stream
は通る気もしますが、これはCGIの側で弾かれることが有ります。
http://kt.sakura.ne.jp/~timeflow/M/
[0357] 01/04/27 21:22 GAE(Kb8yjU9ajnI): Re:355)RE: URLエンコーディング?
> エンコードは、一応、かけてるんです。Perlモジュールを使っているので中
> 身がどうなっているか、細かいことはわからないのですが、
> 「application/x-www-form-urlencoded」形式になってるハズです。
エンコード後のデータをファイルにおとせばわかりそうですが、
使い方が間違ってるとか日本特有の問題とか。
そういえば2年前くらい、
INCMのたたき台(cgiにpostするだけ)を作ってたとき、
biglobeに設置したInterNetCockはうまくいくのに、
mmtrに設置したInterNetCockにはうまくいかないという問題がおこりました。
このときURLエンコーディングのことを知らなかったので
漢字とかいろいろS-JISコードそのまま送ってました。
httpで通らないコードとかあるんですかね。
↑程度が低くてすみません(笑)
GAE@1分10円環境
http://www.gld.mmtr.or.jp/~naofumi/incm/
[0356] 01/04/27 16:25 Buckeye(UnTUYw5MC2c): Re:354)RE: URLエンコーディング?
うーん、今もよくわかんないんですが……
>>& は %26 を送ります。
ということなので、「&」のかわりに「%26」としてみたところ、これでうまくい
くようです。本文部分(タイトルも、かな)にある半角&を、ぜんぶ「%26」に
しておけばよさそうです。
Best Regards,
Buckeye
[0355] 01/04/27 11:17 Buckeye(UnTUYw5MC2c): Re:354)RE: URLエンコーディング?
GAEさん、GETWILD'74さん、
エンコードは、一応、かけてるんです。Perlモジュールを使っているので中
身がどうなっているか、細かいことはわからないのですが、
「application/x-www-form-urlencoded」形式になってるハズです。
うーん、なにがおかしいんだろ。
Best Regards,
Buckeye
[0354] 01/04/26 17:51 GAE(GCDDVPb8PCc): Re:352)URLエンコーディング?
GAE@ようやく電話が開通 です。
↓「そんなことはわかってるよ」と思われたらすみません…。
> cmwファイルに書き出してもらって、プラグイン側で発言処理をする場合につい
> てです。発言中に半角の&があると、そこで、発言が切れてしまいます。これは、
> cgi側が、半角&を引数間の区切りと誤解してしまうことから起きているものと
> 思われます。
& は %26 を送ります。
Webで「URLエンコーディング」を調べると細かい仕様が出るかもしれません。
ある範囲の文字コード以外のコードを送るときは
基本的にこのエンコードが必要になるはずです。
「ある範囲」については適当でもいいような気がします。(とりあえず)
ほとんどCGIは、&で分割したのちに、デコードしているからです。
http://www.gld.mmtr.or.jp/~naofumi/incm/
[0353] 01/04/24 16:52 GETWILD'74(Qk25uvB38zc): Re:352)Re: 発言時の半角&の処理
encodeとかは使えないですかね。
[0352] 01/04/22 17:00 Buckeye(UnTUYw5MC2c): 発言時の半角&の処理
みなさん、ご無沙汰しております。
4ヶ月を超えた怒濤のシュラバが一段落ついたので、@niftyインターウェイプラ
グインのメンテを始めました。で、ちょっとお知恵を借りたいことがあります。
cmwファイルに書き出してもらって、プラグイン側で発言処理をする場合につい
てです。発言中に半角の&があると、そこで、発言が切れてしまいます。これは、
cgi側が、半角&を引数間の区切りと誤解してしまうことから起きているものと
思われます。
同じcgiにブラウザで書き込むと、ちゃんと、半角&が出るので、なにか、前処
理する方法があるハズなんですが……どなたか、ご存じありませんか?
htmlでの表記法でいけるかと思ったら、あれ、みんな、頭に半角&がつくんです
ね(^^;)
最悪、全角&に置換してから発言するって方法もありますけど(--;)
Best Regards,
Buckeye
[0351] 01/04/16 10:44 GETWILD'74(Qk25uvB38zc): Re:350)RE: 新バージョンへの対応について
print '#P:POST,$c,no=new&mode=form&name=$N&email=$E&title=$T&wrap=soft&msg=$M&url=$H&pwd=$K',"\n";
print "S:$num,$rnum,$date,\n",$title,
'F:POST,$c,action=res_msg&no=',$num,'&oya=',$tnum,
'&mode=form&name=$N&email=$E&title=$T&wrap=soft&msg=$M&url=$H&pwd=$K',
"\nM:\n";
のtitleとmsgの部分をsubとmessageに変更して下さい。
未読記事がないとCMTヘッダが更新されないので注意して下さい。
[0350] 01/04/13 19:19 Chitoku(s8YIcTtdBJg): 新バージョンへの対応について
つい最近INCMを見つけて、その便利さにすっかり感動しちゃった者です。
是非自分のサイトの掲示板もこれで巡回できるようにしようと試してみたのですが、
読み込みは全部うまく行くものの、メッセージの送信が実際には反映されていないという
トラブルにぶち当たってしまいました。
使っているのはKENT-WEBさんのWEB FORUMです。
送信時ログで確認してみると、メッセージが記入されていないためにエラーが
出てしまっているようです。
一 五明さんのおつくりになったcm_WEBFORUM.pl、ver0.13の内部を覗かしてもらうと、
投稿フォームのいくつかの欄の名前が、おそらくWEB FORUMのVer2.6以降から
変更されてしまったために、うまく動かなくなってしまっているようです。
具体的には、題名の欄のname属性がtitleからsubに、メッセージのものがmsgからmessage
のように変更されてしまったようです。
そこで、僕はPerlに関してはほとんど初心者なのにも関わらず、自分でこれら関係のところを
いじってみれば何とかなるのではないかと、無謀にもチャレンジしてみました。
まずコード36行目のtitleのところをsubに、msgのところをmessageに変えてみると、
メッセージの新規投稿はうまくできるようになりました。
続いて175行目の部分も同じように変更してみたのですが、しかしレスに返信をつめるのは
いまだうまくいきません。送信時ログを確認してみると、まだメッセージの記入モレの為に
エラーが出てしまっているようです。
175行目以前にもいくつかtitleを使った変数が使われていますが、これらが実際に
どんな働きをしているのかPerlに詳しくない僕は分からず、いくつか変えて実際に
試してみましたが、どれもうまくいきませんでした。
なにかこの新しいバージョンのWEB FORUMをINCMで完璧に使う方法はないでしょうか?
どなたかにご指南いただけると大変ありがたいです。よろしくお願いします。
http://www.eduplan.net/abroad/
[0349] 01/03/30 16:57 かつ(JOx6DyBOAyo): Bug報告(ぷち☆ボード用プラグイン)
対象プラグイン
INCM plug-in for ぷち☆ボード,ErialBBS
Ver0.11 2000/2/19
現象
スレッドが正しく解釈されない
原因
標準出力に出すべき内容がファイルに書き出されていた。
以下詳細及び対応方法です。
104行目
print "\nConnecting...";
↓対応方法(修正)
print STDOUT "\nConnecting...";
[0348] 01/03/30 16:53 かつ(JOx6DyBOAyo): Re:346)Re:CMTユニット作ってみましたが…
一 五明さんご返事有難う御座います。
別モジュールで対応という手がありましたね。
readonlyで読み込むだけだし、管理人に頼んでみます。
わざわざ有難う御座いました。
[0347] 01/03/30 16:49 かつ(JOx6DyBOAyo): Re:345)STDERR
一 五明さんご返事有難う御座います。
大筋は理解出来ました。
エラー以外でエラーログが出力されるのは
個人的には気になる方なので、自分で対応しようと思います。
[0346] 01/03/17 14:37 一 五明(YMjHyfzdazU): Re:333)CMTユニット作ってみましたが…
>その掲示板は自分が設置してるものじゃないので
>頼んでみましたが、「あげ」は嫌だそうで断られました...
Treebbs Terra用のCMTユニットを作成しました。
→ http://kt.sakura.ne.jp/~timeflow/M/TRCMT010.LZH
改造禁止のシステムのため独立したCGIになっているので、treebbs.cgiと
同フォルダに置くだけです。
これも駄目でしょうか?(^^;
http://kt.sakura.ne.jp/~timeflow/M/
[0345] 01/03/16 21:47 一 五明(YMjHyfzdazU): Re:344)RE: STDERR
>> unlink("errorlog.txt") if(-e "errorlog.txt");
>これだと単純なデリートですから、
>ユーザがもう一度、読み込んだでしまうと
>最後のログしかみれないので
>本来のエラー原因を知ることが出来ませんよね?
何回分か履歴を残したほうがいいということなら、終了時に
print STDERR "\n--fin--\n";
とでもして、起動時に
if(open(ERROR,"errorlog.txt")){
$/="\n--fin--\n"; @errors=<ERROR>; close(ERROR);
while($#errors > 3){ # 配列の要素数が3より多いなら
$_=shift(@errors); # 先頭の要素を読み捨て
}
open(ERROR,">errorlog.txt");
print ERROR join("",@errors);
close(ERROR);
}
$/="\n"; # デフォルトに戻す
…とでもしますか?(テストしてません(^^;)
回数じゃなくて、後ろからnバイトのような残し方もあるでしょうね。
>1: STDERR出力について細かい取り決めは無い
>2: デバックのメッセージを残してリリース
>3: ファイルが大きくなる事が気になるならような
> 神経質な人(私)は自力で直す?
…言ってしまえば、そういうことになります。プラグインの作者が重大な
バグだと認識していて暇があれば直すでしょうし、そうでない場合は直さない
でしょう。
初期のプラグインは受信時ログが際限無く大きくなってましたから、この手
のは気にならなくなってしまった人が多いかもしれません(^^;
ただ「INCM周辺ツールの統一方針」の様なものは特に作ってなくて、各作者が
各々好きにサポートしたりサポートさぼったりしてますので、作者によっては
同じ報告でもすぐに直す人も居るかも知れないです。
http://kt.sakura.ne.jp/~timeflow/M/
[0344] 01/03/16 14:25 かつ(0g5y5mEUAqI): Re:336)STDERR
一 五明さんご返事有難う御座います。
> そう厳密に仕様を決めてない部分が多いんですよ(^^;
厳密な仕様が無く使い方は好き好きなのは理解できましたが、
ErrorLog.txtが際限もなく大きくなっていくので、
良くある Bug という認識をもってました。
> unlink("errorlog.txt") if(-e "errorlog.txt");
これだと単純なデリートですから、
ユーザがもう一度、読み込んだでしまうと
最後のログしかみれないので
本来のエラー原因を知ることが出来ませんよね?
>>ソースを読む限り開発時のトレースログって感じで、
>>エンドユーザには無縁な機能に思えるのですが?
>
> 個人的にはせっかくオンラインソフトなのですから、開発者とユーザー
>の間に壁を作りたくないですし、「舞台裏を見せる=マイナス」ではないと
ちょっとお話しの観点が食い違ってきますので、
整理します。
1: STDERR出力について細かい取り決めは無い
2: デバックのメッセージを残してリリース
3: ファイルが大きくなる事が気になるならような
神経質な人(私)は自力で直す?
[0343] 01/03/14 10:09 DADA(Tw8cNPGTO/M): Re:342)RE:INCM用plug-in for HyperBBSについて
迅速な対応 及び わざわざソースに名前まで入れていただき ありがとうございました(^^
まだしばらく 98を使いつづけるつもりなので 何か有ったらまた宜しくお願いしますm(_ _)m
[0342] 01/03/14 08:49 一 五明(YMjHyfzdazU): Re:341)RE: . INCM用plug-in for HyperBBSについて
>linesが関係ないことが判りました。
って、これ、当時悩んだんですよ(^^;;;(諦めてました)
差し替えておきました。
→ http://kt.sakura.ne.jp/~timeflow/M/CM_HB012.LZH
ちなみにどるこむ読むために作ったんですが、最近読んでなかったです。
(まだメインマシンは98ですが)
http://kt.sakura.ne.jp/~timeflow/M/
[0341] 01/03/14 06:09 DADA(CUYPAFIX46w): Re:340). INCM用plug-in for HyperBBSについて
自己レスです(^^;
今 HyperBBS 3.0c のソースを調べたところ
linesが関係ないことが判りました。
ただ 正常に動作していないのは事実なので
&httpreq('mode=regist&option=line%3D'.$pagecnt) || last MAIN;
と修正するだけで良いみたいです。
よく実験しないで登校してすみませんでしたm(_ _)m
[0340] 01/03/14 05:49 DADA(CUYPAFIX46w): INCM用plug-in for HyperBBSについて
INCM及び 一 五明様作成の Plug-in とても便利に使わせていただいてます。
ありがとうございます。
本題なのですが
どるこむ という掲示板で 取得記事の目安 というのを設定しても上手く反映されて無いようです。
#実際には 20記事ほどしか持ってこない
HyperBBS 3.0c を調べてみた所
line= で大きな数字を指定しても lines= で指定した記事までしか持ってこなくて
lines を指定しなかった場合 管理人が設定した記事数(デフォルト20) を読み込むことが判りました。
そこで cm_HyperBBS.pl の89行目の
&httpreq('option=LINE='.$pagecnt) || last MAIN;
を
&httpreq('mode=regist&lines='.$pagecnt.'&option=line%3D'.$pagecnt) || last MAIN;
と書くことにより正常に動作するようになりました。
もし、お時間有りましたら、修正をお願いしますm(_ _)m
乱文失礼しました。
[0339] 01/03/07 20:24 Buckeye(UnTUYw5MC2c): Re:337)Perl入門
私もで〜す!
おかげで、自分が必要とするプログラムくらいは、Perlで作れるようになりまし
た。翻訳の仕事で使うツールを、あれこれ作ってます。
Best Regards,
Buckeye
[0338] 01/03/07 16:27 GETWILD'74(Qk25uvB38zc): Re:335)RE: ご挨拶
>parlの知識が皆無なのでスクリプトでもできたら楽なのになぁ。
HTMLとPerlの基礎が分かれば出来ますよ。
挑戦してみて下さい。
[次のページ]