テーマ:perl

Perl 掲示板作成の練習(10)

画像処理は一先ず保留にしました。代わりに表示する記事数を決めて、次へのボタンを追加する形にします。 参考:1頁の記事表示数を指定! http://www.komonet.jp/perl/script/chap7.htm ここの条件式を使わせて頂き、自分の掲示板に合うように修正します。 ■ソース # 記事…
トラックバック:0
コメント:0

続きを読むread more

perlモジュールを追加したかった

しばらくperlについて記事を書いてなかったのは、perlモジュールで悪戦苦闘してたからです(^_^;) XAMPPのPerlは5.16.3ですが不完全な内容です。 モジュールである“Image::Magick”を入れたかったのですが、Windows版はバイナリによる提供しか現在はありません。 参考:ImageMagi…
トラックバック:0
コメント:0

続きを読むread more

Perl 掲示板作成の練習(9)

ある程度掲示板が形になったところで、セキュリティについて考慮していきます。 掲示板は「ログを開き、記事を書き込み、閉じる」という動作をopen()文で行ってきました。 以前「Perl ファイルハンドルについて(いろいろ)」という記事をエントリした時、パイプ処理について触れました。 これは、あるデータを別のプログラム(例…
トラックバック:0
コメント:0

続きを読むread more

Perl 掲示板作成の練習(8)

Perlの学習で、主に参考にさせて頂いた「Perl/CGI研究室 'PERL-LABO'」 http://www.perl-labo.org/ の中で、「フォームデータのデコード」という項目 http://www.perl-labo.org/formdata/decode/ があります。 今まで“getformda…
トラックバック:0
コメント:0

続きを読むread more

Perl 掲示板作成の練習(7)

掲示板を作成しつつ色々修正を加えてきましたが、ログデータを読み込んで表示する部分は、あまり気にせずスルーしてしまいました。 なぜ今ごろ気になったかと言うと“boad2.cgi”というのが一覧表示のCGIなのですが、ブラウザの読み込み中状態が終わらないことが判明したからです。 ここで変遷をみていきます。 参考:ループ処理…
トラックバック:0
コメント:0

続きを読むread more

Perl 掲示板作成の練習(6)画像編その4

前回の続き。 アップしたいファイルが日本語(2バイト)だったら、サーバーに保存した場合は文字化けします。 ただし、CGIモジュールで受け取ったパラメータではちゃんと日本語が表示されることが分りました。 なので、文字化けしたファイルとリンク作成したhtmlソース上の名前が一致しないのです。 そこで、新規投稿時の画像ファイル…
トラックバック:0
コメント:0

続きを読むread more

Perl 掲示板作成の練習(6)画像編その3

前回の続き。 今度は、記事を削除したら画像ファイルも消去するようスクリプトを修正しました。 ■admin_del_img.cgiのソース # 該当ログの画像ファイル名を検索 my $logline = $data{"$in{selected}"}; $logline=~ /<img src="$savep…
トラックバック:0
コメント:0

続きを読むread more

Perl 掲示板作成の練習(6)画像編その2

改行及びID番号とログのソートの不具合修正しました。 ■ソースの修正箇所 # メッセージの改行を置換 my $brtag ="<br />"; $message =~s/\r\n|\n|\r/$brtag/g; 現状はXAMPP環境なのでこれで様子をみます。サーバーにアップした場合の挙動は未確認です…
トラックバック:0
コメント:0

続きを読むread more

Perl 掲示板作成の練習(6)画像編

前回の続き。 画像添付して、表示できるようにしました。(1点のみですが) 参考:Search A.I. Perl レッスン>17. ファイルアップロード http://www.searchai.jp/lesson/perl.php?page=17#chap 参考:画像とテキストが混在したフォームの場合 CGI-BBS …
トラックバック:0
コメント:1

続きを読むread more

Perl 掲示板作成の練習(5)その3

前回の続き:さらなる修正をしました。 フォームの内容が空だったら、エラー表示するサブルーチンを追加しましたが、これは不完全でした。 逆に文字列が存在していた場合の処理が書かれていなかったため、ハッシュの中身が反映されなかったようです。 色々悩んだ末に、データが全て揃っていた場合の条件式を書き、“return”することにしま…
トラックバック:0
コメント:0

続きを読むread more

Perl 掲示板作成の練習(5)の2

前回の補足というか追加事項など・・ ■投稿フォーム内容のチェックをする ○もしも空欄で投稿されたら・・ ○アラートを出します Webフォームで内容をチェックする方法でよくあるのは、Javascriptですね。 例えば「すぐに使えるJavaScriptサンプル集」サイト: テキストフィールドの入力を…
トラックバック:0
コメント:1

続きを読むread more

Perl 掲示板作成の練習(5)

前回の続き 参考:Perl/CGI研究室 'PERL-LABO'/クリック回数計測 http://www.perl-labo.org/location/4/ ログファイルの読み込みと書き込み用サブルーチンのライブラリの最後に「ロック」について触れていました。 現実的な「掲示板」は複数で読み書きしたりするため、衝突が起…
トラックバック:0
コメント:0

続きを読むread more

Perl 掲示板作成の練習(4)

前回の続き リストのIDにラジオボタンを用意し、選択して送信すると削除できるような管理フォームを作りました。 既存のフォームに足すことも試しましたが、ソースがごちゃごちゃして検証につまずいてしましました。 そこで、新規投稿とは分離して組み立てました。 参考:Perl/CGI研究室 'PERL-LABO'/クリック回数…
トラックバック:0
コメント:0

続きを読むread more

Perl 掲示板作成の練習(3)

前回の宿題としていた、記事を削除した場合の「ログIDナンバー」の取り扱いについて“admin.cgi”のソースを修正しました。 ■以前のソース部分 # ログの行数を取得(0行なら1とする。そして4桁書式に) my @buffers = <DATAFILE>; my $lines = @buffers; …
トラックバック:0
コメント:0

続きを読むread more

Perl 掲示板作成の練習(2)

前回の続きです。 ■新規投稿画面 名前を「admin_new.cgi」としました。 フォームのソース: # 新規投稿フォーム print <<EOM; <h2>新規投稿</h2> <form action=admin.cgi method=post> &lt…
トラックバック:0
コメント:0

続きを読むread more

Perl 掲示板作成の練習(1)

前回はパスワードで秘密のページを表示するCGIを作ってみました。 今回は、記事一覧を表示させる掲示板を作ります。 新規投稿画面へはパスワード入力を必要とするタイプです。 先ずは、ログを読み込んで表示させるページ(掲示板)作りから進めました。 ソース1 前半部分です。今回新たにHTMLタグのいくつかをライブラリから読…
トラックバック:0
コメント:0

続きを読むread more

Perl パスワードで入室するページを作る

前回に続き「Perl/CGI研究室 'PERL-LABO'」さんのサイトを参考に、自分で作ってみました。 http://www.perl-labo.org/ まだ管理画面などは無く、表示まで。 ■入室用htmlを用意 <form action=login.cgi method=post target=_blan…
トラックバック:0
コメント:0

続きを読むread more

Perl open()関数について・・その後

以前「Perl open()関数について」というタイトルの記事をアップしました。 その中で「※配列を実験したところ、配列は区切りをカンマではなく半角スペースで書き込んでいました。」 ==これではスペースになる=== my @numbers = (23,42,69); print DATAFILE "@numbers\n"…
トラックバック:0
コメント:0

続きを読むread more

Perl open()関数に任意のファイルを開かせる

参考:Perl/CGI研究室 'PERL-LABO':IDでジャンプ(外部ファイル) http://www.perl-labo.org/location/3/ open()関数でファイルを開き読み込ませるためには、 open FILE, "< jumptable.cgi"; という具合に直接ファイルの在りかを指…
トラックバック:0
コメント:0

続きを読むread more

Perl テンプレートのこと

だいぶ前に「CGI.pm」というモジュールに触れたおり、「Template-Toolkit」のことが書いてありました。 https://metacpan.org/pod/CGI::Alternatives#The-Template-File チュートリアル: Template::Tutorial::Web https://m…
トラックバック:0
コメント:0

続きを読むread more

Perl ファイルハンドルについて(いろいろ)

前回は、open()関数で単純にファイルの読み込みと追加の書き込みの方法に触れました。 今回は「標準入力、標準出力」についてから。 ■参考:標準入力、標準出力とは何か? http://www.creatology.jp/unix/outin.html CGIはUNIXサーバーを前提にした操作なので、Windowsサー…
トラックバック:0
コメント:0

続きを読むread more

Perl open()関数について

参考:perlintro -- Perl の概要:ファイルと I/O http://perldoc.jp/docs/perl/5.20.1/perlintro.pod#Files32and32I47O ■記述例:  open(my $in, "<", "input.txt") or die "Can't ope…
トラックバック:0
コメント:0

続きを読むread more

Perl フォーム送信から受け取ったデータ処理:おさらい

実はファイルハンドルについて見てみようと思ったのですが「配列」に触れる折につれ、何故か不安になってきました。 初期の頃は、何の気なしに「そんなもんだ」と分かったつもりで流した部分があるのではないか?きっとあるに違いない。 始めたキッカケは「webフォーム」のカスタマイズで、ちょこっといじれば済んだことを「ちゃんと知りたい」という…
トラックバック:0
コメント:0

続きを読むread more

perl myとlocal(おさらいのはずが)

参考:myとlocalどう違う? http://www.futomi.com/lecture/local/my.html 以前「perlの覚書」という連載で引用した覚えがありますが、おさらい。 ■myの場合: $var = 'サブルーチンの外'; print $var; #「サブルーチンの外」が出力される &ex…
トラックバック:0
コメント:0

続きを読むread more

perl 多次元配列

実はperlに多次元配列はない・・と厳格な表現をされている人もいらっしゃいますが、あたかもそういう振る舞いをするという点で、多次元配列に含めてもよいかと思います。 前回の配列に対する追加や削除において、なんとなく扱っていた「配列のリファレンス」を参照する方法です。 KENTさんのサイト: 3-7. 多次元配列 http:…
トラックバック:0
コメント:0

続きを読むread more

perl:配列のおさらい

■配列のおさらい ソース例: my $host = "太郎"; # 配列(Arrays) my @family = ("花子", "一郎", "次郎", "桃子"); # 追加する @family = ($host, @family); # 1番目と2番目を入れ替え @family[0,1] = @fam…
トラックバック:0
コメント:1

続きを読むread more

perl 時間を知りたい

現在の時間、年齢を知りたい時 参考:localtime time関数が返す形式の時刻 http://itpro.nikkeibp.co.jp/article/Reference/20081008/316441/ プログラミングをやっていると、必ずぶつかる時間の壁ですね。(^_^;) 前回の書き込みに「たぶん使うだろう…
トラックバック:0
コメント:0

続きを読むread more

たぶん使うだろう変数のテンプレート(perl)修正編

前回に少し追加しました。 ソース例1:幾つあるのか知りたい # 配列(Arrays) my @family = ("花子", "一郎", "次郎", "桃子"); # 配列の個数を知る my $num = @family; //変数に「4」が入ります。 以前のソースは$family[1..2]と決め打ちしまし…
トラックバック:0
コメント:0

続きを読むread more

FileZilla FTP Serverを使う

XAMPPでサーバー環境を構築したので、FileZilla FTP Serverを使ってftp接続したいと思います。 本番さながらな気分になれます。 1)FileZilla FTP Serverをアクティブにします。 最初はパスワード要りません。 2)、パスワードを設定します。 3)新規アカウントを…
トラックバック:0
コメント:0

続きを読むread more