[サンプル]の検索結果


オンラインショップの商品が注文された際に顧客に注文内容の確認メールを送信したり、掲示板にコメントが書き込まれた際に管理人宛てに通知メールを送信したりするには、フォームで入力された項目の内容をCGIからメールとして送信する必要が あります。

一般的なレンタルサーバーでCGIからメールを送信する場合の基本的な処理手順は次のようになります。

1.フォームから入力された各項目の値をパラメータから取得
2.subject(件名)をMIME-Base64形式に変換
3.メッセージを作成
4.メール送信する文字列の文字コードをJISに変換
5.sendmailを使用してメールを送信

下記のCGIスクリプト(UTF-8)はレンタルサーバー等で利用可能なsendmailを使用してフォームから入力された、Subject、宛先メールアドレス、差出人、本文を使用してメールを送信するサンプルプログラムです。


--- mailform.html (入力フォーム) ---
<html>
<head>
<meta http-equiv="content-type" content="text/html; charset=utf-8">
<title>メールフォーム</title>
</head>
<body>
<h1 class="title">メールフォーム</h1>
<form method="post" action="sendmail.cgi">
<input type="hidden" name="a" value="exec">
件名(Subject) :<br />
<input type="text" name="subject" size="80" value=""><br />
宛先(To) :<br />
<input type="text" name="to" size="80" value=""><br />
差出人(From) :<br />
<input type="text" name="from" size="80" value=""><br />
本文(Body) :<br />
<textarea name="body" rows="10" cols="65"></textarea><br />
<p>
<input type="submit" value="送信">
</p>
</form>
</body>
</html>

--- sendmail.cgi (メール送信CGI) ---
#!/usr/bin/perl
use strict;
use warnings;

use CGI;
use Encode;

my $cgi = CGI->new();

# パラメータからフォームの入力値を取得
my $subject = $cgi->param('subject');
my $to = $cgi->param('to');
my $from = $cgi->param('from');
my $body = $cgi->param('body');

# subject(件名)をMIME-Base64形式に変換
$subject = Encode::encode('MIME-Header-ISO_2022_JP', $subject);

# メッセージを作成
my $message = <<"END_MESSAGE";
From: $from
To: $to
Subject: $subject
Mime-Version: 1.0
Content-Type: text/plain; charset=iso-2022-jp
Content-Transfer-Encoding: 7bit

$body
END_MESSAGE

# メール送信する文字列の文字コードをJISに変換
Encode::from_to($message, 'utf8', '7bit-jis');

# sendmailを使用してメールを送信
my $sendmail_path = '/usr/sbin/sendmail';  # sendmail path
open my $mailh, "| $sendmail_path -t -oi $to";
print {$mailh} $message;
close $mailh;

# 送信終了を表示
my $html = <<"END_HTML";
<html>
<head>
<meta http-equiv="content-type" content="text/html; charset=utf-8">
<title>送信終了</title>
</head>
<body>
<p><big>送信終了</strong></big></p>
</body>
</html>
END_HTML
print "Content-Type: text/html\n\n", $html;

なお、フォームからのパラメータの受け取りにはCGIモジュールを、メール本文の文字コードの変換やsubject(件名)の MIME-Base64形式への変換にはPerl 5.8以降では標準モジュールなっているEncodeモジュールを使用しています。

また、このサンプルでは、処理手順をわかりやすくするために、入力チェックなどの実際に運用する場合に必要な処理を行ってませんが、入力チェック処理も含まれたより実用的なシンプルなメールフォームCGIの無料配布(ライセンスはGPL)も行っていますので、よろしければご活用ください。

[2178] Posted by kagahiro at 2010/08/05 14:39:39
2 point | Link (7) | Trackback (0) | Comment (2)

PerlのプログラムからDBI経由でMySQLに接続し、SELECT文でデータを取得する処理のサンプルプログラムです。

あらかじめphpMyAdminを使用してMySQLにテータベース「testdb」を作成し、以下のSQLを実行しテーブル「users」を作成、3件のレコードを登録しておきます。

CREATE TABLE `users` (
  `userid` varchar(100) COLLATE utf8_bin NOT NULL,
  `password` varchar(250) COLLATE utf8_bin NOT NULL,
  `status` int(11) NOT NULL,
  `auth` int(11) NOT NULL,
  `username` varchar(250) COLLATE utf8_bin NOT NULL,
  `address` varchar(250) COLLATE utf8_bin NOT NULL,
  `mailaddr` varchar(100) COLLATE utf8_bin NOT NULL,
  `hpurl` varchar(250) COLLATE utf8_bin NOT NULL,
  `widgets` text COLLATE utf8_bin NOT NULL,
  `createdate` datetime NOT NULL,
  `lastupdate` datetime NOT NULL,
  PRIMARY KEY (`userid`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_bin;

insert into `users` (`userid`,`password`,`status`,`auth`,
 `username`,`address`,`mailaddr`,`hpurl`,`widgets`,
 `createdate`,`lastupdate`)
  values('admin','1234','1','0','webmaster','',
  webmaster100@59log.com','http://59log.com/','',now(),now());
insert into `users` (`userid`,`password`,`status`,`auth`,
 `username`,`address`,`mailaddr`,`hpurl`,`widgets`,
 `createdate`,`lastupdate`)
  values('test1','5678','1','1','user 1','',
  'test1@59log.com','http://59log.com/','',now(),now());
insert into `users` (`userid`,`password`,`status`,`auth`,
 `username`,`address`,`mailaddr`,`hpurl`,`widgets`,
 `createdate`,`lastupdate`)
  values('test2','abcd','1','1','user 2','',
  'test2@59log.com','http://59log.com/','',now(),now());

以下のPerlプログラムでは、テーブル「users」からステータスが1のレコードを全て取得、一旦配列に格納してから標準出力に出力しています。

検索条件の設定にはプレースホルダを使用し、DB処理でエラーが発生した場合は、例外処理に飛んでエラーの内容が出力されるように、RaiseErrorに1を設定しています。

--- mysql_select.pl ---

#!/usr/bin/perl

use strict;
use warnings;

use DBI;

my $data_source = "DBI:mysql:testdb"; # 接続先はtestdb
my $username = "test"; # データベースへのアクセス権限を持つユーザーを指定
my $password = "abcd"; # そのパスワード

my $status = 1;
my @recs = ();
eval {
    my $dbh = DBI->connect($data_source, $username, $password,
                          {RaiseError => 1, PrintError => 0});
    my $sql  = "select * from users where status = ?";
    my $sth = $dbh->prepare($sql);
    $sth->execute($status);
    while (my @rec = $sth->fetchrow_array) {
        push @recs, [@rec];
    }
    $sth->finish;
    $dbh->disconnect;
};
if ($@) {
    print "Error : $@\n";
}

foreach my $rec (@recs) {
    print join(",", @{$rec}), "\n";
}
[2152] Posted by kagahiro at 2010/07/26 09:49:13
0 point | Link (5) | Trackback (0) | Comment (0)

Ruby(ルビー)とは、まつもとゆきひろ氏によって開発されたオブジェクト指向のスクリプト言語のことで、Perlに匹敵する強力なテキスト処理能力とシンプルな文法などを特長とする。

David Heinemeier Hansson氏によって開発された優れたWebアプリケーションフレームワーク「Ruby on Rails」の出現によって、Webアプリケーション開発においても人気の高い言語になっている。

オブジェクト指向言語Ruby
オブジェクト指向のスクリプト言語 Rubyのサイト。ダウンロード、リファレンスマニュアル、FAQ、メーリングリストなど。

Ruby on Rails
オブジェクト指向スクリプト言語「Ruby」向けのオープンソース(MIT license)のWebアプリケーション開発フレームワーク。

Rubyアソシエーション
Ruby関連のプロジェクトやコミュニティ、ビジネスの関係を強化し、エンタープライズ領域におけるRubyの利用に関する諸問題の解決に取り組むことを目的とする合同会社。理事長はRuby開発者のまつもとゆきひろ氏。

日本Rubyの会
Rubyの利用者の支援、Ruby(+Rubyのライブラリ)開発者の支援を目的とした任意団体。

逆引きRuby
Rubyを使ってやりたい事から、その方法を調べられる逆引きリファレンス。

Ruby(Japanese)
Rubyのスクリプト集。

Rubyコーディング規約
Rubyのコーディング規約の雛型。

Ruby Draft Specification
IPAがJIS規格として標準化を進めているオープンソースのプログラミング言語「Ruby」の標準化仕様のドラフト(英語)。

Ruby のサンプルプログラム投稿サイト
Ruby のサンプルプログラムを登録、閲覧をするためのサイト。

プログラミング言語 Ruby
オライリージャパン 著者:まつもと ゆきひろ,David Flanagan 価格:3,990円 評価:★★★★★


  • 最も信頼できるRubyの本 ★★★★★
  • 基本書にふさわしい本 ★★★★★
  • rubyマスターになるために ★★★★★
  • 鬱にされる鬱然たるRuby教科書 ★★★
  • For Rubist ★★

powered by amalink
[2024] Posted by buzei at 2010/06/28 11:27:37
1 point | Link (2) | Trackback (0) | Comment (1)

スクリプトプログラミング言語「Perl(パール)」の入門書や解説書。新版Perl言語プログラミングレッスン入門編平易な文章と、たくさんのサンプルプログラムで、Perlの基礎がわかりやすく解説されたPerl入門書。はじ...
[1122] Posted by buzei at 2009/05/21 18:47:35
0 point | Link (1) | Trackback (0) | Comment (0)

オープンソースの高速・軽量データベース「MySQL」の入門書や運用管理についての詳細な解説書、リファレンス、MySQLを利用したWebアプリケーション構築方法についての書籍など。MySQL 徹底入門 第2版オープンソースの...
[1079] Posted by buzei at 2009/05/03 13:21:06
0 point | Link (1) | Trackback (0) | Comment (0)

掲示板やチャットなどのフリーPHPスクリプトを配布しているサイトやPHPを使った掲示板の作り方を解説しているサイト。php365.com - PHPスクリプト配布サイト -掲示板や自動リンク集、メールフォームなど。P-Web掲示板...
[1007] Posted by buzei at 2009/04/06 13:50:29
0 point | Link (10) | Trackback (0) | Comment (0)

Webアプリケーションの開発に広く利用されているスクリプト言語PHPに関する書籍。PHPプログラミングの基礎から解説している入門書やサンプルコードが掲載された詳細な解説書など。初めてのPHP5動的なWebサイトを構築...
[1006] Posted by buzei at 2009/04/06 13:44:44
0 point | Link (1) | Trackback (0) | Comment (0)

正規表現(regular expression)とは、異なる文字列の集まりを一つパターンで表現するための表現方法で、テキストエディタやAWK、Sed、Perl、Python、Rubyなどのテキスト処理を目的とするプログラミング言語において文...
[514] Posted by buzei at 2008/07/29 21:58:53
0 point | Link (1) | Trackback (0) | Comment (0)

HTMLソースからtitleやbodyタグで囲まれている部分を抜き出すための正規表現ですが、<title.*>(.+)</title><body.*>(.+)</body>くらいでいいだろうと思っていたら甘かった。サイトによっては...
[513] Posted by buzei at 2008/07/29 19:00:17
0 point | Link (2) | Trackback (0) | Comment (0)

Active Server Pages (ASP)とその後継技術であるASP.NETに関する書籍。VBScript ASPスクリプティング入門データベースをインターネットやイントラネット上で扱う場合に効力を発揮するVBScriptとASPについての初心者...
[467] Posted by buzei at 2008/07/10 06:46:08
0 point | Link (2) | Trackback (0) | Comment (0)

|< 先頭へ  < 前へ  1 2 3  次へ >


アクセスランキング

今日のアクセスランキング(上位10件)

  1. 2NN (2ch News Navigator) (9 PV)
  2. [Twitter]ツイッター検索のまとめ (1 PV)
  3. プリンセスガーデンホテル女性社長の「片岡都美」氏はフジモリ元大統領夫人 (1 PV)
  4. 2ちゃんねる(2ch)検索 掲示板 - スレタイ、過去ログ、全文検索 (1 PV)
  5. 読売新聞「石井誠」記者変死事件 (1 PV)

今月のアクセスランキング(上位10件)

  1. 2NN (2ch News Navigator) (329 PV)
  2. プリンセスガーデンホテル女性社長の「片岡都美」氏はフジモリ元大統領夫人 (97 PV)
  3. 小林興起元衆議院議員がタレントの杉本彩さんにキスを迫る (61 PV)
  4. 2ちゃんねる(2ch)検索 掲示板 - スレタイ、過去ログ、全文検索 (43 PV)
  5. 読売新聞「石井誠」記者変死事件 (21 PV)
  6. ログ速(ろぐそく、logsoku) - 過去ログ スレタイ検索 全文検索 (20 PV)
  7. 5ちゃんねる(5ch.net、旧2ちゃんねる)掲示板 (17 PV)
  8. 掲示板やチャットなどのフリーPHPスクリプトの配布サイト (12 PV)
  9. PHP、MySQLで動くオープンソース掲示板ソフト (12 PV)
  10. 掲示板フリーソフト - 無料で利用できる掲示板CGI (11 PV)

アクセス統計

ディレクトリ

関連サイト