2007年6月アーカイブ
こんにちは,五十嵐です. 『美少女戦麗舞(セレブ)パンシャーヌ』 が終わっちゃいました.実はまだ最終回を見てません.それにしても短かった.1 クールです.
「クール」 というのは元々ドイツ語で Kur だそうです.一年が 52 週間ですから,その四分の一,三ヶ月=13週間という単位のようです.最近のドラマは 13 回もなくて,10回そこそこで終わらせるものが多いようです.しかし,パンシャーヌの場合はどうでしょうね.
この手の特撮系番組の場合,スポンサーの商品が売れることが大切ですので,子供たちの目を釘付けにして親にねだらせるようにするわけですが,パンシャーヌを見ていたお子様はほとんどいなかったのではないかと...美少女とかいいながらとうが立った奥様でしたし,途中から投入したパンシャーヌミニはあまりにも幼女すぎたし...いわゆる 「打ち切られた」 というやつでしょうね.
アニメなどで人気が出ずに半年で打ち切り,というのはよく聞く話ですが,1 クールとなるとなかなか思いあたるものがありません.
それにしても三ヶ月というのは長いようで短く,短いようで長い.見通せるような気がしていても打ち切りのような羽目になってしまうとは,考えさせられるものがあります. 1 クール後に私が何をしているのか,その先を続けられるのか,ちゃんと見通せていません.打ち切られないように,新しいアイディアを捻出せねば...と,意気込みだけは見せておきましょう(笑)
"TGIF" とは,"Thank God, It's Friday!" の略.「花の金曜日」略して「花金」(笑) 毎週金曜恒例のお遊び/オタクモードです.
追伸:このブログ記事の ID が 1701 番でした.1701 といえば,かの 『宇宙大作戦』,『スタートレック』 のエンタープライズ (USS Enterprise) 号の番号 (NCC-1701) です.ちょっとうれしい.
(ねらってたわけじゃないよ
)
【2008/05/12 追記】
新しいブログに移行したので、番号が1701ではなくなってしまいました。しょぼん...
いかちょー (2007-06-29 23:32) | コメント(0)| トラックバック(10)
こんにちは,五十嵐です.Secure-SBM のアイコンに使える画像のコントリビューションを募集中です.
![]()
私が作ると,こんなのしかできません.なんとかして,もうちょっときれいな,あるいは可愛らしいアイコンを使いたいのですけれど...

Gimp で定規を使って線を引くとかできないんでしょうか.使いこなせてないというのが原因の一つではあるんですが...
使いこなせてもセンスないし...
追加 ・ 編集
・ 削除
・ 実行
・ キャンセル
・ コメント入力
辺りがそろうだけでも見栄えが変わると思ってます.だれか,助けてちょうだい.
上のように 64x64 くらいで作って,16x16 の大きさで使いたいのです.
チケットにファイル添付していただけるとうれしいんですけど.
http://dev.tyzoh.jp/trac/secure-sbm/ticket/17
tPod の命名じゃありませんが,採用された方には,GAINAX からいただいた,アニメ「天元突破グレンラガン」の非売品ドリル型消しゴム(首から提げるための穴もついてるぞ!)を差し上げます!
(センスのいい)ちっちゃい画像求む!の続きを読む
いかちょー (2007-06-28 17:37) | コメント(0)| トラックバック(13)
sub registbookmark : Path('/registbookmark') {
my ( $self, $c ) = @_;
my %data;
my $uid = $c->stash->{user}->user_id;
my $bookmark_exist = 0;
my $bdb;
# URL から直接ブックマークの場合
if( $c->req->method eq 'GET' ){
$c->stash->{template} = 'personal/getregistbookmark.tt';
}
foreach my $k (qw/
bookmark_title
bookmark_url
bookmark_tags
bookmark_comment
/
){
$data{$k} = Jcode::jcode($c->req->param($k))->utf8;
} # URL の確認
if( $data{bookmark_url} eq '' ){
$c->flash->{resultmessage} = 'URL が入力されていません';
$c->res->redirect('/personal');
return 1;
} my $url = $data{bookmark_url};
# Bookmark の既存確認
if( $bdb = $c->model('SecureSBMDB::Bookmark')->
find( {bookmark_uri => $url} )
){
if( my $ubdb = $c->model('SecureSBMDB::UserBookmark')->
find( {user_id => $uid, bookmark_id => $bdb->bookmark_id} )
){
$c->flash->{resultmessage} = $url . ' は既に登録されています.';
$c->res->redirect('/personal');
return 1;
}
$bookmark_exist = 1;
}stash の代わりに flash を使用してリダイレクトしています.ブックマークが存在していても他人が登録したものの場合には,関連づけを行うために $bookmark_exist = 1 を設定しておきます.
いかちょー (2007-06-27 14:53) | コメント(0)| トラックバック(19)
Converts the characters '<', '>', '&' and '"' to '<', '>', '&', and '"' respectively, protecting them from being interpreted as representing HTML tags or entities.
@@ -70,7 +70,7 @@
<tr><td><button id="editrole_button[% role_v.role_id %]">
編集</button></td>
<td><button id="deleterole_button[% role_v.role_id %]">
削除</button></td>
<td align="right">[% role_v.role_id %]</td>
- <td>[% role_v.role_name %]</td>
+ <td>[% role_v.role_name | html %]</td>
</tr>
<tr>Keyword: Perl Catalyst Secure-SBM SSBM セキュア・ソーシャル・ブックマーク
いかちょー (2007-06-26 05:20) | コメント(0)| トラックバック(3)
Secure-SBM とは,"Secure Social BookMark" の略です.「ソーシャルブックマーク」は,ホームページをブックマークして,それを他人と共有しようというものです.Secure-SBM はさらにそれを一歩進めて,ブックマークをグループ分けして,共有する人と共有しない人を明確にわけようというものです.セキュア・ソーシャル・ブックマークは,アクセス制御に焦点を当てたソーシャル・ブックマークです.ソーシャル・ブックマークはブックマークを共有するシステムですが,企業内などで使用する場合には,参照するユーザによって見えるブックマークの範囲を限定する必要があります.Secure-SBM は企業の組織などで使用することを前提としています.
必要な機能を思いつくままに列挙してみましょう.まず,個人レベルから.
* URL が簡単に入力できる.
* ブックマークのタイトルが簡単に入力でき,編集できる.
* ブックマークに個人でコメントがつけられ,編集できる.
* ブックマークを個人が分類できる(ラベルなどの機能).
* 過去のブックマークを検索できる.
* ブックマークした日時がわかる.
* とりあえずブックマークしたものか,価値あるものとしてブックマークしたものかわかる.
次に,共有の観点から.
* ブックマークされている数がわかる.
* 他人のコメントが読める.
* 共有の分類ができる.
* 他人のブックマークの日時がわかる.
* ブックマークの増加傾向がわかる.
* 他の複数人とブックマークが共有できる.
最後に,秘密区分(セキュリティ)の観点から.
* 見る権限があるものが見れる.
* 見る権限のないものが見れない.
* ブックマークの公開レベルを強制的に設定できる.
* ブックマークの公開レベルをユーザが許された範囲で設定できる.
これらの未実装部分は,今後の作業に入れていく予定です.ただし,「共有の分類ができる」については,実装しない可能性があります.「とりあえずブックマークしたものか,価値あるものとしてブックマークしたものかわかる」については,タグ付けによって自分で分類できると解釈しています.
インストールができない,動作の不具合,要望等がありましたら,お気軽にチケットを登録してください.上に列挙した「共有の分類ができる」以外の 3 件はチケットに登録済みです.チケットにはいろいろなフィールドがありますが,わからなければ,そのままにしておいて入力してください.適宜修正します.
現在予定されている作業項目は, 「未解決チケット(マイルストーン別)」 で管理しています.
いかちょー (2007-06-25 09:03) | コメント(0)| トラックバック(0)
いかちょー (2007-06-22 23:59) | コメント(0)| トラックバック(8)
-Log
Specifies log level.
use Catalyst qw/
-Log=info
... foreach (@arguments) {
if (/^-Debug$/) {
$flags->{log} =
( $flags->{log} ) ? 'debug,' . $flags->{log} : 'debug';
}
elsif (/^-(\w+)=?(.*)$/) {
$flags->{ lc $1 } = $2;
}
else {
push @{ $flags->{plugins} }, $_;
}
}
... 略 ...
$class->setup_log( delete $flags->{log} );sub setup_log {
my ( $class, $debug ) = @_;
unless ( $class->log ) {
$class->log( Catalyst::Log->new );
}
my $app_flag = Catalyst::Utils::class2env($class) . '_DEBUG';
if (
( defined( $ENV{CATALYST_DEBUG} ) || defined( $ENV{$app_flag} ) )
? ( $ENV{CATALYST_DEBUG} || $ENV{$app_flag} )
: $debug
)
{
no strict 'refs';
*{"$class\::debug"} = sub { 1 };
$class->log->debug('Debug messages enabled');
}
}+if( ! defined $ENV{CATALYST_DEBUG} ){
+ $ENV{CATALYST_DEBUG} = 0;
+}
+
__PACKAGE__->setup;
+if( $ENV{CATALYST_DEBUG} == 0 ){
+ __PACKAGE__->log->disable('debug');
+}
+これで,script/myapp_server.pl を -d オプションなしで実行すれば,デバッグメッセージは出なくなります.-d オプションを付けるか,環境変数で CATALYST_DEBUG=1 とやれば,デバッグメッセージが出力されます.でも,なんとなくかっこ悪い...
もっとスマートな方法がきっとあるはずですよね.教えて Catalyst の偉いひと!
いかちょー (2007-06-22 21:47) | コメント(0)| トラックバック(8)
こんにちは,五十嵐です.ソーシャル・ブックマークの心臓部分,ブックマークの登録部分を作っていきます.
ブックマークを登録する際には URL の他にタイトルを取得できると便利です.もちろん,タイトルが適切に付いていないページもありますので,自分で編集できることも条件になります.表示しているページをボタンひとつでブックマークできれば便利ですが,それは段階を追って,いずれ作ることにして,ここでは手で URL を入力して,そのページのタイトルを取得し,必要があればタイトルを編集した後,登録するという手順で作業できるようにします.これらが /personal のページで操作可能とします.
右図のように DHTML と非同期通信を使用した Ajax で,ページの切り替えをおこなわなくて済むようにデザインします.
いかちょー (2007-06-20 15:24) | コメント(0)| トラックバック(0)
こんにちは,五十嵐です.javascript で動的に作成された変数が定義されているかどうかを確認したいんですが...
<script type="text/javascript">
<!--
for( num = 0; num < 4; num++ ){
eval("var a_" + num + " = new Array(1,2,3,4);");
document.write( 'a_' + num + ': ' + eval('a_' + num) + "<br />" );
eval('delete a_' + num);
try{
eval("var tmp = a_" + num);
}catch(e){
document.write( "a_" + num + " Error: " + e + "<br />" );
eval("var a_" + num + " = new Array(11,12,13,14);");
}
document.write( 'a_' + num + ': ' + eval('a_' + num) + "<br /><br />" );
}
// -->
</script>こんな感じでしょうか.try-catch だと大仰な気がするんですが,もうちょっとお手軽な方法がないでしょうか.いい方法があったら教えてください.>> javascript の人
実行結果:
【追記 2007/06/20】
"window.hasOwnProperty" というのがあるのですね.知りませんでした.勉強不足がバレバレ...
<script type="text/javascript">
<!--
function _isDefined( obj ){
if( window.hasOwnProperty( obj ) ){
return true;
}
return false;
}
for( num = 4; num < 8; num++ ){
eval("var a_" + num + " = new Array(1,2,3,4);");
if( _isDefined( "a_" + num ) ){
document.write( 'a_' + num + ': ' + eval('a_' + num) + "<br />" );
}
eval('delete a_' + num);
if( ! _isDefined( "a_" + num ) ){
document.write( "a_" + num + " is NOT defined.<br />" );
eval("var a_" + num + " = new Array(11,12,13,14);");
}
document.write( 'a_' + num + ': ' + eval('a_' + num) + "<br /><br />" );
}
// -->
</script>実行結果:
こっちの方が好みかも.
<script type="text/javascript">
<!--
function _isDefined2( obj ){
if( obj in window ){
return true;
}
return false;
}
for( num = 8; num < 12; num++ ){
eval("var a_" + num + " = new Array(1,2,3,4);");
if( _isDefined2( "a_" + num ) ){
document.write( 'a_' + num + ': ' + eval('a_' + num) + "<br />" );
}
eval('delete a_' + num);
if( ! _isDefined2( "a_" + num ) ){
document.write( "a_" + num + " is NOT defined.<br />" );
eval("var a_" + num + " = new Array(11,12,13,14);");
}
document.write( 'a_' + num + ': ' + eval('a_' + num) + "<br /><br />" );
}
// -->
</script>実行結果:
いかちょー (2007-06-19 23:50) | コメント(0)| トラックバック(39)
sub auto : Private {
my ( $self, $c ) = @_;
if( $c->user_exists ){
if( $c->user eq 'admin' ){
return 1;
}else{
$c->res->redirect($c->uri_for('/personal'));
return 0;
}
}
$c->res->redirect($c->uri_for('/'));
return 0;
}@@ -42,7 +42,7 @@
if( $loginname eq 'admin' ){
$c->res->redirect($c->uri_for('/admin'));
}else{
- $c->res->redirect($c->uri_for('/'));
+ $c->res->redirect($c->uri_for('/personal'));
}
return;
} else {いかちょー (2007-06-18 13:14) | コメント(0)| トラックバック(6)
いかちょー (2007-06-15 15:02) | コメント(0)| トラックバック(1)
$ perl -MDigest::SHA -e 'print Digest::SHA::sha1_hex("admin"), "\n"'
d033e22ae348aeb5660fc2140aec35850c4da997
$ $ ./script/securesbm_server.pl -r
...(省略)
File(s) "...(省略)/Controller/Admin.pm" modified, restarting
...(省略)
ついでに,環境変数 DBIC_TRACE=1 を設定しておくと,DBIC から発行された SQL を見ることができます.
ここで Catalyst の "Action" について少し書いておきます.
ビルトインアクションと呼ばれるものが 5 つあります.default, index, begin, end, auto.これらの動きを理解しておくと,Catalyst の動作を使って,色々な実行をさせることができます.
[Secure-SBM:013] ひと休みの続きを読む
いかちょー (2007-06-14 17:31) | コメント(0)| トラックバック(18)
@@ -16,6 +16,14 @@
Charsets::Japanese
StackTrace
+
+ Authentication
+ Authentication::Store::DBIC
+ Authentication::Credential::Password
+
+ Session
+ Session::Store::FastMmap
+ Session::State::Cookie
/;
use Digest::SHA;authentication:
dbic:
user_class: SecureSBMDB::User
user_field: user_email
password_field: user_password
password_type: hashed
password_hash_type: SHA-1何度も繰り返しますが,.yml のファイルはタブコードを使用せずに,空白でインデントを付けてください.この設定は前に設定した Plugin のためのものです.各フィールドの意味は次の通り.
[Secure-SBM:012] いよいよ認証の続きを読む
いかちょー (2007-06-12 09:36) | コメント(0)| トラックバック(0)
他に何が必要でしたっけ...なんか,順番も大切だったような...
検索したらすぐに出てきそうですけど,完全に他力本願.
daemon の書き方を忘れてしまいましたの続きを読む
いかちょー (2007-06-11 13:18) | コメント(0)| トラックバック(0)
Scuttle のコードとか覗いてみたいんですが,パクったってことになるとイヤですから,ねぇ...
いかちょー (2007-06-09 17:16) | コメント(0)| トラックバック(35)
こんにちは,五十嵐です.円谷プロからのメールマガジンで何の脈絡もなく「今年は桃が熱い。」というタイトル.これは暗に桃太郎をモチーフにした仮面ライダー電王がいいぞ,ってことだと思ってますが...仮面ライダー電王は円谷ではなくて東映です(笑)
こういうのは比較広告じゃなくて,何というのでしょうね.他社の方を持ち上げてるわけですから,非難も出ないでしょうし.なんかいい感じ.
比較広告と言えば 「マック」 と 「パソコン」 の CM は面白いですね.ここまでやってもいいのか,と心配してしまうくらいの敵愾心むき出し.欧米の文化の流れでしょうか.完全にホームユースをターゲットにしているので,サーバー関連の話は出てきませんが,そこんところも考えないとね.
少し前には,「パソコン」 の方がフリーズしやすいとか,ウィルスにかかりやすいとかいう比較もしてました.でもねぇ,いくらなんでも最近の「パソコン」で固まってしまって,リブートしないとにっちもさっちもいかないという状況は全く経験していません.家でも仕事でも.もっとヘビーに使うホームユーザだと違うのかなぁ.OS が古ければそういうこともあるでしょうけれども...
ウィルスに関しては 「マック」 も 「パソコン」 も似たようなもんでしょう.むしろ, 「マック」 の方がウィルス対策の選択肢が少ないのではないかと心配になります.余計なお世話?
私はマックを全く触ったことがないので DTP にすぐれているという噂しか知りません.作家の方は歴史的な経緯で 「マック」 ユーザが多いそうですが.この比較広告を見ただけで食指が動くかというと...率直なところ,やりすぎていて,眉唾な感じがしてしまいます.
みなさんはどうですか?
"TGIF" とは,"Thank God, It's Friday!" の略.「花の金曜日」略して「花金」(笑) 毎週金曜恒例のお遊び/オタクモードです.
P.S. 今晩は 「帰ってきた時効警察」 の最終回.お見逃しなく!
いかちょー (2007-06-08 20:13) | コメント(0)| トラックバック(7)
こんにちは,五十嵐です.昨日の javascript カレンダーがけっこうウケたみたいなので,調子に乗って,Ajax 風に作ってみました.本当は Ajax でもなんでもなくて,単に DOM を操作しているだけなんですが...
"<<" や ">>" をクリックしてみてください.
日付の数字には,その日に書かれたこの Tyzoh ブログへのリンクを作成してみました.ただし,ブログが書かれていないかどうかは検査していませんので,ブログのない日もあります.このリンクは全然 Ajax 風ではありません(笑)
<div id="calendar"></div>
<script type="text/javascript">
<!--
function getDayOfTheWeek(year, month, day) {
if( month < 3 ){
month += 12;
year--;
}
return (
year
+ Math.floor( year / 4 )
- Math.floor( year / 100 )
+ Math.floor( year / 400 )
+ Math.floor( (13 * month + 8) / 5 ) + day
) % 7;
}
function make_calendar( year, month, curyear, curmonth ){
var days = new Array(31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31);
if( (((year % 4) == 0)&&((year % 100) != 0)) || ((year % 400) == 0) ){
days[1]=29;
}
var startday = getDayOfTheWeek(year, month, 1);
var lastday = days[month-1];
var lastmonth = month - 1;
var nextmonth = month + 1;
var lastyear = year;
var nextyear = year;
if( lastmonth == 0 ){
lastmonth = 12;
lastyear--;
}
if ( nextmonth == 13 ) {
nextmonth = 1;
nextyear++;
}
if( month < 10 ){
smonth = "0" + month;
}else{
smonth = "" + month;
}
var calhtml = "";
calhtml += "<table align=\"center\">";
calhtml += "<tr><td>";
calhtml += "<span onmouseover=\"style.cursor='pointer';\" "
+ "onclick=\"rewriteCal("
+ lastyear + "," + lastmonth + ","
+ curyear + "," + curmonth + ")\">"
+ "<<</span></td>";
calhtml += "<td colspan=\"5\" align=\"center\">"
+ "<a href=\"archive.php?date="
+ year + smonth + "\" target=\"_blank\">"
+ year + " 年 " + month + " 月</td>";
calhtml += "<td>"
calhtml += "<span onmouseover=\"style.cursor='pointer';\" "
+ "onclick=\"rewriteCal("
+ nextyear + "," + nextmonth + ","
+ curyear + "," + curmonth + ")\">"
+ ">></span></td></tr>";
calhtml += "<tr><td>日</td><td>月</td><td>火</td><td>水</td>";
calhtml += "<td>木</td><td>金</td><td>土</td></tr>";
var cols = 0;
if( startday != 0 ){
calhtml += "<tr>";
for( cols = 0; cols < startday; cols++ ){
calhtml += "<td> </td>";
}
}
for( day = 1; day <= lastday; day++ ){
if( cols == 0 ){
calhtml += "<tr>";
}
if( day < 10 ){
sday = "0" + day;
}else{
sday = "" + day;
}
calhtml += "<td align=\"right\">"
+ "<a href=\"index.php?date="
+ year + smonth + sday + "\" target=\"_blank\">"
+ day + "</a></td>";
cols++;
if( cols >= 7 ){
calhtml += "</tr>";
if( day < lastday ){
cols = 0;
}
}
}
for( i = cols; i < 7; i++){
calhtml += "<td> </td>";
}
calhtml += "</tr>";
calhtml += "<tr><td colspan=\"7\" align=\"right\">";
calhtml += "<span onmouseover=\"style.cursor='pointer';\" "
+ "onclick=\"rewriteCal("
+ curyear + "," + curmonth + ","
+ curyear + "," + curmonth + ")\">"
+ "今月へ</span></td></tr>";
calhtml += "</table>";
return calhtml;
}
function _getElementById( id ) {
var elem;
if( document.getElementById ){ // for NS, IE>=5
elem = document.getElementById( id );
}else if( document.all ){ // for IE < 5
elem = document.all( id );
}else{
elem = null;
}
return elem;
} // end of _getElementById()
function rewriteCal(year,month,curyear,curmonth){
var cal = make_calendar( year, month, curyear, curmonth );
_getElementById("calendar").innerHTML = cal;
}
var today = new Date();
var curyear = today.getFullYear();
var curmonth = today.getMonth() + 1;
rewriteCal(2007,6,curyear,curmonth);
// -->
</script>【追記】
ブログを連続して表示した場合に,昨日のブログ内に記述した javascript と衝突が起こり,正しく動作しない場合がありました.単独で使用する場合にはソースとして表示している javascript で問題ありませんが,このブログでは不都合なため,実際のコードは関数名などを変更して回避しています.
いかちょー (2007-06-08 17:02) | コメント(0)| トラックバック(20)
Zellerの公式
0 が日曜とすると,与えられた「年」「月」「日」の曜日は
(年 + 年/4 - 年/100 + 年/400 + (13*月+8)/5 + 日) % 7
となる.
(ただし 1月,2月は前年の13月,14月として計算する)だそうです.これを使って,今月のカレンダーを javascript で表示.
ソース:
<script type="text/javascript">
<!--
function getDayOfTheWeek(year, month, day) {
if( month < 3 ){
month += 12;
year--;
}
return (
year
+ Math.floor( year / 4 )
- Math.floor( year / 100 )
+ Math.floor( year / 400 )
+ Math.floor( (13 * month + 8) / 5 ) + day
) % 7;
}
function make_calendar( year, month, curyear, curmonth ){
var days = new Array(31, 28, 31, 30, 31, 30, 31, 31, 30,31, 30, 31);
if( (((year % 4) == 0)&&((year % 100) != 0)) || ((year % 400) == 0) ){
days[1]=29;
}
var startday = getDayOfTheWeek(year, month, 1);
var lastday = days[month-1];
var calhtml = "";
calhtml += "<table align=\"center\">";
calhtml += "<tr><td>日</td><td>月</td><td>火</td><td>水</td>";
calhtml += "<td>木</td><td>金</td><td>土</td></tr>";
var cols = 0;
if( startday != 0 ){
calhtml += "<tr>";
for( cols = 0; cols < startday; cols++ ){
calhtml += "<td> </td>";
}
}
for( day = 1; day <= lastday; day++ ){
if( cols == 0 ){
calhtml += "<tr>";
}
calhtml += "<td align=\"right\">" + day + "</td>";
cols++;
if( cols >= 7 ){
calhtml += "</tr>";
if( day < lastday ){
cols = 0;
}
}
}
for( i = cols; i < 7; i++){
calhtml += "<td> </td>";
}
calhtml += "</tr></table>";
return calhtml;
}
var today = new Date();
document.write( today.getFullYear() + "年" + (today.getMonth() + 1) + "月<br />" )
var cal = make_calendar( today.getFullYear(), today.getMonth() + 1, 0, 0 );
document.write( cal );
// -->
</script>これを使って,リンクを張れば,日付指定の処理なんかが出来そうですね.というか,このブログの右上のメニューでカレンダーとリンクの組み合わせで使われてますけど...
Secure-SBM でもサーバサイドの Perl バージョンで使おうと思ってます.
追伸.
「 Ajax 風カレンダー」 も作ってみました → こちら
いかちょー (2007-06-07 15:13) | コメント(0)| トラックバック(19)

sub is_deletableuser : Private {
my( $c, $user_id ) = @_;
if( $user_id eq '1' ){ # for admin
return '';
} if( my $udb = $c->model('SecureSBMDB::User')
->find({user_id => $user_id}) ){
my $udbname = $udb->user_email;
if( $udbname eq '' || $udbname eq 'admin' ){
return '';
}else{
return $udb;
}
} return '';
}データベースの検索でエラーが出れば,空文字を返します.
いかちょー (2007-06-06 16:26) | コメント(0)| トラックバック(4)
いかちょー (2007-06-04 23:52) | コメント(0)| トラックバック(56)
いかちょー (2007-06-01 20:46) | コメント(0)| トラックバック(9)
月別アーカイブ
Copyright (C) 2004-2010 Nihon Unisys, Ltd. All Rights Reserved.
Powered by Movable Type Open Source