■掲示板に戻る■ 全部 1- 101- 201- 301- 401- 501- 601- 701- 801- 901- 最新50 [PR]ぜろちゃんねるプラス[PR]  
レス数が1000を超えています。残念ながら全部は表示しません。

ぜろちゃんねるプラス質問スレ

1 :windyakin ★:2011/07/10(日) 16:29:56.74 ID:???0
■ぜろちゃんねるプラスWiki
http://sourceforge.jp/projects/zerochplus/wiki/FrontPage

757 :0ch+開発担当 ◆0chp.sx.ik :2013/11/30(土) 00:44:08.66 ID:RFkAcj0+0
>>755
>502エラーが出ます。
こちらでは確認できません。エラー内容は分かりますか?

>書き込みログは何処で表示させるのでしょうか?
スレッド一覧から対象のスレッドをクリックするとレス一覧とホスト情報が表示されます。


>>756
規制まわりの操作はそもそもプログラムの構造がよくないので簡単には出来ませんが、
プラグインでやるとすれば掲示板設定を一時的に書き換える方法が一番簡単だと思います。
  my $CGI = $Sys->Get('MainCGI');
  my $Set = $CGI->{'SET'};
  $Set->Set('BBS_TATESUGI_COUNT', 3);
※規制処理より前に実行する必要があるので「拡張機能タイプ」は(1|2)です。

※レベルシステムの実装についてはサポートしませんが、
個人の特定方法、Cookieの受け渡し方などの技術的な質問は受け付けます。

758 :名無しさん@ぜろちゃんねるプラス:2013/11/30(土) 08:08:59.03 ID:Wkt2jKZb0
>>757
ありがとうございました!
レベルを使うわけではないので、大丈夫です!

759 :名無しさん@ぜろちゃんねるプラス:2013/11/30(土) 08:23:23.63 ID:54SnL5Ii0
>>757
HTPの502エラーなので……

原因が解りました。
旧ゼロちゃんねるのキャップグループの設定がプラスと互換性が無いためでした。

一度これで仮運用してみようかと思います。

760 :名無しさん@ぜろちゃんねるプラス:2013/11/30(土) 10:44:43.29 ID:54SnL5Ii0
>>757

連続してエラーになるIPを一定時間アクセス禁止にする方法はありませんか?

2013/11/30 10:04 104 (1行長すぎ) 0ch+ BBS 0.7.4 20131106
2013/11/30 10:04 104 (1行長すぎ) 0ch+ BBS 0.7.4 20131106
2013/11/30 10:04 104 (1行長すぎ) 0ch+ BBS 0.7.4 20131106
2013/11/30 10:04 104 (1行長すぎ) 0ch+ BBS 0.7.4 20131106
2013/11/30 10:04 104 (1行長すぎ) 0ch+ BBS 0.7.4 20131106
2013/11/30 10:04 104 (1行長すぎ) 0ch+ BBS 0.7.4 20131106
2013/11/30 10:04 104 (1行長すぎ) 0ch+ BBS 0.7.4 20131106
2013/11/30 10:04 104 (1行長すぎ) 0ch+ BBS 0.7.4 20131106
2013/11/30 10:04 104 (1行長すぎ) 0ch+ BBS 0.7.4 20131106
2013/11/30 10:04 104 (1行長すぎ) 0ch+ BBS 0.7.4 20131106


掲示板のホスト規制かけててもエラーログは出てるようです。
海外ISPからのスクリプト投稿のようです>IPぐぐったら
今はサーバの機能でDenyにしてます。




761 :0ch+開発担当 ◆0chp.sx.ik :2013/11/30(土) 13:35:54.05 ID:RFkAcj0+0
>>760
>一定時間アクセス禁止にする方法
CGIからアクセス禁止の設定ができる仕組みはありません。
bbs.cgiに限定すれば出来なくもないですが、本体を改造する必要があります。

>エラーログは出てるようです
基本的に0chのエラーページが表示されるものは全てエラーログに記録されます。

英文スパムであれば「スパムキラー」プラグインを使ってみてください。
※当然エラーログは出力されます。

762 :名無しさん@ぜろちゃんねるプラス:2013/11/30(土) 13:53:13.10 ID:54SnL5Ii0
>>757
IIS7.0
バニラの状態で設置
./
└cgi
  └testbbs
     └test(仮想フォルダ) 

なお、/testは仮想フォルダ化(そうしないと502エラー)

    サーバ:http://****.dyndns.dk
    CGIパス:/cgi/testbbs/test
    掲示板パス:..
    管理データフォルダ:/info
    基本データフォルダ:/datas

1.Indexの作成を確認
2.スレッドの作成を確認。
3.書き込みボタンからの書き込みを確認。
4.Index更新を確認。
5.最新を表示、全部読む等のリンクをクリックすると3001エラー(read.cgiのKeyが読み込めない)

ちなみに、2chブラウザからは読み込みができる。
Indexページから3001エラーで読みこない。

763 :名無しさん@ぜろちゃんねるプラス:2013/11/30(土) 13:54:55.58 ID:54SnL5Ii0
>>761

了解です。
スパムキラーを使用します。

>>762の様なエラーがでております。
ご教授ください。


764 :0ch+開発担当 ◆0chp.sx.ik :2013/11/30(土) 14:44:18.91 ID:RFkAcj0+0
>>762
IISについては詳しくないのですが、どうやらPATH_INFOが無効になっているようです。
こちらはIIS7.5なので少し違う点もあるかもしれませんが、一応設定手順です。

1. 構成エディターを開く
2. セクション「system.webServer/handlers」を選んで、「(コレクション)」を選択
  「項目の編集」でコレクションエディターを開く
3. CGI(Perl)のハンドラーを選択してプロパティ「allowPathInfo」を「True」に切り替える
4. エディターを閉じて「適用」する

765 :名無しさん@ぜろちゃんねるプラス:2013/11/30(土) 15:12:44.13 ID:54SnL5Ii0
>>764
ありがとうございます。
正常に稼働を確認しました。

IISでする場合は……
1.CGI-EXEをcgiへ
2.web.configでallowPathInfoを編集する。

ココらへんが重要みたいですね。


当方の環境のみののでしょうけど、testフォルダを仮想フォルダ化しないといけないみたいです。


766 :名無しさん@ぜろちゃんねるプラス:2013/11/30(土) 19:27:18.24 ID:Wkt2jKZb0
ゼロチャンネルプラスを使用した鯖でCGIを作るときに表示させたいものがある場合に$Pageって使わなければいけないのでしょうか?

767 :0ch+開発担当 ◆0chp.sx.ik :2013/11/30(土) 19:46:06.31 ID:RFkAcj0+0
>>765
>testフォルダを仮想フォルダ化
カレントディレクトリの問題かもしれません。

>>766
特に制約はありません。

768 :たろう:2013/12/01(日) 00:54:23.45 ID:Nfaw0pUu0
はじめまして。
大変よいスクリプトに出会うことができ感謝しております。
こちらの2ちゃんねる風掲示板は、utf8で稼働させることは
可能でしょうか。
お忙しいところ恐縮ですが何卒よろしくお願いいたします。

769 :0ch+開発担当 ◆0chp.sx.ik :2013/12/01(日) 01:08:39.99 ID:7LzecaBz0
>>768
スクリプトは完全にShift_JISに依存してしまっていて手がつけられない状態です。
また、.datやsubject.txtについてはShift_JISでなければほとんどの専ブラで文字化けしてしまいます。

Shift_JISのまま稼働させるのが無難だと思いますが、
なにかUTF-8でなければならない理由があるのでしょうか。

770 :名無しさん@ぜろちゃんねるプラス:2013/12/01(日) 10:20:59.12 ID:6w7oSQ670
>>769
プラグインの設定値をCGIで受け取ることは可能でしょうか
設定値であるhogehogeを受け取ろうとしました
my $this = shift;
my $hogehoge = $this->Get('_hogehoge');
ですが以下のようなエラーメッセージが
Can't call method "Get" on an undefined value at count.cgi line 14.
どうすればよいでしょうか


771 :0ch+開発担当 ◆0chp.sx.ik :2013/12/01(日) 12:32:17.39 ID:7LzecaBz0
>>770
設定はCGIで使うためにあるのでもちろん可能です。
GetではなくGetConfを使ってください。
  my $hogehoge = $this->GetConf('_hogehoge');
  $this->SetConf('_hogehoge', $hogehoge);

772 :名無しさん@ぜろちゃんねるプラス:2013/12/01(日) 12:37:20.08 ID:6w7oSQ670
同じように返されました
Can't call method "GetConf" on an undefined value at count.cgi line 14.

773 :0ch+開発担当 ◆0chp.sx.ik :2013/12/01(日) 13:30:04.96 ID:7LzecaBz0
プラグイン外で取得するということだったんですね。


# システム管理オブジェクトを用意
require './module/melkor.pl';
my $Sys = MELKOR->new;
$Sys->Init();

# プラグイン管理オブジェクトを用意
require './module/athelas.pl';
$Plugins = ATHELAS->new;
$Plugins->Load($Sys);

# プラグインの個別設定を操作するオブジェクトを用意
my $pid = $Plugins->Get('CLASS', 'ZPL_testplugin');
my $Config = PLUGINCONF->new($Plugins, $pid);

# 設定
my $hogehoge = $Config->GetConfig('_hogehoge');
$Config->SetConfig('_hogehoge', $hogehoge);

774 :0ch+開発担当 ◆0chp.sx.ik :2013/12/01(日) 13:32:02.15 ID:7LzecaBz0
あるいはtest/plugin_conf/内の該当する設定ファイルを直接読み込む方法もあります。

775 :名無しさん@ぜろちゃんねるプラス:2013/12/01(日) 13:35:26.55 ID:6w7oSQ670
>>774
plugin_confですか?
……読み込み方を教えてください
ファイル名はhogehogeで

776 :0ch+開発担当 ◆0chp.sx.ik :2013/12/01(日) 13:46:29.82 ID:7LzecaBz0
>>775
「値の種類<>設定名<>設定値」という形式になっています。

my %conf = ();
if (open my $fh, '<', './plugin_conf/0ch_hogehoge.cgi') {
  while (<$fh>) {
    chomp($_);
    my (undef, $key, $val) = split /<>/, $_, -1;
    $conf{$key} = $val;
  }
  close $fh;
}

777 :名無しさん@ぜろちゃんねるプラス:2013/12/01(日) 13:51:20.53 ID:6w7oSQ670
>>776
設定値を変数に代入する場合にはどうすればいいのでしょうか
$hogehoge=設定名
でいいのでしょうか

778 :名無しさん@ぜろちゃんねるプラス:2013/12/01(日) 13:52:46.34 ID:6w7oSQ670
それとも先ほどのように
my $hogehoge =$this->GetConf('_設定名');
でいいのでしょうか

779 :0ch+開発担当 ◆0chp.sx.ik :2013/12/01(日) 13:54:59.06 ID:7LzecaBz0
>>777
$hogehoge = $conf{'_hogehoge'};
です。

>>778
その方法は$thisがプラグインのオブジェクトでなければ使えません。

780 :名無しさん@ぜろちゃんねるプラス:2013/12/01(日) 13:58:39.29 ID:6w7oSQ670
Global symbol "$hogehoge" requires explicit package name at hogehoge.cgi line 22.
なぜこのようになるのでしょうか

781 :名無しさん@ぜろちゃんねるプラス:2013/12/01(日) 14:00:03.63 ID:6w7oSQ670
何度もすいません、質問して
えっと、正直なところゼロチャンネルプラスで公開されていたkakikomi.plのようなプラグインを扱っているのです
そこで数値を読み込もうとしているのですがどうもうまくいかないという話で
本当に申し訳ございません

782 :0ch+開発担当 ◆0chp.sx.ik :2013/12/01(日) 14:07:19.15 ID:7LzecaBz0
>>780
もう少しPerlの基礎を学んではいかがですか。
これはエラーメッセージをググればすぐ解決できる問題です。
自己解決能力を身につけなければプログラミングは難しいと思いますよ。

783 :名無しさん@ぜろちゃんねるプラス:2013/12/01(日) 14:09:05.17 ID:6w7oSQ670
>>782
そうですね
ありがとうございました

784 :名無しさん@ぜろちゃんねるプラス:2013/12/01(日) 14:10:02.61 ID:6w7oSQ670
あ、分かりました
宣言ができていなかったみたいです
本当にしませんでした

785 :名無しさん@ぜろちゃんねるプラス:2013/12/01(日) 23:26:47.56 ID:Nfaw0pUu0
>>769
多言語対応にしたかったという理由がありまして
utf8でできるものなのかな、と思ったのです。
ご回答ありがとうございました。

786 :名無しさん@ぜろちゃんねるプラス:2013/12/09(月) 16:36:42.90 ID:HXKN32Nh0
http://jump.x0.to/のスクリプトは公開していないのでしょうか?
また、公開して頂くことはできませんでしょうか?

787 :0ch+開発担当 ◆0chp.sx.ik :2013/12/10(火) 22:06:17.97 ID:ZztuylMA0
>>786
今のところ公開はしていません。
また、開発者が不在(?)なので確認に少し時間がかかるかも知れません。

788 :名無しさん@ぜろちゃんねるプラス:2013/12/11(水) 00:20:17.84 ID:6YRy1M8l0
>>787
了解しました。気長に待っていますので、お手数をお掛けしますがよろしくお願い致します。

789 :名無しさん@ぜろちゃんねるプラス:2013/12/11(水) 11:34:38.13 ID:/bmJu/+vi
sage無効にすることはできますか?

790 :名無しさん@ぜろちゃんねるプラス:2013/12/12(木) 02:21:56.49 ID:ea+YyacD0
いつもお世話になっています
質問なのですが、IDをしたらばの設定のように常時固定できる方法はありますか?


791 :0ch+開発担当 ◆0chp.sx.ik :2013/12/12(木) 19:07:51.88 ID:7wrU0koL0
>>789
module/vara.pl の139行目あたりの以下の行をコメントアウトまたは削除してください。
  $updown = '' if ($Form->Contain('mail', 'sage'));

>>790
module/galadriel.pl の658行目あたりの以下の行をコメントアウトまたは削除してください。
  $ctx->add(':', join('-', (localtime)[3,4,5]));

792 :名無しさん@ぜろちゃんねるプラス:2013/12/13(金) 16:54:18.17 ID:mX+XbfBw0
>>717の件ですが、1件ではなく数件表示させるにはどうしたら良いでしょうか?

793 :790:2013/12/13(金) 17:01:56.41 ID:41dM26NH0
>>791
回答ありがとうございます
諸事情あってまだ掲示板が0.7.3なのですが、そちらのバージョンでの設定方法もあればお願いしたいです
お手数かけて申し訳ありません

794 :名無しさん@ぜろちゃんねるプラス:2013/12/13(金) 17:26:00.57 ID:mX+XbfBw0

>>792の追記です
可能であれば

1: スレッド :
レス番号 : 最新レスのコメント
レス番号 : 最新レスのコメント
レス番号 : 最新レスのコメント
と表示したいと思っています
よろしくお願いします

795 :0ch+開発担当 ◆0chp.sx.ik :2013/12/13(金) 20:32:26.45 ID:PQ9ZGH3B0
>>793
module/galadriel.pl の 630行目あたりの行を以下のように書き換えてください。
  my @times = localtime time;
        ↓
  my @times = localtime 0;

796 :0ch+開発担当 ◆0chp.sx.ik :2013/12/13(金) 20:43:06.96 ID:PQ9ZGH3B0
>>792,794
これでどうでしょうか。
  $Page->Print("<a href=\"$path\">$i: $name($res)</a><br>\n");
  if (open(my $fh, '<', "$basePath/dat/$key.dat")) {
    my @lines = <$fh>;
    close($fh);
    require Encode;
    for my $n ($#lines-2 .. $#lines) {
      next if ($n < 0);
      my $text = (split(/<>/, $lines[$n], -1))[3];
      $text =~ s/<[bh]r>/ /gi;
      $text =~ s/<[^>]+>//g;
      $text =~ s/\s+/ /g;
      $text = Encode::decode('sjis', $text);
      $text = substr($text, 0, 100);
      $text = Encode::encode('sjis', $text);
      $n++;
      $Page->Print("&nbsp; $n: $text<br>\n");
    }
  }
  #$Page->Print("<br> \n");

797 :名無しさん@ぜろちゃんねるプラス:2013/12/13(金) 21:37:27.38 ID:mX+XbfBw0
>>796
ありがとうございます
ただ、これと>>726を組み合わせたところ、レス部分が文字化けしてしまいました
文字化けせずに表示させることはできますでしょうか?



798 :名無しさん@ぜろちゃんねるプラス:2013/12/13(金) 21:50:34.52 ID:AK8OYINQ0
携帯のindex画面でもPC版indexと同じようにコメントフォームを表示させたいのですが可能でしょうか?
スレッドとスレッドの間に表示させたいと思っています

799 :798 :2013/12/14(土) 00:46:57.12 ID:g7FNZ9fD0
798です
携帯index画面の件ですが自己解決しました

800 :0ch+開発担当 ◆0chp.sx.ik :2013/12/14(土) 01:57:51.96 ID:DQFXFJcS0
>>797
      $text = substr($text, 0, 100);
の1行ではなく
      $text = substr($text, 0, 100);
      $text = Encode::encode('sjis', $text);
の2行を>>796のコードで置き換えてみてください。

801 :名無しさん@ぜろちゃんねるプラス:2013/12/14(土) 02:12:41.32 ID:N0SVfToI0
>>800
ありがとうございます。やってみます。
また、度々で申し訳ないのですが、>>796で投稿時刻を取得することはできますか?

802 :0ch+開発担当 ◆0chp.sx.ik :2013/12/14(土) 11:41:58.49 ID:DQFXFJcS0
>>801
      my $text = (split(/<>/, $lines[$n], -1))[3];

      my (undef, undef, $date, $text) = split(/<>/, $lines[$n], -1);
      $date = $& if ($date =~ /^[^ ]+ [^ ]+/);
のようにすれば日付部分が取り出せます

803 :名無しさん@ぜろちゃんねるプラス:2013/12/14(土) 12:55:16.82 ID:LwrD8YWl0
>>802
掲示板一覧がなぜか新しいタブで開かれません。なぜでしょうか?

804 :名無しさん@ぜろちゃんねるプラス:2013/12/14(土) 13:53:31.19 ID:LwrD8YWl0
あ、すいません
安価に意味はないです

805 :名無しさん@ぜろちゃんねるプラス:2013/12/14(土) 14:03:52.53 ID:LwrD8YWl0
すいません、自決しました
リンクを空にしてblankタグを入れたらできました

806 :名無しさん@ぜろちゃんねるプラス:2013/12/14(土) 18:20:32.67 ID:LwrD8YWl0
所で聞きたいのですが、一日の内に立ったスレ数をカウントすることは可能なのでしょうか?

807 :0ch+開発担当 ◆0chp.sx.ik :2013/12/14(土) 18:39:06.10 ID:DQFXFJcS0
>>806
可能です。

http://sourceforge.jp/projects/zerochplus/scm/svn/blobs/head/codes/0ch_count.pl
このプラグインは一日のうちに書き込まれたレス数を数えるものですが、
カウントする条件を if ($Sys->Equal('MODE', 1)) とすればスレ立て(>>1)のみをカウントすることができます。

※このプラグインの例ではすべての板を合わせてカウントするようになっています。

808 :名無しさん@ぜろちゃんねるプラス:2013/12/14(土) 18:43:52.82 ID:N0SVfToI0
>>802
できました
ありがとうございました

809 :名無しさん@ぜろちゃんねるプラス:2013/12/14(土) 18:54:30.66 ID:LwrD8YWl0
>>807
成程
有難うございました

810 :名無しさん@ぜろちゃんねるプラス:2013/12/14(土) 20:12:21.68 ID:g7FNZ9fD0
rcgiで>>717のように一行表示できますか?リンクも無効に出来れば嬉しいです

811 :0ch+開発担当 ◆0chp.sx.ik :2013/12/14(土) 21:29:23.76 ID:DQFXFJcS0
>>810
r.cgi の sub PrintResponse 内の「# 表示範囲内か…」という行以降を全て
以下のコードに置き換えれば1行1レスで番号+本文のみ(HTML削除)になります。
  $elem[3] =~ s/<[bh]r>/ /gi;
  $elem[3] =~ s/<[^>]+>//g;
  $elem[3] =~ s/\s+/ /g;
  $Page->Print("<br>\n") if ($n == 1);
  $Page->Print("$n: $elem[3]<br>\n"); # 名前は$elem[0] 日時IDは$elem[2]

812 :名無しさん@ぜろちゃんねるプラス:2013/12/14(土) 22:58:10.74 ID:QkD/e3e4I
携帯用スレッドでID非表示にすることできますか

813 :0ch+開発担当 ◆0chp.sx.ik :2013/12/14(土) 23:04:37.81 ID:DQFXFJcS0
>>812
r.cgi の sub PrintResponse 内の$Page->Printの直前あたりに
  $elem[2] = $& if ($elem[2] =~ /^[^ ]+ [^ ]+/);
というコードを追加してください。

814 :名無しさん@ぜろちゃんねるプラス:2013/12/14(土) 23:41:53.55 ID:QkD/e3e4I
ありがとうございました

815 :名無しさん@ぜろちゃんねるプラス:2013/12/15(日) 11:40:13.32 ID:LHwDG0290
>>811
こちらで、今までと同じように省略表示をするのはどうすれば良いでしょうか?

816 :0ch+開発担当 ◆0chp.sx.ik :2013/12/15(日) 12:43:40.07 ID:Bdmv8/Gd0
>>815
  $elem[3] =~ s/<[bh]r>/ /gi;
  $elem[3] =~ s/<[^>]+>//g;
  $elem[3] =~ s/\s+/ /g;
  require Encode;
  $elem[3] = Encode::decode('sjis', $text);
  # 表示範囲内か指定表示ならすべて表示する
  if ($oSYS->GetOption(5) == 1 || length($elem[3]) <= 100) {
    $elem[3] = Encode::encode('sjis', $elem[3]);
  # 表示範囲を超えていたら省略表示をする
  } else {
    $elem[3] = substr($elem[3], 0, 90);
    $elem[3] = Encode::encode('sjis', $elem[3]);
    my $respath = $oConv->CreatePath($oSYS, 'O', $oSYS->Get('BBS'), $oSYS->Get('KEY'), "${n}n");
    $elem[3] = "$elem[3] ...<a href=\"$respath\">省略</a>";
  }
  $Page->Print("<br>\n") if ($n == 1);
  $Page->Print("$n: $elem[3]<br>\n"); # 名前は$elem[0] 日時IDは$elem[2]

動作確認はしていません。

817 :名無しさん@ぜろちゃんねるプラス:2013/12/15(日) 13:47:02.66 ID:jUVw0zGr0
すいません、VIPクオリティというプラグインのIQをIDのように日にちごとに変える方法はあるでしょうか?

818 :名無しさん@ぜろちゃんねるプラス:2013/12/15(日) 13:51:08.64 ID:LHwDG0290
>>816
ありがとうございました

819 :0ch+開発担当 ◆0chp.sx.ik :2013/12/15(日) 14:24:57.52 ID:Bdmv8/Gd0
>>817
Vip_quality.plを以下の通り書き換えてください。
先頭の「-」は行削除、「+」は行追加、指定なしはそのままです。

1040:
-  $form{'from'} =~ s/(\!IQ)/ <\/b>【IQ$$setting{'$host'}[2]】<b> /;
+  $form{'from'} =~ s/(\!IQ)/ <\/b>【IQ$$setting{'$rand'}[2]】<b> /;
1162:
-  if ($$setting{'$host'}[2] < $$setting{'ships_iq_limit'}){
+  if ($$setting{'$rand'}[2] < $$setting{'ships_iq_limit'}){
1289:
-  $dame = $dame + (255 - $$setting{'$host'}[0]) * 4 + $$dame_ref[0];
+  $dame = $dame + (255 - $$setting{'$rand'}[0]) * 4 + $$dame_ref[0];
516:
.   $setting{'$host'} = \@host;
+  require Digest::MD5;
+  $setting{'$rand'} = [unpack('CCCC', Digest::MD5::md5(join('.', @host, (localtime)[4,5,6])))];

820 :名無しさん@ぜろちゃんねるプラス:2013/12/15(日) 14:53:33.14 ID:jUVw0zGr0
>>819
できました!
ありがとうございます

821 :790:2013/12/15(日) 20:26:34.57 ID:NkBL9FZh0
お礼が遅れて申し訳ありません
ありがとうございました、無事にID固定出来ました

822 :名無しさん@ぜろちゃんねるプラス:2013/12/15(日) 20:50:15.51 ID:B1l/2iqu0
携帯用indexに表示されるスレッドの横に名前を乗っけることはできますか?

823 :名無しさん@ぜろちゃんねるプラス:2013/12/18(水) 09:57:40.81 ID:8Vu+t5l1I
上の方と被りますがスレッド一覧に名前を表示する方法はありますでしょうか?


824 :0ch+開発担当 ◆0chp.sx.ik :2013/12/18(水) 14:42:39.95 ID:YFXypRHX0
>>822,823
レスが遅れてすみません。

携帯用index
module/varda.pl の159行目の
  $Page->Print("<a href=\"$path\">$i: $name($res)</a><br> \n");
という1行を以下のコードに書き換えてください
  my $onename = '';
  my $basePath = $Sys->Get('BBSPATH') . '/' . $Sys->Get('BBS');
  if (open(my $fh, '<', "$basePath/dat/$key.dat")) {
    $text = <$fh>;
    close($fh);
    $onename = (split(/<>/, $_, -1))[0];
    $onename =~ s/<[^>]+>//g;
    $onename = " ($onename)";
  }
  $Page->Print("<a href=\"$path\">$i: $name($res)</a>$onename<br> \n");

PC用indexは392-399行目あたりを同様に書き換えてください。
subbackは243行目あたりです。

>>717も含めてこのような処理は .htmlを生成するたび(書き込まれるたび)に
10個や数十個の .datを読み込むことになるので負荷には気をつけてください。

825 :名無しさん@ぜろちゃんねるプラス:2013/12/18(水) 15:42:40.00 ID:JIzH3F/Q0
横から失礼します
>>796>>824を組み合わせることはできますでしょうか?
やってみたところ、うまく動作しないようです

826 :0ch+開発担当 ◆0chp.sx.ik :2013/12/18(水) 18:54:20.03 ID:YFXypRHX0
すみません、訂正です。
>>824
  $text = <$fh>;

  $onename = <$fh>;
の間違いでした。

>>825
$onenameの取得部分を
  $onename = $lines[0];
として組み合わせてください。

827 :名無しさん@ぜろちゃんねるプラス:2013/12/18(水) 19:44:32.78 ID:XrZSUJo30
>>826
了解しました
ありがとうございました

828 :名無しさん@ぜろちゃんねるプラス:2013/12/19(木) 07:17:57.23 ID:XSYyuaRw0
>>827
やってみたのですが、名前だけじゃなくその後の本文まで続いて表示されてしまうようです

829 :名無しさん@ぜろちゃんねるプラス:2013/12/19(木) 19:09:29.07 ID:pJ66FetN0
失礼します。
全部読む 最新50 1-100 にいくと404 Not Foundになってしまいます。
いろいろ探してみたのですが、わかりませんでした。ファイルのパーミッションもいろいろ試してみましたが、変わりませんでした。
よろしくお願いします

830 :0ch+開発担当 ◆0chp.sx.ik :2013/12/19(木) 20:03:30.01 ID:DyureaBE0
>>828,>>822,>>823
すみませんもう一箇所ミスがありました。
x:  $onename = (split(/<>/, $_, -1))[0];
o:  $onename = (split(/<>/, $onename, -1))[0];


>>829
404 Not Foundはファイルが見つからないという意味です。
プログラムのエラーやパーミッションは関係ありません。

システム設定の基本設定を間違えていませんか?
また、基本設定を変更した後は掲示板一覧から「index更新」を行ってください。

831 :名無しさん@ぜろちゃんねるプラス:2013/12/19(木) 20:08:57.27 ID:hXKBVv2t0
>>599のような本文欄にコマンドを使用してまだかなCGIなどの規制データを操作したいのですが、残念ながらプログラミングの知識がまったくありません
お差し支えなければ作ってくれないでしょうか?

832 :0ch+開発担当 ◆0chp.sx.ik :2013/12/19(木) 20:41:22.21 ID:DyureaBE0
>>831
数日中にサンプルを作ります。
具体的には、どのような場合に何を規制するつもりですか?

833 :名無しさん@ぜろちゃんねるプラス:2013/12/19(木) 20:52:17.06 ID:hXKBVv2t0
>>832
基本的に本文欄コマンドで<ki></ki>に囲まれた部分をまだかなCGIに書き込むという感じです(要するに規制する)
欲を言うのならば特定の規定を守らなかった人(たとえばスレを特定病数以内にn個以上建てた人)を自動で規制リストに加えて、それを特定の板の特定スレに「○○を○○で規制しました」と書き込むような感じです
後者はできたら、で構わないです

834 :名無しさん@ぜろちゃんねるプラス:2013/12/20(金) 00:13:00.70 ID:7f6jOJLp0
>>830
829です
解凍ありがとうございます。
基本設定については何もいじらず稼働させております。
スレッドの作成やレスの書き込みなどは正常に作動しますが、上記箇所のみ404になってしまいます。
一回削除して新しく作成してみましたが変わりませんでした。

835 :名無しさん@ぜろちゃんねるプラス:2013/12/20(金) 07:27:07.32 ID:CETsmwEV0
>>830
ありがとうございます
現在、>>796>>824を組み合わせようと色々試したのですがやっぱりうまくいかないようです
名前は出るようになったのですが、名前を記載し書き込んでも全て「名無し」で表示されてしまいます


836 :0ch+開発担当 ◆0chp.sx.ik :2013/12/20(金) 13:32:45.44 ID:Con7CZrn0
>>833
了解しました。

>>834
test/read.cgi は転送されていますか?
使用しているサーバーなどの構成を教えて下さい。

>>835
 >>824>>1 の名前を表示するようにしてあります。
最終書き込みの名前を表示する場合は
  ($onename, my $text) = (split(/<>/, $lines[$n], -1))[0,3];
としてください。

837 :名無しさん@ぜろちゃんねるプラス:2013/12/20(金) 15:35:07.25 ID:7f6jOJLp0
>>836
834です
test/read.cgiは転送されております。
サーバー構成は
さくらVPSサーバー CentOS6.4
nginx 1.4.4
PHP 5.4.22 perl-CGI perl-FCGI 
ぜろちゃんねるプラス Version 0.7.4
です。
レスの書き込みを行うと、作成した掲示板のlog内にも正常に書き込まれています。

838 :名無しさん@ぜろちゃんねるプラス:2013/12/20(金) 15:42:04.70 ID:7f6jOJLp0
837に追記です。
test/read.cgiにアクセスすると
ページタイトルにERROR!!
ページに2011
とでます。

839 :名無しさん@ぜろちゃんねるプラス:2013/12/20(金) 17:40:09.80 ID:CETsmwEV0
>>836
ありがとうございます
うまく組み合わせることができ、表示されるようになりました

あと一点ご質問なのですが、
my (undef, undef, $date, $text) = split(/<>/, $lines[$n], -1);
($onename, my $text) = (split(/<>/, $lines[$n], -1))[0,3];
は一行もしくは簡潔にまとめることはできますでしょうか?

840 :839:2013/12/20(金) 17:47:20.64 ID:CETsmwEV0
失礼しました

my (undef, undef, $date, $text) = split(/<>/, $lines[$n], -1);
($onename, my $text) = (split(/<>/, $lines[$n], -1))[0,3];

は最終書き込みではなく、
レス番号 : 最新レスのコメント
レス番号 : 最新レスのコメント
レス番号 : 最新レスのコメント
での想定です

841 :名無しさん@ぜろちゃんねるプラス:2013/12/20(金) 18:55:47.81 ID:7f6jOJLp0
837です
自己解決できました。
参考までに↓
nginxの場合、PATH_INFOの取得をするために設定を
location ~ \.cgi($|/) {
include fastcgi_params;
fastcgi_pass 127.0.0.1:8999;
fastcgi_index index.cgi;
fastcgi_split_path_info ^(.+\.cgi)(/.*)$;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
fastcgi_param PATH_INFO $fastcgi_path_info;
fastcgi_param PATH_TRANSLATED $document_root$fastcgi_path_info;
}
としないといけないことがわかりました。

842 :0ch+開発担当 ◆0chp.sx.ik :2013/12/20(金) 19:19:40.62 ID:Con7CZrn0
>>839-840
どのように組み合わせているかにもよりますが、単に
  my ($name, undef, $date, $text) = split(/<>/, $lines[$n], -1);
でいいと思います。 ※ onenameの代わりにnameという変数名にしています
各行がどのような処理を行っているのか一度ご自分で確認してみることをおすすめします。


>>841
PATH_INFOが設定されていなかったんですね。

843 :名無しさん@ぜろちゃんねるプラス:2013/12/20(金) 20:14:45.26 ID:7f6jOJLp0
837です
ありがとうございました。
最後にもう一つ質問ですが、
全部読む 最新50 1-100 にGoogleAdsを入れたいのですが、どこに記入したらいいですか?


844 :0ch+開発担当 ◆0chp.sx.ik :2013/12/20(金) 20:39:37.06 ID:Con7CZrn0
>>843
module/varda.pl の500行目付近のHTMLを書き換えてください。
※広告の個数制限には気をつけてください。

845 :名無しさん@ぜろちゃんねるプラス:2013/12/21(土) 06:46:41.56 ID:Y8Ol8ks50
>>842
無事できました
何日もありがとうございました

ついでに、ご報告なのですが
BBS Other Setting>その他設定
の文字参照のところが、使用可�と文字化けしています

846 :名無しさん@ぜろちゃんねるプラス:2013/12/21(土) 23:44:08.08 ID:gTbxnQzl0
>>844
ありがとうございます。
うまくできました。

847 :0ch+開発担当 ◆0chp.sx.ik :2013/12/22(日) 12:40:16.61 ID:Q9m4v2GE0
>>845
報告ありがとうございます。

848 :名無しさん@ぜろちゃんねるプラス:2013/12/26(木) 18:35:55.31 ID:TsBSqDRQ0
Cookie式のカウントプラグインで、session.plを使用する方法を教えてください
ちなみに初心者で技術はないに等しいです

849 :0ch+開発担当 ◆0chp.sx.ik :2013/12/27(金) 15:09:40.21 ID:3A7OCn8P0
>>833
遅くなりましたがこれでいかがでしょうか。
http://svn.sourceforge.jp/svnroot/zerochplus/codes/0ch_denycmd.pl

>規定を守らなかった人を自動で規制リストに加えて
>特定スレに書き込む
これらについてはプラグインで実装するのは難しく、本体を改造する必要があります。

850 :0ch+開発担当 ◆0chp.sx.ik :2013/12/27(金) 15:37:13.18 ID:3A7OCn8P0
>>848
session.pl の代わりに CGI::Session を使ってサンプルを作りました。
参考にするなり改造するなり、自由に利用してください。
http://svn.sourceforge.jp/svnroot/zerochplus/codes/0ch_sessioncount.pl

851 :名無しさん@ぜろちゃんねるプラス:2013/12/27(金) 15:39:34.08 ID:nut1TpWh0
>>850
ありがとうございます!

852 :名無しさん@ぜろちゃんねるプラス:2013/12/27(金) 17:01:58.94 ID:WLahH2S/0
スレッド作成にパスをかけることはできますでしょうか?

853 :0ch+開発担当 ◆0chp.sx.ik :2013/12/27(金) 18:54:43.70 ID:3A7OCn8P0
>>852
スレッド作成ができるユーザーを制限する方法はいくつかあると思いますが、
スレッド作成権限を持ったキャップを作って、スレ立てをキャップオンリーに設定するのが一番簡単だと思います。

854 :名無しさん@ぜろちゃんねるプラス:2013/12/27(金) 20:26:15.36 ID:WLahH2S/0
なるほど
ちなみにパスワード形式にすることはできないでしょうか?

855 :0ch+開発担当 ◆0chp.sx.ik :2013/12/27(金) 20:43:54.47 ID:3A7OCn8P0
>>854
一言にパスワードと言ってもいろんなパターンがあると思います。
・投稿フォームにパスワード欄を加える (専ブラ不可)
・BASIC認証 (専ブラ不可)
・キャップ (パスワード認証の一種)
など、どのようなものを意図しているのか具体的に説明してください。

856 :名無しさん@ぜろちゃんねるプラス:2013/12/28(土) 07:53:53.28 ID:UWNiwPMg0
>>855
・投稿フォームにパスワード欄を加える (専ブラ不可)

これが希望です

857 :0ch+開発担当 ◆0chp.sx.ik :2013/12/28(土) 13:01:31.35 ID:93f1DxQU0
>>856
bbs.cgi 198行目あたりに以下のコードを追加してください(行頭の記号を除く)。
.   }
+  if (!$Form->Equal('pass', 'pasuwa-do')) { # パスワード確認
+    return 204;
+  }
.   $Form->Set('key', int(time));
※番号を変えてinfo/errmsg.cgiに対応するメッセージを追加すれば
任意のエラーメッセージを表示可能です。

さらに320行目付近のHTML(PC用)にパスワード欄を追加してください。
  パス:<input type="password" name="pass"><br>
ケータイ用は374行目付近です。

305KB
READ.CGI - 0ch+ BBS 0.7.5 20220323
ぜろちゃんねるプラス