KENT-WEB サポートコーナー 過去ログ [ 0423 ]


記事No: 13034
投稿日: 2014/06/27(Fri) 15:49:57
タイトルJoyful Noteに投稿パスワードを設定したい
ID情報: touka
投稿者: touka
URLhttp://www.nawasui.net/

タイトルの通り、Joyful Noteに投稿パスワードを設定したいと思い、
下記のスレッドを参考に修正したのですが、エラーが出てしまいました。
http://www.kent-web.com/support/oldlog/0004/0276.html

サーバーはロリポップです。
修正前にプログラムをアップした時は正常に表示されていました。
ちなみに他のプログラムもノーマルのままなら正常に動いていますので、
お恥ずかしながら設定が間違っているというか全然足りないと思います。
設置URLとエラーの内容は下記のとおりです。

http://www.nawasui.net/joyful/joyful.cgi
※初期データに戻してあります。

----------------------------------------
Software error:

Global symbol "$postpass" requires explicit package name at ./init.cgi line 26.
Global symbol "$PostMode" requires explicit package name at ./init.cgi line 30.
Compilation failed in require at joyful.cgi line 16.
----------------------------------------

プログラムの管理者1人、投稿者は複数人の運営を考えていますので
投稿パスワードが複数設定できればベストなのですが、
とりあえず1つでも投稿パスワードが設定できれば良いと考えております。

多分下記のepad.cgiでの変更設定を見ると
追記が全然足りていないのは分かるのですが、
どこに追加して良いのか分からないのでお教え下さい。
よろしくお願いします。

http://www.kent-web.com/support/old/66/0292.html


記事No: 13041
投稿日: 2014/06/30(Mon) 15:39:47
タイトルRe: Joyful Noteに投稿パスワードを設定したい
ID情報: teketen
投稿者: てけてん

動作テストをしていますが、改造は自己責任でお願いします。
動作がおかしい時は、元に戻してください。
また、投稿する時だけの制限で、記事の削除や修正には対応していません。

取りあえず、投稿制限として「投稿パスワードの入力」と「投稿パスワードとIDの入力」の2パターンを用意しました。
設定いつでも変更出来ます。

JoyfulNote v5.2での改造です。

regist.cgi(JOYFUL NOTE : regist.cgi - 2013/04/07)

#-----------------------------------------------------------
# 投稿記事受付
#-----------------------------------------------------------
sub regist {
# フォーム入力チェック
form_check();

の次の行に

# 改造による追加 ここから
if($cf{pass_type} > 0) {
my $check;
if($cf{pass_type} == 1) {
for my $pass (@{$cf{user_pass1}}) {
$check ++ and last if($in{"$cf{pass}"} eq $pass);
}
} elsif($cf{pass_type} == 2) {
$check ++ if($in{"$cf{id}"} and $in{"$cf{pass}"} eq $cf{user_pass2}{$in{"$cf{id}"}});
} else {
error('不明な処理です');
}
error('投稿パスワードの入力不備です') unless($check);
}
# 改造による追加 ここまで

を挿入して下さい。
init.cgiの設定部分に、以下を追加して設定を行い、テンプレートファイルに必要な入力フィールドを追加して下さい。
以上です。

#===========================================================
# ■ 投稿制限:改造による追加
#===========================================================

# 投稿制限
# 0 … 誰でも書き込みできる
# 1 … 投稿パスワードが必要
# 2 … IDと投稿パスワードが必要
$cf{pass_type} = 2;

# $cf{ax-type}が1の場合のパスワードを設定して下さい。
# 複数設定可能です。※ここでの設定は、$cf{ax-type}が1で有効
$cf{user_pass1} = [
'1111',
'abc123',

];

# $cf{ax-type}が2の場合、=>の左でIDを、右で対になるパスワードを設定して下さい。
# 複数設定可能です。※ここでの設定は、$cf{ax-type}が2で有効
$cf{user_pass2} = {
'taro' => '1111',
'jiro' => 'abc123',

};

# 投稿パスワードの入力フィールド(入力フォーム)のname値を半角英数字で指定
# ※但し、mode、reno、bbs、name、sub、comment、url、upfile、captcha、str_crypt、color、及び$cf{id}で指定したものは指定出来ません。
# 例:暗証キーを投稿パスワードと兼用する場合、
# <input type="password" name="pwd" size="8" maxlength="8">
# のname="pwd"の"で括られた部分の値です。この場合、pwdとなります。
# 暗証キーとは別に投稿パスワードを設定したいなら、テンプレートファイルに指定したname値で入力フィールドを追加してください。
# 例:$cf{pass} = 'user_pass';とした場合は、
# <input type="password" name="user_pass" size="8" maxlength="8">を追加する。
$cf{pass} = 'pass';

# $cf{ax-type}が2の場合のIDの入力フィールドのname値を半角英数字で指定
# ※但し、mode、reno、bbs、pwd、name、sub、comment、url、upfile、captcha、str_crypt、color、及び$cf{pass}で指定したものは指定出来ません。
# 投稿パスワードと同じ要領で指定。
# テンプレートファイルに、指定したname値でID入力フィールドを追加して下さい。
$cf{id} = 'id';


記事No: 13045
投稿日: 2014/07/02(Wed) 10:18:32
タイトルRe^2: Joyful Noteに投稿パスワードを設定したい
ID情報: touka
投稿者: touka
URLhttp://www.nawasui.net/joyful/joyful.cgi

てけてん様

この度はご回答をいただきまして、ありがとうございます。

今、投稿テストをしており、
投稿制限:1 … 投稿パスワードが必要
にて無事動作しております。

投稿パスワード=投稿者限定バージョンにしたので
画像認証をなしにしていますが
多分スパム対策としてどちらかがあれば良いかなと
思っております。

丁寧な解説ですぐに反映することができ、感謝しております。
ありがとうございました。


[検索ページ] [掲示板]