[プログラム]の検索結果
C言語やC++なら2次元配列といっても配列の階層を増やすだけなので、わりと簡単に理解できるのですが、
Perlはそこで
リファレンスという、いまいちわかりにくいものが出てくるのでちょっと面倒です。とはいっても、2次...
C言語やC++なら2次元配列といっても配列の階層を増やすだけなので、わりと簡単に理解できるのですが、
Perlはそこでリファレンスという、いまいちわかりにくいものが出てくるのでちょっと面倒です。
とはいっても、2次元配列程度ならそんなに複雑なコードになるというわけでもありません。
以下は、numdata.txtというコンマで区切られたテキストファイルのデータを、2次元配列に格納してからレコードごとに標準出力に出力するPerlのサンプルプログラムです。
--- numdata.txt ---
1,2,3,4
11,12,13,14
21,22,23,24
31,32,33,34
41,42,43,44
--- sample.pl ---
#!/usr/bin/perl
use strict;
use warnings;
#use Data::Dumper;
my @list;
open my $infh, '<', "numdata.txt";
while (my $rec = <$infh>) {
chomp $rec;
if ($rec ne '') {
push @list, [split(/,/, $rec)];
}
}
close $infh;
#print Dumper(@list);
foreach my $item (@list) {
# print Dumper($item);
my ($a, $b, $c, $d) = @{$item};
print "$a, $b, $c, $d\n";
}
SQLインジェクション(SQL Injection)とは、Webアプリケーション開発者の意図しない悪意のあるSQL文やその一部を入力して、不正にデータベースを操作することを目的とした攻撃のことで、多くの場合データベースを不正に書き換えてコンテンツを改ざんし、ウェブ閲覧者にマルウエアの侵入を試みるプログラム (スクリプト)を実行させようとする。
SQLインジェクションの対策としては、入力値には半角英数字のみを許可するよう制限する方法や、SQLで使える特殊文字をエスケープして対処するという方法が一般的。
SQL インジェクション攻撃とその対策
今夜分かるSQLインジェクション対策
<TMPL_LOOP>タグはセクションを区切り、名前をつけることができます。この名前つきループの内側に<TMPL_VAR>タグを置き、プログラムでパラメータに代入するハッシュ・リファレンスの param() にリスト(配...
<TMPL_LOOP>タグはセクションを区切り、名前をつけることができます。この名前つきループの内側に<TMPL_VAR>タグを置き、プログラムでパラメータに代入するハッシュ・リファレンスの param() にリスト(配列リファレンス)を渡すと、リスト分の出力が繰り返されます。
以下は、<TMPL_LOOP>タグの使い方を示すサンプルプログラムです。サンプルプログラムでは、コンマで区切られたデータファイルを読み込んでリストを作成し、それをパラメータに渡してテーブルを表示しています。また、<TMPL_IF>タグ、<TMPL_ELSE>タグを使用してデータがない場合は、テーブルが出力されないようにしています。
--- データファイル(userdata.txt)
kagahiro,kitaakita,kagahiro3@59log.com,011678901
admin,tokyo,webmaster10@59log.com,011778901
buzei,kawasaki,support2@59bbs.org,041758901
--- テンプレートファイル(tmplloop.tmpl)
<html>
<head>
<title>HTML::Templateのサンプルプログラム LOOP</title>
</head>
<body>
<h1>HTML::Templateのサンプルプログラム LOOP</h1>
<TMPL_IF NAME=DATA_NUM>
<table>
<tr>
<td>User Name</td>
<td>Address</td>
<td>Email</td>
<td>Tel</td>
</tr>
<TMPL_LOOP NAME=USER_INFO>
<tr>
<td><TMPL_VAR NAME=USERNAME></td>
<td><TMPL_VAR NAME=ADDRESS></td>
<td><TMPL_VAR NAME=EMAIL></td>
<td><TMPL_VAR NAME=TEL></td>
</tr>
</TMPL_LOOP>
</table>
<TMPL_ELSE>
No data
</TMPL_IF>
</body>
</html>
--- CGI(tmplloop.cgi)
#!/usr/bin/perl
use strict;
use warnings;
use HTML::Template;
my $template = HTML::Template->new(filename => 'tmplloop.tmpl');
my @loop_data = ();
open my $infh, '<', "userdata.txt";
while (my $rec = <$infh>) {
chomp $rec;
if ($rec ne '') {
my %row_data;
my ($username, $address, $email, $tel) = split(/,/, $rec);
$row_data{USERNAME} = $username;
$row_data{ADDRESS} = $address;
$row_data{EMAIL} = $email;
$row_data{TEL} = $tel;
push @loop_data, \%row_data;
}
}
close $infh;
$template->param(USER_INFO => \@loop_data);
$template->param(DATA_NUM => scalar(@loop_data));
print "Content-Type: text/html; charset=utf-8\n\n";
print $template->output;
HTML::
Templateの<TMPL_VAR>タグは、プログラムでパラメータに値を設定すると、タグの部分がパラメータで設定された文字列で置き換えられるという簡単なものです。以下は、<TMPL_VAR>タグの使い方を示す...
HTML::Templateの<TMPL_VAR>タグは、プログラムでパラメータに値を設定すると、タグの部分がパラメータで設定された文字列で置き換えられるという簡単なものです。
以下は、<TMPL_VAR>タグの使い方を示す単純なサンプルプログラムです。
--- テンプレートファイル(tmplvar.tmpl)
<html>
<head>
<title>HTML::Templateのサンプルプログラム VAR</title>
</head>
<body>
<h1>HTML::Templateのサンプルプログラム VAR</h1>
<p>
My Name is <TMPL_VAR NAME=NAME> <br />
My IP Address is <TMPL_VAR NAME=IPADDR> <br />
</p>
</body>
</html>
--- CGI(tmplvar.cgi)
#!/usr/bin/perl
use strict;
use warnings;
use HTML::Template;
my $template = HTML::Template->new(filename => 'tmplvar.tmpl');
$template->param(NAME => 'Yamato, Taro');
$template->param(IPADDR => $ENV{'REMOTE_ADDR'});
print "Content-Type: text/html; charset=utf-8\n\n";
print $template->output;
Template Toolkit (TT)は、HTML::Templateなど他のテンプレートと比較してより汎用性の高い処理をすることが可能な
テンプレートエンジン。出力をサブルーチンに渡したりファイルに出力することもできる。また、テンプ...
Template Toolkit (TT)は、HTML::Templateなど他のテンプレートと比較してより汎用性の高い処理をすることが可能なテンプレートエンジン。出力をサブルーチンに渡したりファイルに出力することもできる。
また、テンプレートファイル内の変数置換だけでなく、テンプレートの中にTT2言語と呼ばれる言語で簡単なプログラムを書いたり、DBIなどのプラグインを使用してデータベースへの接続をすることも可能。
Template Toolkit Home Page
Template Toolkit Manual -テンプレートツールキット和訳マニュアル-
Template Toolkit Manual(英語)
テンプレートエンジンとは、
テンプレートと呼ばれるHTMLページのひな形をプログラムからデータを渡し合成した結果をHTMLページとして出力するためのライブラリのことで、
テンプレートエンジンを利用することで、プロ...
テンプレートエンジンとは、テンプレートと呼ばれるHTMLページのひな形をプログラムからデータを渡し合成した結果をHTMLページとして出力するためのライブラリのことで、テンプレートエンジンを利用することで、プログラムのロジックとWebページのデザインを分離することができるため、プログラマーとWebデザイナーの分業が可能になる。
Webアプリケーションの開発においてはテンプレートエンジンの使用が標準的になっており、多くのWebアプリケーションフレームワークでその一部となっている。
Perlで利用できるテンプレートエンジンには、Template Toolkit(TT)、HTML::Templateなどがある。
テンプレートエンジン
60行で作るPHP用テンプレートエンジン
40行で作るPerl用テンプレートエンジン
[perl] TTより5倍速い?テンプレートエンジン"Tenjin"を試す
Pure JavaScript Template Engine
Linux および
Unix システム上で安全なプログラムを書く際に必要となる
設計や
実装について、そのガイドライン。遠隔のデータを見るためのビューアーや Web アプリケーション(CGI スクリプトを含む)、ネットワーク・サ...
Linux および Unix システム上で安全なプログラムを書く際に必要となる設計や実装について、そのガイドライン。遠隔のデータを見るためのビューアーや Web アプリケーション(CGI スクリプトを含む)、ネットワーク・サーバ、setuid や setgid してあるプログラムが対象。CやC++、Java、Perl、PHP、Python、TCL、Ada95 の個別ガイドラインも掲載されている。
Secure Programming for Linux and Unix HOWTO
単にテキストファイル等の
文字エンコードを変換するのであれば、iconvコマンドを使用して変換すれば良いのですが、ときにはプログラム内部で取得した文字列の
文字エンコードを
変換したい場合もあります。以下のプログ...
単にテキストファイル等の文字エンコードを変換するのであれば、iconvコマンドを使用して変換すれば良いのですが、
ときにはプログラム内部で取得した文字列の文字エンコードを変換したい場合もあります。
以下のプログラムはLinuxやCygwinの環境でC言語のプログラムからiconvを呼び出して文字エンコードを変換する場合の手順を示したサンプルプログラムです。
--- tst_iconv.c ---
#include <stdio.h>
#include <iconv.h>
#define BUFSIZE 1024
char outbuf[BUFSIZE];
int convert(char const *src,
char const *dest,
char const *text,
char *buf,
size_t bufsize);
main(void)
{
int ret;
ret = convert("SHIFT-JIS", "UTF-8",
"日本語テストメッセージおはよう",
outbuf, sizeof(outbuf));
if (ret) {
printf("%s\n", outbuf);
}
else {
printf("Oops!\n");
}
}
int convert(char const *src,
char const *dest,
char const *text,
char *buf,
size_t bufsize)
{
iconv_t cd;
size_t srclen, destlen;
size_t ret;
cd = iconv_open(dest, src);
if (cd == (iconv_t)-1) {
perror("iconv open");
return 0;
}
srclen = strlen(text);
destlen = bufsize - 1;
memset(buf, '\0', bufsize);
ret = iconv(cd, &text, &srclen, &buf, &destlen);
if (ret == -1) {
perror("iconv");
return 0;
}
iconv_close(cd);
return 1;
}
コンパイル方法
$ gcc -o tst_iconv tst_iconv.c -liconv
ICONV
ふつうのLinuxプログラミング Linuxの仕組みから学べるgccプログラミングの王道
ソフトバンククリエイティブ 著者:青木 峰郎 価格:2,940円 評価:★★★★★
- 良書だと思います ★★★★★
- Linuxを学ぶ為の読本、Cプログラムミングを学ぶなら別の本で ★★★★★
- 基礎を学ぶには良い書籍だと思います ★★★★★
- 入門書としては良い ★★★★
- Linuxプログラミングを始めたい人にオススメ ★★★★★
powered by
amalink
Zen Cart(ゼンカート)は、
オープンソースECサイト構築ソフト「osCommerce」から派生した、PHPとMySQLを使って実装されている高機能の
オープンソースのECサイト構築ソフト。ライセンスはGPLを採用しておリ誰でも
無料で...
Zen Cart(ゼンカート)は、オープンソースECサイト構築ソフト「osCommerce」から派生した、PHPとMySQLを使って実装されている高機能のオープンソースのECサイト構築ソフト。
ライセンスはGPLを採用しておリ誰でも無料でダウンロードして利用できる。また、プログラムの改変や再配布も自由に行うことができる。
Zen Cartの特長
- インストールが簡単
- テンプレートシステムでデザインが変更可能
- カラー、サイズなどの多彩な商品オプション機能
- 多彩な割引き機能
- ダウンロード販売
- 多言語、多通貨対応
- 豊富なモジュールで機能を追加
- 携帯対応
- 高機能なポイント
- 決済・配送
- 各種CMS(XOOPS、Geeklog、WordPress、Movable Type)との連動
- コミュニティが活発
Zen-Cart.JP(Zen Cart 日本語公式サイト)は、Zen Cartの日本語化を行う団体のサイト。
日本語化されたZen Cartのダウンロードができる他、インストール方法の説明などの日本語ドキュメント、デモショップ、ドキュメント、FAQ、掲示板、開発Wikiなどがある。
共用レンタルサーバー「エックスサーバー」では、
自動インストール機能を利用して日本語化されたZen Cartが簡単にインストールでき、すぐに利用することができる。
オープンソース徹底活用 Zen Cartによるオンラインショップ構築・運用テクニック
秀和システム 著者:Zen‐Cart.JP(Zen Cart日本語化プロジェクト) 価格:2,940円 評価:★★★★★
- 役にたちます。 ★★★★★
- うーん、立ち読み程度でいいかなというところ ★★
- 残念な一冊 ★
- 日々掲示板でサポートしているメンバーによって書かれた本。 ★★★★★
powered by
amalink
オンラインショップの商品が注文された際に顧客に注文内容の確認メールを送信したり、掲示板にコメントが書き込まれた際に管理人宛てに通知メールを送信したりするには、フォームで入力された項目の内容を
CGIからメー...
オンラインショップの商品が注文された際に顧客に注文内容の確認メールを送信したり、掲示板にコメントが書き込まれた際に管理人宛てに通知メールを送信したりするには、フォームで入力された項目の内容を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)も行っていますので、よろしければご活用ください。
|< 先頭へ < 前へ 1 2 3 4 5 次へ >
アクセスランキング
今日のアクセスランキング(上位10件)
- プリンセスガーデンホテル女性社長の「片岡都美」氏はフジモリ元大統領夫人 (1 PV)
今月のアクセスランキング(上位10件)
- 2NN (2ch News Navigator) (314 PV)
- プリンセスガーデンホテル女性社長の「片岡都美」氏はフジモリ元大統領夫人 (93 PV)
- 小林興起元衆議院議員がタレントの杉本彩さんにキスを迫る (61 PV)
- 2ちゃんねる(2ch)検索 掲示板 - スレタイ、過去ログ、全文検索 (42 PV)
- 読売新聞「石井誠」記者変死事件 (20 PV)
- ログ速(ろぐそく、logsoku) - 過去ログ スレタイ検索 全文検索 (20 PV)
- 5ちゃんねる(5ch.net、旧2ちゃんねる)掲示板 (17 PV)
- PHP、MySQLで動くオープンソース掲示板ソフト (12 PV)
- 掲示板やチャットなどのフリーPHPスクリプトの配布サイト (11 PV)
- 掲示板フリーソフト - 無料で利用できる掲示板CGI (11 PV)
アクセス統計
ディレクトリ
関連サイト