PHP掲示板4 メールアドレスチェック

晴れ今日はINAXのキッチンを組む。 6時50分に会社。 INAXの倉庫まで行ってキャビネットや天板を受け取って現場に向かう。 現場は坂出。
INAXのキッチンは初めて組むのだけど、あんまりノーリツのと変わらない。 引き出しが少し重い感じはしたけれど。
まぁ普通に何事もなく16時半くらいに組み終わった。

ひさびさに早く帰れる~ 18時前に帰宅。
昨日、一昨日と妻は体調が思わしくないため実家に帰っていた。 ここから10分くらいの距離なのだけど、オレもくたくただったので行けなかった。 今日は帰ってくるって。
ひさびさに時間があるのでPHPの掲示板の続きをやる。

先日メールアドレスチェックっぽいのを作ったのでそれを組み込んでみよう。
メールアドレスの定義を調べたけど、わからなかったので勝手に決めた。
・ユーザー名@ドメイン名とする
・使える文字はa~z、A~Z、0~9、_(アンダーバー)、-(ハイフン)、.(ドット)と@(アットマーク)
・ユーザー名の1文字目に記号は使えない
・ドメイン名はの最小構成は、@*.* とする (*は使用できる文字のどれか)
・ドメイン名の1文字目に記号は使えない
・ドメイン名で.(ドット)の直後に記号がくることは無い
・ドメイン名は、_(アンダーバー)、-(ハイフン)、.(ドット)で終わる事がない

こんなところかな~ この定義が実際のメールアドレスの定義と合ってるのかは不明。 自分の経験で勝手に決めました…… 昔J-PHONEの携帯電話のアドレスで大文字のメールアドレスがあったような気がするし、ドメイン名の.の直後に記号がくるのをみた事が無い。 ユーザー名も記号で始まるのを見た事が無い。 自分の使ってるサーバーで記号で始まるメールアドレスを追加しようとしたけど無理だった。

今日は全然進歩なし……

タブで本文を書き込まれるやつどうしようかな~ 明日にでも<>に変更してみようかなぁ… それか は半角スペースにでも置き換えるか…… ただ本文中に と書かれていた場合はどうなるのだろう。

サンプル
ソース

パリーグ1位通過

晴れ今日は6時50分から仕事。 善通寺でミカドのお風呂を組む。 ミカドのお風呂を組むのは初めて。 かなり時間がかかりそう…… 施工書を見ながら、右も左もわからない状態で壁に穴を開けていく。 もし穴を開ける位置を間違えたら…………1日分の給料無し&壁代弁償。 これで2万弱給料が飛ぶ。 ものすごく痛い……
過去に2度壁をミスったことがあるんだけどね……
初めてやるやつだから、特に慎重にやった。 まぁミスはなく無事に終わった…………けど時間は18時……
会社に帰る途中に車で阪神VS広島のラジオ中継を聞いていた。
4回の阪神の攻撃、1番がアウトに倒れる。 2番打者がヒット。 続いて3番シーツ。 なんとホームラン! 一気に2点が入った。 そして4番金本が2ベースヒット。 5番浜中がなんとホームラン!
この回、2本のツーランホームランで一気に4点獲得した阪神。 そのまま5-1で逃げ切ったみたい。 だけど中日も勝てゲーム差変わらず。 阪神残り10試合、中日16試合。 ゲーム差は3。 どうなるかな~

家に帰ったのが20時前……
インターネットでパリーグの情報を見る。 今日は西武VSロッテとソフトバンクVS日本ハム。
日本ハムが勝ちか引き分けで優勝。 負けても西武が引き分けか負けで優勝。 西武が優勝するには試合に勝って、
日本ハムが負けなくてはいけない。
この一試合で全てが決まる。 しかも今日は今シーズン最後の試合(西武と日本ハム)、最後の最後で優勝が決まる。
 これほど楽しい事はないよね。
結果は……日本ハムがソフトバンクに勝った。 この瞬間日本ハムの1位通過が決定した。 西武はまだ試合中だった。 けど西武が勝った。
日本ハムが1位通過、2位西武、3位ソフトバンク。 以上の3チームでプレーオフを戦い、リーグ優勝を決める。 さぁ楽しみだ~

家で夕飯作ったり掃除をしていたらあっという間に時間が経過。 今週は仕事もつらいしものすごく眠い。 今日は何もせずに寝てしまおう…… 明日はINAXのキッチン。 これまた初めてやるやつだけど、キッチンだからそれほど時間はかからなそうかな…… あ~眠い。。。

川之江町

晴れ今日は愛媛県四国中央市川之江町で仕事。 6時半に会社…… 夕べのうちに作っておいた鮭とウインナーのお弁当を持って。
今日はけっこうめんどいお風呂。 壁出し換気扇というのをつける。 普通お風呂の換気扇は天井につけるのだけど、天井が低くて換気扇をつけられない場合は壁につける。 まぁその穴を開けるだけなのだけど。
まぁそれ以外は特にめんどうなこともなく無事に終わった。
だけど現場が終わったのが17時半。 高速使って帰ってもけっこう時間がかかる。

けっきょく会社に着いたのが19時。 家に帰ったら19時半……
明日はミカドのユニットバスを組む。 初めてやるもの…… 明日も遅くなりそうだ。。。

今日は野球の話でも。
オレは一応「福岡ソフトバンクホークス」のファン。
パリーグは今、上位3チームが2ゲーム差で首位を争っている。
1位:西武 残り2試合 M0
2位:日本ハム 残り2試合 0ゲーム差
3位:ソフトバンク 残り3試合 2ゲーム差

試合は西武VSロッテ、ソフトバンクVS日本ハム。
今日西武が勝てば1位決定。 ソフトバンクが負けたら3位決定……
ソフトバンクが優勝するには、西武が2試合負けて、ソフトバンクが3試合勝たなくてはならない…… かなり追い詰められた状態。
絶対落とせない今日の一戦。
しかし1回にいきなり2ランホームランを浴びてしまう。 これはマズイ……
そのまま得点できず、得点を入れられ続けて8回。 なんと一気に5点も入れられてしまう。 これはもう無理だ…… けっきょく0-8で負けてしまった。 これで3位確定…… まぁプレーオフ頑張ってもらおう!
で、西武VSロッテ。 勝てば1位が決まるこの一戦。 先発は松坂。 しかし松坂が打たれてしまう。 打たれて打たれて、2-6で西武の負け。 日本ハムがソフトバンクに勝ったので、順位が入れ替え。
1位:日本ハム 残り1試合
2位:西武 残り1試合 1ゲーム差
3位:ソフトバンク 残り2試合 3ゲーム差
明日日本ハムが勝ちか引き分けで首位決定。 もし負けても、西武が引き分けか負けたら首位決定。 西武が優勝するには明日日本ハムが負けて、西武が勝たなくてはいけない。
まぁこうなったらどちらが優勝してもいいけれど。

そしてセリーグも面白い。 首位中日、2位が阪神でゲーム差が3。 阪神は怒涛の7連勝。 中日はサヨナラ勝ち。
残り阪神が12試合かな、中日が17試合くらい。 3ゲームなのでひっくり返す事も可能だろう。 シーズン終盤でも順位が決まってないのはめずらしい。 まだまだ楽しみなプロ野球。

さてPHP。
掲示板にあまりにも不具合が多すぎる……
サンプルに書き込まれていて気づいた…… 本文を記入するテキストエリアなどにタブは入力できないと思っていた…… だけどメモ帳などで、タブを含んだ文章を書いて、コピー&ペーストしたら、タブ入りの文章を書く事が出来た。 それによって、タブ区切りのログファイルがとんでもないことに(;゜ロ゜) さて、これはどうすればいいのだろう。
調べたら、掲示板のログは普通「タブ区切り」か「<>区切り」らしい。 だけど<>区切りにしてもまた不具合がおきそうだし…… 記入された記事や名前の中にタブが入ってるか入ってないか確認して、入っていたら半角スペースなどに置き換える、とかしないといけないのかな。 これは正規表現が必要だ、たぶん。

どっちにしろ勉強しないといけないものなので今日は正規表現の勉強をしよう……
とりあえずメールアドレスかどうかチェックするようなものを作った。
メールアドレスの定義がよくわからないけれど……
メールアドレスに使われる文字は
アルファベットの小文字のa~z、大文字のA~Z、数字の0~9、-、_、.だけだったかなぁ。
たぶん1文字目に-_.が来る事はないかな…… だけどわからないからいいや。
そして@以降も1文字で終わる事はないと思う……たぶん……
@直後に-_.が来る事があるのかどうかは不明。
-@…とかいうアドレスが実在したりするのだろうか…… そういうのはわからないけれど……
とりあえずこんな感じかなぁ。

ereg(“^([a-zA-Z0-9_.-]+@[a-zA-Z0-9_.-]+.[a-zA-Z0-9_.-]+)$”,$i)

まず(a~z、A~Z、0~9、_、.、-)のどれかが1つ以上使われている。 その後に@がくる。
その後に(a~z、A~Z、0~9、_、.、-)が1つ以上使われている。 その後に.(ドット)がくる。 そして(a~z、A~Z、
0~9、_、.、-)が1つ以上くる。
以上のものが$iの先頭にあって終わりにもある。 つまり$iの全てが上のに当てはまってるかどうかチェックする。
ように作ったはず。

[ ] で囲まれたところはその中のもののどれかが使われてるか判断。 そしてa-zはa~zのどれかという意味。
[a-zA-Z0-9_.-]は
abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789_.-
のどれかが使われている。 その後の + はそれらが1回以上繰り返し = 1文字以上。
最初の^は$iの最初にという意味
最後の$は$iの最後にという意味

うーん、難しい。
今度メールアドレスとURLの定義を調べなくては。

キッチンとショールーム

晴れ今日は6時50分から仕事。 朝ご飯を食べる時間がなかったのでコンビニでパンを買う。 お昼ごはんのおかずも作りきれなかったので切干大根を買う。

今日はキッチン。 普通のI型吊戸ありのキッチン、すぐに終わりそう。
だけど運送屋のトラックが荷物を持ってきたときに、細い道だったため脱輪してしまった。 落ちた場所はたんぼ。 ただ、堀の高さがあるので、たんぼに落っこちたわけではない。 偶然お客さんの家に油圧ジャッキがあったのでそれで車体を持ち上げて、厚い板を何本も道路と田んぼの間に、斜めにかませて脱出した。 運転手も脱輪したのはひさびさだと言っていた。
それ以外は何もトラブルがなく、14時くらいに終わった。

これからショールームに行って仕事をしないといけない。
浴室テレビの設置と展示用の水洗の取り付けを。
テレビは穴を開けてコーキングするだけなので楽チン。 水洗も台座に取り付けるだけだったので簡単。
ここのショールームにはかわいい女の子が1人いたのだけど、パーマを当てて前髪を上げててイメージががらりとかわっていた。 だけど顔つきとかはかわってないからね。 ただちょっと気になるのはやせすぎかな……

妻が「スイカが食べたい」と言っていたので、仕事が終わった後フジグランに行ってみる。 大きなスーパーだからこの時期でもスイカ売ってるかなぁ…… カットスイカしか売ってなかった……しかも高い! まぁ仕方ない。 2パック買って家に帰る。
すぐに保育園のお迎えの時間になった。 一通り家事をして夕飯を作る。 今日の夕飯はオレだけ鮭、あとの2人は素麺。 そして明日は朝が早いのでお弁当を作る…… いつも朝作ろうと思っても時間がなさすぎるので夜のうちに。 腐らないよねきっと……

ようやく自由時間になってPHPをやる。 昨日の日記の掲示板に親切な人が書き込みをしてくれてあって、メールアドレスかどうかチェックする(?)正規表現みたいなのが書いてあった。

if ( ereg(“^[^@]+@[^.]+\..+”, $str) )

うーむ、これは……
メールアドレスの一番最初に@が来てはいけない、それ以外のものがきて、その後に@がくる。 ここは@以外のものが来てはいけない。 次の\..+ は不明…… これが$strの中の決まり。 この条件にあってるならばこっち、違うならこっちというようなものらしい。 うーむ、むずかしい…… これはかなりサンプルみたいなのを作ってやり尽くさないと理解出来なさそう…… きっとメールアドレスのチェックができたら、URLのチェックもできるだろう。

さて、今日の進み具合。 やる時間があまりなかったのだけど……
まず変更点。
「本文」に書き込みしていて改行するとログファイルの中でも改行されて悲惨な事になってるみたい。
なので
・本文の中で改行されたものをログファイルに移すときに改行されないようにした。
いろいろ調べたら、Windows内では改行は「
」と判断されているらしい。 
は改行だけど
は復帰というらしい。 意味は行の先頭にカーソルをもっていくみたい。 簡単に言うとエンターキーを押したという意味らしい。 すっごい難しいけど…… なので本文中からがあったら<br>に変換する、という処理をする。 マックとかだとだけらしいのだけど、マックがないので試す事が出来ないのでよくわからない。 まぁもっと調べてそのうちに……

・ログファイルにエスケープキー
名前や本文などで「”」「'」「」を使うと表示するときに「”」「'」「」と表示されてしまう。 いろいろ調べたらそういうときだけのを取り除くことができるらしいので、それをやってみた。 たぶんできてる。

・<>とかをHTML方式にするように
<だと&ltとなるみたい。 これによって本文中にタグが使われても大丈夫になった!?
そういうのを一発で変換してくれる関数があったのでよかった。。。

さらに発見された今後の課題
・パスワードに記号を使った場合、コピー&ペーストで全角文字を使った場合の処理
・名前と本文に全角スペースのみの場合、本文が改行のみの場合の処理
・「書き込みました」の画面でリロードすると、した回数だけ記事が書かれる

やらないといけないことはいっぱいいっぱいあるのに、頭が追いつかない。
サンプル
ソース

義実家

晴れ今日は仕事がお休み。 というか4連休いらね~
9時過ぎに起きて妻と一緒にとある病院へ。 相変わらず妻の具合がよくない。 点滴をして義実家へ向かう。
家でゴロゴロしていればいいんだけど、家の目の前で大工事をやっている。 家が建つのかわからないけど田んぼだった場所を土に変えて、配水管みたいなのを埋め込んでいる。 家が建つなら10軒以上たつだろう……
で、工事の音がすごいうるさいのでゆっくり休めないらしい。
なので実家で休む。

あるものでご飯を食べて一緒にテレビを見ていた。 そしたらすごい眠くなってきて2時間ほど寝てしまった。
夕方保育園にお迎えに行き、義実家で夕飯を食べて家に帰る。
妻と長女をおろしてオレは会社に行く。

社長と話があったため。 オレは30分くらいで話を終わらせる予定だったのに、社長のグチをダラダラダラダラ聞かされて話が終わったのは2時間半後…… 時間は23時過ぎ……
あ~今日は木曜日、そして「不信のとき」の最終回だったのに…… 毎週欠かさず見ていてとても楽しみにしていたドラマの一番重要な部分「最終回」を見逃してしまったヽ(;´д`)ノ

これからの仕事

晴れ今日は6時40分から仕事。 最近ずっとお弁当を持って行ってない。 今日のお弁当は昨夜義実家からもらってきたお弁当。 冷蔵庫に冷やしてあったので期限切れでも大丈夫だろう。
今日は普通のお風呂……のはずだった。 だけど排水パイプの勾配が逆になっていて水が流れないで溜まるようになっていた。 これではいけない。 一緒に行ったもう1人の人がメーカーや社長と連絡をとって、それの返事待ちで30分くらい。
そこの排水の接続は設備屋がやることになったので、あとは普通にお風呂を組むだけ。

15時半くらいに終わった。 今日社長は1人でショールームの浴室交換に行っている。 てっきりショールームにきて手伝ってくれといわれるとばかり思っていた。 だけど、そのまま帰っていいとのこと。

なんと明日から4連休。 明日は仕事があるっぽかったけど、現場の状況がはっきりしないので社長が釣りに行くことにしたらしい。 なので休みに。 社長は鮎釣りをやるのだけど、今シーズン最後だからこの連休を作り釣りに励むらしい……

家に帰ってちょっと気になる事があったので、先日面接を受けた会社に電話をしてみる。 選考結果を聞こうとしたわけではなく、先日送ったメールが届いているか確認したかったのだけど、なんと…………「作ったプログラムも大丈夫そうだったので、雇おうと思ってます」とのこと。
!! もしかして採用……!? オレはてっきりダメと思っていた。 PHPなんてやったことなかったし、ツールを使えばホームページも作れるけど、タグ打ちで全て作れって言われたら、辞典を見ながら時間がかかるだろうし……なにより未経験というのがでかい。
けど採用してくれた。
働くのは11月からだけど、特に準備するものもないらしい。 ただ、「勉強しておいてください」とは言われたけれど。 PHPとHTMLとCSSを勉強しなくては…… そして明日からの4連休何をしよう……

岡田

晴れ今日は岡田で仕事。 7時に会社集合。
先週の月火は熱で休んだけれど、もしそのとき出てたら…………今日で9連続になる。 まぁ2日休んだから7連続なんだけど。 で、どうやら今度の土日は休みらしい! もしかしたら金曜も休みになるらしい。 社長が釣りに行くかららしい……

今日は普通のお風呂。 何も特殊なものがつかない普通のだったので、14時半くらいに現場が終わった。
それから会社に帰り、先日行った派遣の給料をもらいに行って、義実家についたのが17時……

夜義母を迎えに行って、もらいものの弁当を食べて帰宅。
もう1週間以上妻の調子が悪いので、家事はずっとオレがやっている。 掃除はあまりしてないけれど、ご飯や弁当作ったり洗い物したり洗濯したり。
洗い物や洗濯は別にいいけれど、朝起きて時間のないときに弁当と朝ごはんを食べるのがきつい!

台風13号?

晴れ今日の朝方に台風13号が四国に最も接近する予定だった……
5時50分起床。 外を見ると雨が降った形跡がない。 台風はもう通り過ぎたのだろうか?
7時から仕事なので会社に向かう。 会社から現場に向かう途中ラジオを聞いたら、島根県の北西210kmのところに台風があるらしい。 どうやらもう通り過ぎたみたい。
あれだけ四国も巻き込まれると言われていたのに被害はなかったみたい。 まぁ被害を受けるよりも被害が無い方がいいのだけどね。

今日は鬼無で仕事。 特殊なお風呂を組む。 普通、お風呂の窓は浴槽の長手につくのだけど、このお風呂は入って正面が窓。 普通だとシャワーや鏡のつく場所が窓なのだ。 シャワーや鏡はというと……その横についている。 シャワーを浴びると浴槽に水が入ってしまう。 ちょっと欠陥っぽいつくりだけど、もともとの窓の位置はずらせないしね。 メーカーの営業の人もそれでお客さんに許可もらってるし。

けっこう時間がかかって18時半くらいに仕事が終わる。
義実家に夕飯を食べに行く。 今日はお好み焼き。 妻が「うちのおかんの作ったやつが一番おいしい!」と豪語していたけれど、それを食べるときがついにきた。 食べてみるとふわふわしてる。 西日本のお好み焼きは全部こんなにふかふかしてるのかな~ お店で食べたやつもそうだったけれど。 まぁ美味しかった!