まずクラスのチェックとして、与えられた日付(のようなモノ?)に対する出力の一覧です。
基本形 | ||
---|---|---|
from年のみ | 2005 | 2005.1.1〜2005.12.31 |
from年月のみ | 2005.3 | 2005.3.1〜2005.3.31 |
from年月日 | 2005.3.21 | 2005.3.21〜2005.3.21 |
from年月日 + to日のみ | 2005.3.4-21 | 2005.3.4〜2005.3.21 |
from年月日 + to年月のみ | 2005.3.4-2006.4 | 2005.3.4〜2006.4.4 |
from年月日 + to月日のみ | 2005.3.4-10.21 | 2005.3.4〜2005.10.21 |
from年月日 + to年月日 | 2005.3.4-2005.6.21 | 2005.3.4〜2005.6.21 |
不正な値を含むパターン | ||
from年月 | ||
月 | 2005.14 | 2006.2.1〜2006.2.28 |
from年月日 | ||
日 | 2005.3.35 | 2005.4.4〜2005.4.4 |
月 | 2005.14.1 | 2006.2.1〜2006.2.1 |
月日 | 2005.14.35 | 2006.3.7〜2006.3.7 |
from年月日 + to日 | ||
to日 | 2005.3.4-50 | 2005.3.4〜2005.4.19 |
from月 | 2005.14.4-21 | 2006.2.4〜2006.2.21 |
from日 | 2005.3.35-21 | 2005.3.21〜2005.4.4 |
from月日 | 2005.14.35-21 | 2006.2.21〜2006.3.7 |
from月, to日 | 2005.14.21-50 | 2006.2.21〜2006.3.22 |
from日, to日 | 2005.3.35-50 | 2005.4.4〜2005.4.19 |
from月日, to日 | 2005.14.35-50 | 2006.3.7〜2006.3.22 |
from年月日 + to月日 | ||
to日 | 2005.3.4-10.35 | 2005.3.4〜2005.11.4 |
to月 | 2005.3.4-14.20 | 2005.3.4〜2006.2.20 |
to月日 | 2005.3.4-14.35 | 2005.3.4〜2006.3.7 |
from日 | 2005.3.50-10.21 | 2005.4.19〜2005.10.21 |
from日, to日 | 2005.3.50-10.35 | 2005.4.19〜2005.11.4 |
from日, to月 | 2005.3.50-14.20 | 2005.4.19〜2006.2.20 |
from日, to月日 | 2005.3.50-14.35 | 2005.4.19〜2006.3.7 |
from月 | 2005.14.4-10.21 | 2005.10.21〜2006.2.4 |
from月, to日 | 2005.14.4-10.35 | 2005.11.4〜2006.2.4 |
from月, to月 | 2005.14.4-14.20 | 2006.2.4〜2006.2.20 |
from月, to月日 | 2005.14.4-14.35 | 2006.2.4〜2006.3.7 |
from月日 | 2005.14.50-10.21 | 2005.10.21〜2006.3.22 |
from月日, to日 | 2005.14.50-10.35 | 2005.11.4〜2006.3.22 |
from月日, to月 | 2005.14.50-14.20 | 2006.2.20〜2006.3.22 |
from月日, to月日 | 2005.14.50-14.35 | 2006.3.7〜2006.3.22 |
from年月日 + to年月 | ||
to月 | 2005.3.4-2006.14 | 2005.3.4〜2007.2.4 |
from日 | 2005.3.50-2006.4 | 2005.4.19〜2006.5.20 |
from月 | 2005.14.21-2006.4 | 2006.2.21〜2006.4.21 |
from日,to月 | 2005.3.50-2006.14 | 2005.4.19〜2007.3.22 |
from月,to月 | 2005.14.21-2006.14 | 2006.2.21〜2007.2.21 |
from月日 | 2005.14.35-2006.4 | 2006.3.7〜2006.5.5 |
from月日,to月 | 2005.14.35-2006.16 | 2006.3.7〜2007.5.5 |
from年月日 + to年月日 | ||
to日 | 2005.3.4-2006.10.35 | 2005.3.4〜2006.11.4 |
to月 | 2005.3.4-2006.14.20 | 2005.3.4〜2007.2.20 |
to月日 | 2005.3.4-2006.14.35 | 2005.3.4〜2007.3.7 |
from日 | 2005.3.50-2006.10.21 | 2005.4.19〜2006.10.21 |
from日, to日 | 2005.3.50-2006.10.35 | 2005.4.19〜2006.11.4 |
from日, to月 | 2005.3.50-2006.14.20 | 2005.4.19〜2007.2.20 |
from日, to月日 | 2005.3.50-2006.14.35 | 2005.4.19〜2007.3.7 |
from月 | 2005.14.4-2006.10.21 | 2006.2.4〜2006.10.21 |
from月, to日 | 2005.14.4-2006.10.35 | 2006.2.4〜2006.11.4 |
from月, to月 | 2005.14.4-2006.14.20 | 2006.2.4〜2007.2.20 |
from月, to月日 | 2005.14.4-2006.14.35 | 2006.2.4〜2007.3.7 |
from月日 | 2005.14.50-2006.10.21 | 2006.3.22〜2006.10.21 |
from月日, to日 | 2005.14.50-2006.10.35 | 2006.3.22〜2006.11.4 |
from月日, to月 | 2005.14.50-2006.14.20 | 2006.3.22〜2007.2.20 |
from月日, to月日 | 2005.14.50-2006.14.35 | 2006.3.22〜2007.3.7 |
テストとしてはこれだけでは不十分で、0を明示的に与えた場合や7桁を超える数値、また年(西暦)に関しては上記ではテストしていません。
が、上記の一覧では期待通りの結果ですし、その他も一覧には載せていませんが手動テストの結果などから(今のところ)気期待通りに動いていることが確認できています。
ということでクラスは一応ちゃんと動いているということにして(^^;、これを本体に組み込みます。
まずcheckdate.phpというファイルをControllerフォルダの中に作成しそこに件のクラスを全部書きます。この時にこれまでのテストでは[〜]区切りで日付範囲を返していたperiodクラスのgetDateRange()メソッドを[-]区切りで返すように変更します。
public function getDateRange()
{
:
return $from."-".$to;
}
これは日付検索クラスと整合性をとるためです。そして本体?のgappei.phpでは頭でそれをrequireします。
require_once('checkdate.php');
つぎにsearch()メソッド内で以前は日付チェック関数を呼んでいた部分を次のように書き換えます。
$conditions['gdate'] = $this->_valid_date($conditions['gdate']);
↓
$conditions['gdate'] = preg_replace("/[^0-9.-]/", "", $conditions['gdate']);
この部分ではその他のsearchコンディションのヴァリデートに加えて、数値・ドット・ハイフン以外を削除するだけにします。
そしてDecoratorパターンを用いて日付検索クラスをインスタンス化している部分で、日付チェッククラスを使用します。
if ($conditions['gdate'] <> '')
{
$vDate = new Period($conditions['gdate']);
$conditions['gdate'] = $vDate->getDateRange();
$this->cond = new GdateSearch($this->cond, $conditions);
}
これで一応組み込みは完了(のはず)です。でテストしてみました。
「2005」とだけ入力してみたらいきなりエラー(--;。行数を確認するとlist()を使ってる部分でした。で、とりあえずブラウザで戻ってみると入力値の変換自体はきちんと行われているようだったので、とりあえずlist()の前に@をつけてエラーを抑制することにしておきました。
これでさしあたってエラーも出ず?日付で検索することが可能になりました。↑のエラーはlist()に渡す前に配列の数を数えるなりすればいいのかとおもいます。もしかしたらlist()の値と配列の要素数が異なる場合の書き方?とかがあるのかもしれませんがその辺はまだ調べていません。
で、6回に渡って書いてきた日付入力のチェックですが、一言で言えば「やはりメンドイ!」という感じです。単純に日付としての妥当性をチェックしてアラートでも出した方がスクリプト的にはすっきりすることでしょう。
この実装では不正な日付を極力自然に?解釈しようと試みましたが、果たしてこれが万人にとって自然かどうか?ということになるとかなり怪しい?というか、そもそも年月日の順で入力すること自体日本のローカルルールだったりもしますし、いずれにしろ日付入力に関しては決定打はないのかなぁ?と感じました。
ただ最終的にはクラスも作りGregorianToJDの代替関数もでっちあげたりで個人的にはいろいろと学ぶところは多かったようにおもいます。次回からはCodeIgniterに戻って(^^;、AJAXを組み込むことを考えていきます。
ラベル:codeigniter PHP
メガネ美人の女 社 長をゲットしたんだが、足 こ き するのやたら好きなんだよなぁwwwww
足でティムコをふみふみして男が感 じ て るトコ見ると興 奮するんだとよwww
Hん時も騎乗-位以外やらせてくんねーし、どこまでSなんだか。。。(汗
ま、毎回1 0 マ ソ以上もらえるから俺はこれからもティムコ踏まれ続けるけどなwwwww
http://Bee.Subekarazu.com/po-ku9c/
オッサンらしく若いコはイかせまくってやる!(`・ω・´)
・・・って気合入れてたけど反対にイかせられまくりな件wwwww
つか最近のコって腰 使 いとかフ○ラとかうますぎるわ!www
オレがやったことといえば「ア"ー!ア"ー!」って悶えてたぐらい(笑)
これで8万もらえるんだから楽な仕事だなwwwww
http://mao.acmahsjfms.com/mx9p65g/
今さっき相手した女はやばかった!
http://pyoN.TamatamanigittaYO.com/qtdz5bh/
マ-ン-コの中でドジョウ飼ってんのか?って感じの感 触だったし!!w
オレ入れた瞬間思わず待ったかけちゃったよ(笑)
昨日は初めて人_妻とドッキングしてきますた!!!!
舌先で 尿_道 舐められるの初めてでオレ我 慢 汁出まくりw
デ ィ ー プ ス ロ ー トされた瞬間ソッコーで口 内 発 射したら
当たり前のように全部ゴ ッ ク ンされてビビったわ(笑)
てか人_妻とはいえ23歳でここまでしてくるって経 験 豊 富すぎだろ!!!!
俺なんか30だけどついこないだまで童★だったぜ?(爆)
http://Tao.Chala-head.com/u5u9en6/
昨日は女子大生のアンナちゃんとちゅっぱちゅぱしてきたお!!!!
つかアンナちゃんめちゃくちゃイきやすい体質だったYO!!!!
だってチソコを奥までズブって入れただけでイっちゃうんだぜ?www
腰ふるたびにシオ吹きまくってベッドに水たまりができてたし!!wwwwww
ま、おれ 早 漏 だからちょうど良かったけどなwwwww
二人仲良くドピュッドピュッしまくりんぐwww(・∀・ )( ・∀・)
http://ataRi.YoUnubE.net/p2v4d56/
初めて生で見たまぬこにテンションのリミッター外れちゃったわwwwww
夢中でぷにぷにイジったり栗ちゃんもペロペロしまくったし!!!!wwww
もーガマンできなくてオレのドーテーチヌポ(笑)ブチ込んだんだけど
ホカホカのまぬこってオナホなんかと比べ物にならんくらい気持ちいいのな!!!!
マジでチヌポとろけそうになったぜぇぇぇぇぇwwwwww
http://des.hun-kun.net/dcodyh2/
http://bem.chories.net/15a1zaj/
うひょおおおお!!!!逆¥ってこんなに儲かる仕事なんだな!!!!ヽ(・∀・)ノ
今まで借金に苦しむ貧乏フリーターやってた俺がバカみてぇwwwww
つかエチーに8万も出す女も結構おバカだよなーwww
ま、おかげ様で俺が稼ぎまくれるから「もっとおバカになってくだすぁ〜い!!」って感じ?wwwww
30歳から40歳くらいの女の攻め方ってホントねちっこいな!!!!
この前も全身リップでチ*ポだけ放置されたからギンギンの真っ赤になっちゃうしよぉwww
「おちんちんもさわってくださーい!!!!(;><)」
つって泣き声でお願いしたらやっとお口でイかせてもらえたし(爆)
ガマンしすぎてゼリーみたいなザーメソ出ちゃったけど全部飲まれたわwwwwwww
http://ome.world-wife.com/0tqalqf/
2人組のおねいさんに何発もヌキヌキされまくった!!!!
しかも勃たなくなったらボッキ→発射→前立腺→ボッキ…の繰り返しでチOコ壊れるかとオモタしwwwwww
1回10万はめちゃウマだけど、
こんなの毎回やってたら俺インポになるんじゃねぇか?www(`・ω・´;)
http://mav.bnpnstore.com/95picdl/
27歳のおねーちゃんに8万円で買われてきたYO!!!
ま ○ こがスッポンみたいに食いついてきて超キモチよかった!!!
3回連続中 出 しセク−スやってようやく解放してもらえたよ(笑)
http://tera.backblack.net/zj8cd2l/
>りゅうじ
りゅうじが教えてくれたサイトすごいな!!!!!
http://kee.naraduke.net/iarpe1h/
ヴァイブ入れたままの女とかマ〇コ開いて誘惑してくる女とかいたぜ!!(笑)
てかそういう工ロ女抱いて金もらえるってのが熱いよなーーー!!!
もう二人とも仕事やめてこっちに専念しようぜwwwww
敏感マοコキタ━━━(゚∀゚ )━━━!!!!
ちょっと指入れただけなのにマン汁が大洪水だよwwwww
チοポ出し入れするたびにピュッピュッておツユ飛んでたしなwwwww
こんだけマοコいじって7万とかボ ロ 儲 けすぐるwwwww
http://esp.cucuple.net/d5lmrj6/
http://mn.dodonpa50.com/mkjitii/
10万で童*貞買ってもらった!!!!!
つか生おХんこって俺が想像してたよりすげぇ!!!!
肉マンみたいにやわらけぇしホカホカで、チХコ溶けるかと思ったwwwww
「オニャホと変わらないだろ!」とか考えてた自分が恥ずかしいぜwww(ノ∀`*)
最近オレ、毎日四つんばいで手 コ キされてるんだけどwww
牛の乳搾りかっつーくらい精 汁 絞られまくりwwwww
つか、こんなので8万も援 助してもらえっからな!!!
女ってバカだなwww
http://imp.jasdavis.com/lcouxqd/
まさか中だしで4回もやらされるとは・・・!!!!
MっぽかったのにHになると豹変しやがったwwwww
あんなのほとんど逆レイ-プじゃねぇか!!ヽ(`Д´)ノ
とは言っても7万ももらえたので
また犯されたいなぁ(゚∀゚)とか思ってる俺wwwww
http://mu.tokorogadokkoi.net/um8wfsx/
初の逆 援 助やったけど、こんなエロい女おるんかい!
どっちに入れる?ってムスコにお尻すりすりしてきて
オレ、無我夢中でハメハメしてもうたわ!笑
しかも両穴になか出ししまくったのにめちゃ喜んでたでwww
http://grieh.net/abs/xhknway/
いつもみたいに寝転がって女におまかせしてたら
くにゅっくにゅってマ☆コがすごい勢いで絡みついてくんのwwwww
ビックリして10秒足らずでどぴゅどぴゅしちゃったYO!!
オレも逆 ¥ 生 活長いけど、あんな気持ちえぇマ☆コは初めてだわwww(*´Д`*)=3
http://buta-infr.net/ino/ckmw8p2/
にゃほーーーーっ!!!!ヽ(≧▽≦)ノ
おにゃのこのオ ナ ニーを生で見たよ!!!!
恥ずかしそうに指を出し入れするトコとかマジ萌えるぜぇぇwwwww
こんだけで3万稼げたし、こりゃ続けない訳にはいかないっしょwwwww
http://ziku.aiyorikane.net/s33eqhx/
まさかこの歳で女を抱いて金が貰えるとは!!
http://xabrina.net/don/3jygdwj/
この前とか「おじさんのおちんちんきもちいいよぉ〜!」って23歳のコに言われちゃったぞ(笑)
初めは遊び半分だったけど、こりゃハマるわっ!!d(* ̄ー ̄*)b
銀行に行ったらホントに5万振り込まれてて笑ったwww
ぶっちゃけエッチするだけでもウマウマ(゚∀゚)なのに、お金まで貰えるとかどんだけ!!!
http://nuda.pocket-m.net/58j4xoj/
うにゃぁぁぁ!!8万で買ってもらったけど、激しすぎっ!!!!
何回も馬乗りではめられて、ほとんど野獣みたいだっしな!!
スペルマ出しすぎて、最後にはカウパーも出なかったぞ・・・(苦笑)
http://goo.gl/q3XS
尺八してもらったけどありゃたまんねーな!!
ジュパジュパ凄い音させながら吸いつかれて、30秒で発射しちまった(笑)
しかもオレ、女にお任せして寝てただけなのに5マソも貰った件wwww
http://8fh2ax8.jp.takaoka.mobi/