|
2006,04,17, Monday
最近、配列を組んでいない、考えて組まれていないソースが手元によく上がってきます。
作るだけならひとつひとつ変数を入れてもいいし、どれが正解などはありませんが、あきらかに訂正が大変であろうソースが多いので自分でも調べてみると意外とこの配列と変数に関するページが少ないように感じた(検索ベタ!?)のでサクッっとブログってみた。 よくある住所氏名等を入力確認する画面だとすると… 基本パターン 入力画面 5行 <INPUT size="50" type="text" name="zip"> <INPUT size="50" type="text" name="add1"> <INPUT size="50" type="text" name="add2"> <INPUT size="50" type="text" name="name1"> <INPUT size="50" type="text" name="name2"> <INPUT size="50" type="text" name="tel"> 確認画面 変数取得で5行 $zip = $_POST['zip']; //もしくは $_GET['zip']; $add1 = $_POST['add1']; $add2 = $_POST['add2']; $add3 = $_POST['name1']; $add4 = $_POST['name2']; $tel = $_POST['tel']; 取得した変数を表示するのに5行 print "$zip "; print "$add1 "; print "$add2 "; print "$name1 "; print "$name2 "; print "$name3 "; さらに確認画面から送信画面にhiddenするのに5行 print '<INPUT type="hidden" name="zip" value="' .$zip. '">' ." " print '<INPUT type="hidden" name="add1" value="' .$add1 '">' ." " print '<INPUT type="hidden" name="add2" value="' .$add2. '">' ." " print '<INPUT type="hidden" name="name1" value="' .$name1. '">' ." " print '<INPUT type="hidden" name="name2" value="' .$name2. '">' ." " print '<INPUT type="hidden" name="tel" value="' .$tel. '">' ." " 送信画面 変数取得で5行 $zip = $_POST['zip']; $add1 = $_POST['add1']; $add2 = $_POST['add2']; $add3 = $_POST['name1']; $add4 = $_POST['name2']; $tel = $_POST['tel']; とこれだけかかなければならない。 ってゆーか5つでこれだけの量である。 メール送信時もまた5つの変数を表示させなければならず大変だし、追加や訂正も大変。 まして動的に変化するページなんてできやしない… 少し進化して配列を組んでいるいるが…ってパターン① 入力画面 5行 <INPUT size="50" type="text" name="zip"> <INPUT size="50" type="text" name="add1"> <INPUT size="50" type="text" name="add2"> <INPUT size="50" type="text" name="name1"> <INPUT size="50" type="text" name="name2"> <INPUT size="50" type="text" name="tel"> 確認画面 変数取得で5行 $zip = $_POST['zip']; //もしくは $_GET['zip']; $add1 = $_POST['add1']; $add2 = $_POST['add2']; $add3 = $_POST['name1']; $add4 = $_POST['name2']; $tel = $_POST['tel']; 手動で配列に値をセット $arry = arry("$zip", "$add1","$add2","$name1","$name2","$tel"); 今度はhiddenセット print '<INPUT type="hidden" name="zip" value="' .$arry[0]. '">' ." " print '<INPUT type="hidden" name="add1" value="' .$arry[1]. '">' ." " print '<INPUT type="hidden" name="add2" value="' .$arry[2]. '">' ." " print '<INPUT type="hidden" name="name1" value="' .$arry[3]. '">' ." " print '<INPUT type="hidden" name="name2" value="' .$arry[4]. '">' ." " print '<INPUT type="hidden" name="tel" value="' .$arry[5]. '">' ." " 最初の画面で変数の作り方がこんなタイプの人は恐らくここもこんな感じです。 少しマシになったが入力項目がひとつ増えれば、また配列にひとつ手動で値をセットしなければならない。 次のステップがこれ 少し進化して配列を組んでいるいるが…ってパターン② 入力画面 5行 <INPUT size="50" type="text" name="foobar1"> <INPUT size="50" type="text" name="foobar2"> <INPUT size="50" type="text" name="foobar3"> <INPUT size="50" type="text" name="foobar4"> <INPUT size="50" type="text" name="foobar5"> <INPUT size="50" type="text" name="foobar6"> 確認画面 for($i = 0; $i <= 5; $i ++){ $foobar$[$i] = $_POST['$foobar'$i]; }//こんな感じのソースで戦ってハングしているのでは?? その回避策に必死になり、事前にまた並列を手動でセットしたりと悩むのでは?? これが正解ではないが、こんな感じなら訂正もそんなに多くないのでは?? まずは入力項目の数をセット $field = 5; 入力画面 for($i = 1; $i <= $field; $i ++){ print '<INPUT size="50" type="text" name="$foobar[]">'; } これを出力すると… <INPUT size="50" type="text" name="$foobar[]"> <INPUT size="50" type="text" name="$foobar[]"> <INPUT size="50" type="text" name="$foobar[]"> <INPUT size="50" type="text" name="$foobar[]"> <INPUT size="50" type="text" name="$foobar[]"> とすべて "$foobar[]" になるのでは?? と思うかも知れませんが… すべて配列$foobarにセットされ、 1行目は $foobar[0]で出力。 3行目は $foobar[2]で出力されるのである。 よって確認画面は変数取得とhiddenがセットになり for($i = 0; $i < $field; $i ++){ print '<INPUT type="hidden" name="foobar[]" value="' .$_POST['foobar'][$i]. '">' ." " } 送信画面でも同様に処理すればいいのである。 はまらないこつは$textfield1,$textfield2,$textfield3…としてこれをどうまわすか考えないことであると私は考えます。 今はマシンパワーがあり、少々ソースが汚くてもものともせず動きます。 とりあえず動けば問題ないでしょう… このように組んでおけば、add3が増えたりfaxが増えてもなんら問題ないでしょう… |
|
2006,04,12, Wednesday
かなり以前に phplib で生成していた時期がありましたが、商用利用ができなかったり、不要なロゴが入ったりしたんで何かいいものはないかとググってみました
FPDF Library PDF generatoe なるものを発見しました 一度内容を理解してしまえばまさにDLしてアップすれば使えます。 コンパイルやリビルド不要なんでpackageがない時には面倒になるfedoracoreにはピッタリです。 Wgetではうまくいかなかったんで、ますはWindowsクライアントで下の2つをDL http://www.fpdf.org/ (FPDF) fpdf153.zip http://www.geocities.jp/rui_hirokawa/php/pdf/mbfpdf10b.zip (MBFPDF) mbfpdf10b.zip fpdf153.zip から fpdf.php mbfpdf10b.zip から mbfpdf.php, font(dir) をFPDFというフォルダにまとめてドキュメントルートにアップロード [root@fedoracore4 ~]# cd /var/html/html [root@fedoracore4 html]# wget http://fedoracore4.com/phps/sample-PDF.zip サンプルDL --16:04:39-- http://fedoracore4.com/phps/sample-PDF.zip => `sample-PDF.zip' fedoracore4.com をDNSに問いあわせています... 218.182.184.9 fedoracore4.com|218.182.184.9|:80 に接続しています... 接続しました。 HTTP による接続要求を送信しました、応答を待っています... 200 OK 長さ: 392 [application/zip] 100%[=========================================================================>] 392 --.--K/s 16:04:39 (72.97 KB/s) - `sample-PDF.zip' を保存しました [392/392] [root@fedoracore4 html]# unzip sample-PDF.zip 解凍 Archive: sample-PDF.zip inflating: sample-PDF.php [root@fedoracore4 html]# rm -rf sample-PDF.zip 元ファイル削除 [root@fedoracore4 html]# ls |grep PDF サンプルファイルとライブラリDirの確認 FPDF sample-PDF.php [root@fedoracore4 ~]# ls -all /var/www/html/FPDF/ ライブラリDirの中はこうなります。 合計 80 drwxr-xr-x 3 root root 4096 4月 12 15:16 . drwxr-xr-x 31 root root 4096 4月 12 15:08 .. drwxr-xr-x 3 root root 4096 4月 12 15:16 font -rw-r--r-- 1 root root 40616 1月 1 2005 fpdf.php -rw-r--r-- 1 root root 16517 2月 7 2004 mbfpdf.php [root@fedoracore4 ~]# http://yourdomain/sample-PDF.php へアクセス FPDF Library PDF generatoeFPDF-J - FPDF ファンの集い処 Minimal example |
|
2006,03,19, Sunday
アクセスログを見てるとかなり多くのアクセスがあり、設置方法を質問している掲示板などもあり、フォロー投稿します。
まずはPHPが動くサーバーを用意しなければならないので、無料でPHPが動作するWebサーバーをググってみました。 ぶっとびねっとなるサイトを発見。 早速試してみた。 ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]()
・自身にPOSTすると動作しないため、2つに分割・jump.phpが変数を取得してくれないため直接ジャンプ ・件数の初期値変更 DLは http://fedoracore4.com/phps/buttobi-miemasu.zip ![]() ![]() |
|
2006,03,06, Monday
たとえば数時間かかる処理が終了した時に携帯にメールが飛んでくることによって、定期的に処理の進捗具合を確認しなくていいのですっごい便利なんですが、文字コードで少しはまってしまいました
環境は Fedoracore 4 kernel 2.6.* UTF-8/CR Apache 2.0.* AddDefaultCharset EUC-JP PHP php-5.0.* mbstring.language Local Value = neutral / Master Value = neutral PHP Script EUC-JP/LF <? mb_language('Japanese'); /* config */ $to_address = "yamada@hogehoge.com"; $to_name = "山田さん"; $sub = "件名"; $body = "内容 こんにちは"; $from_name = "田中"; $from_address = "tanaka@hogehoge.net"; /* EUC → JIS(&MINE header作成) */ $to_name2 = mb_encode_mimeheader(mb_convert_encoding($to_name, 'JIS', 'EUC')); $sub2 = mb_encode_mimeheader(mb_convert_encoding($sub, 'JIS', 'EUC')); $from_name2 = mb_encode_mimeheader(mb_convert_encoding($from_name, 'JIS', 'EUC')); $body2 = mb_convert_encoding($body, 'JIS', 'EUC'); /* メール作成 */ mail("${to_name2} <${to_address}>", "${sub2}", "${body2}", "FROM: ${from_name2} <${from_address}> "); /* 確認表示 */ print "$from_name($from_address) → $to_name($to_address) "; print "件名:$sub "; print "本文:$body "; print "送信日時:" .date("Y-m-d H:i"); ?> 上記スクリプトをapache上で実行させると以下のようになるはずです。 (本当に実行するとエラーメールが返ってくるはず… 田中(tanaka@hogehoge.net) → 山田さん(yamada@hogehoge.com) 件名:件名 本文:内容こんにちは 送信日時:2006-03-06 17:24 ↓ =?ISO-2022-JP?B?GyRCRURDZhsoQg==?=(tanaka@hogehoge.net) → =?ISO-2022-JP?B?GyRCOzNFRCQ1JHMbKEI=?=(yamada@hogehoge.com) 件名:=?ISO-2022-JP?B?GyRCN29MPhsoQg==?= 本文:内容 こんにちは 送信日時:2006-03-06 17:24 |
|
2006,02,25, Saturday
ライブカメラ設置して、気になるときに自宅の猫を見たいなぁって思ってカメラを探してました
大きく分けるとPC立ち上げててそれにくっ付けるタイプと中にhttpdデーモンが入っているタイプになるようですね 中でもPanasonic製のネットワークカメラがシェアが高いみたいです やっぱりCMOSよりCCDタイプがほしーなぁなんて考えてたら、ふと疑問が… ウチはほぼ固定のグローバルIPだけど、変動し続ける場合はどうしてるんだろ?? メルコのルーターとダイナミックDNS利用してたり、固定IP環境の人もいてましたが多くの人は「みえますねっと」なるものに加入しているようです。 月額1,029円払えば、カメラ自身が常に九州松下のDNSレコードを更新するシステムのようです。 非常にかんたんで便利ですが1,000円以上するで固定IPが安いプロバイダーの人なんかそっちにしてるんでしょうし、無料にこだわる私のようなものはルーターの更新機能+dyndnsかなんかを利用しようとするんでしょう(笑) でここで、どんな人がカメラを公開してるんだろうって思ってググってみました。 びっくりしました。 ノーセキュリティで部屋の中が確認できるサイトもあるじゃないですか! もうちょっとググってみると日本全国ライブカメラ!なるリンクサイトまであってさらにビックリしました 塾ネットって会社のサーバーに設置するページか 自分の知らないところで部屋のカメラにリンク張られてたりするとは… で見ていると、みえますねっとの標準の cam*****.miemasu.net ってアドレスが一番多いように思い、気になってPHPでさくっとソース書いてみたらい~ぱい出てきますね(笑) 必要最低限の機能しかありませんが、ネットワークカメラの検索が可能です。 ちょこっとヘッダー部分変更すればテキストに出力も可能です。 インタフェイスはこんな感じです。(サンプル) ![]() ![]() ![]() 数十分で作ったテキトースクリプトですが、まぁテキトーに遊ぶのにはちょうどいいでしょう。 って訳で、ノークレーム・ノーサポートで公開します。 DLはこちらから miemasunet_serach.php (検索制御ページ) 644 jump.php (リファラー対策ページ) 644 php.ini の設定で max_execution_time 編集して下さい。 (実行時間設定) |


FPDF Library PDF generatoe












・自身にPOSTすると動作しないため、2つに分割



