■CALENDAR■
      1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30   
<<前月 2010年09月 次月>>
■LOGIN■
現在のモード: ゲストモード
USER ID:
PASSWORD:
■NEW ENTRIES■
■RECENT COMMENTS■
■RECENT TRACKBACK■
■CATEGORIES■
■ARCHIVES■
■LINK■
■PROFILE■
■POWERED BY■
BLOGN(ぶろぐん)
BLOGNPLUS(ぶろぐん+)
■OTHER■
 

変数と配列
最近、配列を組んでいない、考えて組まれていないソースが手元によく上がってきます。
作るだけならひとつひとつ変数を入れてもいいし、どれが正解などはありませんが、あきらかに訂正が大変であろうソースが多いので自分でも調べてみると意外とこの配列と変数に関するページが少ないように感じた(検索ベタ!?)のでサクッっとブログってみた。

よくある住所氏名等を入力確認する画面だとすると…

基本パターン

 入力画面 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が増えてもなんら問題ないでしょう…

| Linux::PHP | 09:39 PM | comments (0) | trackback (0) |
PHPでPDF生成 (FreePDF)
かなり以前に phplib で生成していた時期がありましたが、商用利用ができなかったり、不要なロゴが入ったりしたんで何かいいものはないかとググってみましたにこっ

FPDF Library PDF generatoe なるものを発見しました太陽

一度内容を理解してしまえばまさにDLしてアップすれば使えます。
コンパイルやリビルド不要なんでpackageがない時には面倒になるfedoracoreにはピッタリです。

【Yahoo!ショッピング】デジタル家電から白物家電まで魅力的な商品が満載

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 へアクセス

></a><br>
<br>
このように表示されればOK。<br>
<br>
参考URL<br>
<a href=FPDF Library PDF generatoe
FPDF-J - FPDF ファンの集い処
Minimal example



| Linux::PHP | 04:15 PM | comments (0) | trackback (0) |
ライブカメラ(みえますねっとカメラ検索プログラム) アクセス激増!! 設置実演
アクセスログを見てるとかなり多くのアクセスがあり、設置方法を質問している掲示板などもあり、フォロー投稿します。

まずはPHPが動くサーバーを用意しなければならないので、無料でPHPが動作するWebサーバーをググってみました。

ぶっとびねっとなるサイトを発見。

早速試してみた。

></a><br>
<br>
<a href=></a><br>
<br>
メールを受信。<br>
<br>
<a href=></a><br>
<br>
メールに記載されているURLにアクセス<br>
<br>
<a href=></a><br>
<br>
<a href=></a><br>
<br>
メールを受信。<br>
<br>
<a href=></a><br>
<br>
メールに記載されているURLにアクセスし、IDとパスワード入力<br>
<br>
<a href=></a><br>
<br>
無料レンタルサーバーをクリック<br>
<br>
<a href=></a><br>
<br>
<a href=></a><br>
<br>
<a href=></a><br>
<br>
<a href=></a><br>
<br>
<a href=></a><br>
<br>
メール受信。<br>
<br>
<a href=></a><br>
<br>
ファイルマネージャー。<br>
<br>
<a href=></a><br>
<br>
2つのファイルをアップロード。 <br>
<br>
※ぶっとびねっと用にbuttobi-miemasu.zip作成<br>
miemasu.zipとの変更点<br>
<br>
・ ・自身にPOSTすると動作しないため、2つに分割
・jump.phpが変数を取得してくれないため直接ジャンプ
・件数の初期値変更

DLは
http://fedoracore4.com/phps/buttobi-miemasu.zip

></a><br>
<br>
<a href=></a><br>
<br>
あまり負荷がかかるとexitしてしまうので、もっと大量に検索したい人は有料のレンタルサーバーか自鯖立てて下さい。<br>
Windowsならかんたんでしょう<img src=

| Linux::PHP | 10:21 PM | comments (4) | trackback (0) |
PHPでメール(文字化け対策)
たとえば数時間かかる処理が終了した時に携帯にメールが飛んでくることによって、定期的に処理の進捗具合を確認しなくていいのですっごい便利なんですが、文字コードで少しはまってしまいました汗

環境は
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

| Linux::PHP | 05:38 PM | comments (1) | trackback (2) |
ライブカメラ(みえますねっとカメラ検索プログラム)
ライブカメラ設置して、気になるときに自宅の猫を見たいなぁって思ってカメラを探してましたにこっ

大きく分けると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 編集して下さい。 (実行時間設定)


| Linux::PHP | 09:35 PM | comments (1) | trackback (6) |
PAGE TOP ↑