CGIPerl入力チェック

このエントリーをはてなブックマークに追加
1nobodyさん:02/07/06 01:56 ID:epfJvWRu
何作るにもだいたい必要だが地味にめんどくさい。
日本語対応の便利な汎用入力チェックモジュール
(まずPerl)を作ろうyo。
2 :02/07/06 02:02 ID:???
お前、まず自分で作ってからとは思わんのか?
もっともらしいこと書きやがって、このクレクレ野郎がっ!
3nobodyさん:02/07/06 02:03 ID:???
Jcode.pm
4nobodyさん:02/07/06 02:17 ID:/HxIldBO
まぁ、1の言うことが分からなくもない。
文字数チェックとかだるいもんな。
5nobodyさん:02/07/06 04:49 ID:???
>>2
おまえはどのスレでもそうやって、同じ煽りいれてんだな
わからなかったらほっとくのが普通なんだよ。
厨房のおまえは板的に必要ないよ。
カマッテ君が!
6nobodyさん:02/07/06 05:35 ID:???
cgi-lib.pl
CGI.pm
7nobodyさん:02/07/06 07:06 ID:???
>>1はCPANを知っているのか?
8nobodyさん:02/07/06 07:23 ID:???
>>2
こいつは、このスレの 71 じゃないのか?(藁

http://pc.2ch.net/test/read.cgi/php/1024741312/71-
91:02/07/06 13:49 ID:epfJvWRu
>3
jcode.plでよくない?

>6
use CGI ':all';#楽

>7
cpanにこんなモジュールあるかな?
Excel作りたいとか画像いじりたいとかは検索できるけど
何処みたらいいのかわからんのです。

今やってる方法でここのフォーム入力チェック
するとしたらこんな感じ

my @ParamConf=(
{name=>'name', notnull=>1, length=>128, disp=>'名前'},
{name=>'mail', notnull=>0, length=>256, code=>\&chk_mail, disp=>'E-mail'},
{name=>'msg', notnull=>1, length=>3000, disp=>'メッセージ'}
);

こんなハッシュの配列作ってループでname(input name=xxxと同じ)をチェックしてひっかかればdispを使って
「名前 が未記入です」とか日本語エラーメッセージを吐いてやる。

メアドとか正規表現でチェックしたいのはコード参照付けといて専用のサブルーチンにわたしてチェックさせる。
でも、これだとメールアドレスを確認用にもう一度入力など
複数のパラメータを見てエラー判定する場合は使えなくて
その場しのぎのif文付け足して対応してる現状です。
10nobodyさん:02/07/08 23:21 ID:???
age
11nobodyさん:02/07/08 23:34 ID:???
121:02/07/09 02:38 ID:???
>>11
ありがとう StringとかCGIの下を探しまくればよかったのね
Checkerとか
だいぶ参考になりました。
とりあえずString::Checkerは利用するか
ほしいとこだけ盗みます。

他のパラメータでエラー条件が変わるとか配列のvalue(チェックボックスとか)はできないっぽい?けどそのへんもうすこし読んでみるyo
こんな方法でやってるけどどーよとかあれば教えてほしいっす。
13nobodyさん:02/11/13 15:51 ID:6XVK1nob
14nobodyさん:02/11/13 18:33 ID:???
よく「サーバにモジュールがインスコされていないので使えません」とか言う香具師
がいるけどさ、perlのモジュールなんて多くは単なるテキストなんだから、ホームに
コピーしてuse libすれよゴルァ、と思うんですがどうでっしゃろ。
15sage:02/11/13 19:31 ID:6wplGlzP
~/.cpanにある設定ファイルでインストール先を自分のhome配下に指定して
CPANからいただく。そしてuse lib。
telnetやらでloginできなきゃいけないがの。
16nobodyさん:02/11/13 19:33 ID:???
やっちまった。逝きます。
17nobodyさん:02/11/14 05:47 ID:???
BEGIN{ push @INC, './lib'}
BEGIN{ unshift @INC, './lib'}
のが好き
18nobodyさん:02/11/24 23:41 ID:nYY6oDGd
結構めんどくさい部分ではあるから
みんなで考えるのもいいかもしれない。
個人的には9のやり方をもう少し煮詰めて
モジュール化できたらいいなーとか思った。
19nobodyさん:02/11/25 15:05 ID:???
まとまりなく終了
20nobodyさん:02/11/29 11:20 ID:qCZWTQlc
↑勝手に終わらせるなボケ
211:02/11/30 15:26 ID:3PGwc+wR
>>18
まだよくみてないけど13のCGI::Validateがそれっぽいのでは
22nobodyさん:02/12/03 02:37 ID:yNGrdCEK
例えばtelnetの使えないレンタルサーバーの場合に、
pure perlならモジュールをFTPでアップして
「use lib」とかすればいいと思うけど、
結構大きなモジュールの場合(例えばDBIとか)
落としてきたtar.gzの中身はファイルやフォルダが
いっぱいあってどれをどのようにUPすれば分からないんだけど。
23nobodyさん:02/12/04 08:29 ID:obM+TZZG
README.txtに書いてあるはずだが。
24nobodyさん:02/12/04 18:38 ID:???
すんません PerlMagickのモジュールを
FreeBSDのサーバで使いたいんですが
ユーザー権限でのみ作業すると
具体的にはどのようにやればいいんでしょうか?
25nobodyさん:02/12/04 22:42 ID:???
>>24
管理人さんに頼んでImage::Magickをインストールしてもらう。

これが一番確実。
26nobodyさん:02/12/06 06:29 ID:oIFfImYM
>>13

しかし、何時見ても Perl のソースは読みづらい&使いづらいな。
27nobodyさん:02/12/06 07:33 ID:???
>>26
それはperlが悪いわけではなく、プログラマの問題ではござらぬか。
28nobodyさん:02/12/07 00:30 ID:???
CGI::Validateつかいづら

29nobodyさん:02/12/07 03:52 ID:NfROD7dM
print "hogehoge";
  ・
  ・
  ・
print "hogehoge";

うざっ
30nobodyさん:02/12/07 13:29 ID:???
CGI::Validateのサンプル眺めてると、
使わない方がよほどスッキリ書ける気がするのですが電波でしょうか?
31nobodyさん:02/12/07 17:31 ID:???
こう書けるの

use CGI ':all';
my %p = map{$_ => [param($_)]}param();
my @error = param_check(
[
 {name=>'name', notnull=>1, length=>128, disp=>'名前'},
 {name=>'mail', notnull=>0, length=>256, code=>\&chk_mail, disp=>'E-mail'},
 {name=>'msg', notnull=>1, length=>3000, disp=>'メッセージ'}
],
\%p
);
error(@error) if @error;

つくろう。
32nobodyさん:02/12/08 10:43 ID:???
>my %p = map{$_ => [param($_)]}param()

ReadParse使おうよ。
あ、untiedな配列に入れ直すのが味噌か。

3311=13=33:02/12/21 20:48 ID:lsUxGFk4
Data::CGIForm
http://search.cpan.org/dist/Data-CGIForm/

なかなかコレというものがないものですね
34nobodyさん:03/11/19 10:16 ID:???
35ウキグリバの戦士:2005/04/03(日) 01:57:03 ID:???
ぬるぽ
36ウキグリバの戦士:2005/04/03(日) 02:05:44 ID:???
↑これでラストだ!おめでとう!
37nobodyさん:2005/05/16(月) 16:21:55 ID:???
>>35
ガッ

# このスレまだあったんだな・・・。
38nobodyさん:2006/03/17(金) 01:24:09 ID:???
.
39nobodyさん:2006/06/25(日) 23:32:13 ID:ApY7Mi3z
ぬぽる
40nobodyさん:2006/06/26(月) 04:47:56 ID:???
41nobodyさん:2008/08/21(木) 11:31:34 ID:jfZH+CbL
>>31のハッシュに、正規表現を追加したらどうだろうか?

regex => qr/[0-9a-zA-Z]{6,}/
42nobodyさん:2008/08/21(木) 13:36:07 ID:???
>>41
小学校分の亀レス乙。
43電脳プリオン:2011/12/11(日) 22:26:19.67 ID:??? BE:354732375-2BP(1960)
Perlの次は?
44nobodyさん
      _
      |O\
      |   \ キリキリ
    ∧|∧   \ キリキリ
ググゥ>(;⌒ヽ    \
    ∪  |     (~)
     ∪∪   γ´⌒`ヽ
     ) )    {i:i:i:i:i:i:i:i:}
     ( (    ( ´・ω・)、
           (O ⌒ )O
            ⊂_)∪