▲日記帳に戻る


掲示板のパスワード制について・・・その1 2006年09月25日(月)

363.txt(2,825 byte)

本家の掲示板が荒される&削除が面倒なので、宣言通り、登録制のプログラム作成に着手。
大まかな仕様は・・・
(1)DBを使ったBasic認証とする
(2)IDにはメールアドレスを使用し、パスワードは自由に設定出来る
(3)登録を申し込んだ人には確認メールを飛ばし、チェック用のURLをクリックした時点でDBに登録する
・・・ってな感じです。
で、とりあえず(2)の辺りまでのCGIは出来上がったので、皆には興味無いかも知れないけど、ソースを公開。(HTML側はパスワード制を開始した時点で確認してね)

-------------------------------------------------

#!/usr/local/bin/perl

use strict;
use CGI;
use DB_File;
use Fcntl;

require './jcode.pl';

my $sendmail = '/usr/lib/sendmail';

my $mail;
my $pass;
my $handle;
my $orghandle;
my $query;
my @query;
my $key;
my $val;
my $method;
my $emptychk;

#my $registdb = './regist.db';

$emptychk = 0;

print "Content-type: text/html\n\n";

&addhead;


$method = $ENV{'REQUEST_METHOD'};

if($method eq 'GET') {
$query = $ENV{'QUERY_STRING'};
} elsif($method eq 'POST') {
read(STDIN, $query, $ENV{'CONTENT_LENGTH'});
} else {
die "error in parseInput()\n";
}

@query = split(/&/, $query);
foreach (@query) {

($key, $val) = split(/=/, $_);

$val =~ tr/+/ /;
$val =~ s/%([a-f\d]{2})/pack 'H2',$1/egi;
$val =~ s/&/&/g;
$val =~ s/"/"/g;
$val =~ s/ $val =~ s/>/>/g;
$val =~ s/\r\n/\n/g;
$val =~ s/\n//g;

&checkempty;

if($key eq 'mail') {
unless($val =~ /.+\@.+\..+/ || /.+\@.+\..+\..+/ || /.+\@.+\..+\..+\..+/) {
$emptychk = 1;
print "入力されたメールアドレスは正しくありません!
メールアドレス --> $val
\n";
} else {
$mail = $val;
print "メールアドレス --> $mail
\n";
}
}



Re:掲示板のパスワード制について・・・その1 - あまぐりパパ

ああああ・・・・

日記のCGIにCGIのソースを投稿したら変な事に(笑・ゲラゲラゲラ)
2006年09月25日(月)00:57


本当はこういう事が書いてあったのさ・・・ - あまぐりパパ

本家の掲示板が荒される&削除が面倒なので、宣言通り、登録制のプログラム作成に着手。
大まかな仕様は・・・
(1)DBを使ったBasic認証とする
(2)IDにはメールアドレスを使用し、パスワードは自由に設定出来る
(3)登録を申し込んだ人には確認メールを飛ばし、チェック用のURLをクリックした時点でDBに登録する
・・・ってな感じです。
で、とりあえず(2)の辺りまでのCGIは出来上がったので、皆には興味無いかも知れないけど、ソースを公開。(HTML側はパスワード制を開始した時点で確認してね)

-------------------------------------------------
(ここにソースの部分)
------------------------------------------------

後は取得した値を仮DBに登録し、メールを送る。
メールに記載されたURL+CGIのパラメータで本番DBに登録。
仮DBのハッシュキーとCGIのパラメーターはURLエンコードされたハンドルネームを使う予定。
本番DBのハッシュキーはメールアドレス、値はパスワード。

そんでもって、「.htaccess」を掲示板のページに設置。
その記述にはAuthUserDBFileのパスに本番DBファイル名を設定して、一丁あがり・・・
の筈。

何か、日記というより備忘録だな、こりゃ・・・
2006年09月25日(月)01:06


で、ソース - あまぐりパパ

本文の添付ファイルにしてみます。
2006年09月25日(月)01:08

↓前の日記 / 次の日記↑


Web Diary Professional ver 2.15