Ajax と PHP を使ったチャレンジ & レスポンス方式のログイン認証

  http://www.jamesdam.com/ajax_login/login.html

  何もログイン認証まで Ajax を使わなくてもと個人的には思っているのだけど,
  これは,チャレンジ & レスポンスの部分でうまく Ajax を使っている.

  チャレンジコードをサーバから Ajax で取得してパスワードとの md5 ハッシュ値をサーバに送ることによって
  認証をしている.このため,パスワードそのものがネットワーク上に流れない仕組み.

- via: phpspot開発日誌
  http://phpspot.org/blog/archives/2006/02/ajaxphp_1.html

PHP 用 YAML パーサ spyc

  http://spyc.sourceforge.net/

  RoR 風味な PHP5 フレームワーク symfony でも採用されていて実績はありそう.
  YAML の読み込みと書き込みをサポート.よさげ.

Ajax と PHP を使ったチャット Shoutbox

  http://www.codepost.org/view/96

  これは面白い.
  入室,退室,リロードなどが全部 Ajax で実装されている.
  DB には MySQL を使っている.

- via: phpspot開発日誌
  http://phpspot.org/blog/archives/2006/02/ajaxphp_shoutbo.html

Michael J. Radwin による Yahoo! でカスタマイズされた Apache や PHP の資料

  http://public.yahoo.com/~radwin/

  Yahoo! でカスタマイズされたアプリケーションについての資料.
  PDF や PPT などでダウンロードできる.

  まとめは以下のリンクがおすすめ.PHP は Apache ほどカスタマイズされていない印象を受ける.

- Yahoo でカスタマイズされた apache のまとめ
  http://blog.bz2.jp/archives/2006/01/yahoo_apache.html

- Yahoo でカスタマイズされた PHP のまとめ
  http://blog.bz2.jp/archives/2006/01/yahoo_php.html

CAPTCHA (文字を歪ませた画像) を生成する PEAR パッケージ Text_CAPTCHA

  http://pear.php.net/package/Text_CAPTCHA

  オンラインのサービスなんかでよく見かける

この画像に表示されている文字を入力してください

  の画像を生成する PEAR パッケージ

  CAPTCHA

  このような画像を生成することが出来る.

  もちろん生成するだけでなく,入力した文字と画像に表示された文字が一致しているかも確認できる.
  仕組みはセッションを使っている.

  画像の背景色や文字の色などを変える方法は,パッケージをいじらなければいけないみたいなのでいまいち.
  alpha バージョンなので今後に期待しよう

フリーで読める PHP,Perl,XML,Web Services,LIPS,.NET などのオンライン書籍

  http://apress.com/free/

  • A Programmer's Introduction to PHP 4.0
  • Writing Perl Modules for CPAN
  • Google, Amazon, and Beyond: Creating and Consuming Web Services

  などが PDF で公開されている.

アップロードの進捗状況をプログレスバーでみることができる Mega Upload Progress Bar

  http://www.raditha.com/php/upload.php

  PHP,Perl,JSP から使うことができるファイル・アップローダ.
  ライセンスは Mozilla Public License 1.0 (MPL).

  Firefox で Tab Mix Plus などでウィンドウを常にタブで表示させている場合は挙動がおかしい.
  あと,インストールが面倒くさい.

- 進捗状況
  Mega Upload Progress Bar

- アップロード完了
  Mega Upload Progress Bar

PHP で書かれた Web ベースのカレンダーアプリケーション ExtCalendar 2

  http://sourceforge.net/projects/extcal

  

  インストールも超簡単.但し,ソースを展開するとカレントディレクトリにたくさん展開されるので注意.

% mkdir extcal
% tar -zxvf ../extcal2.0_b2.tar.gz
% chmod 0777 include upload

% mysql -uroot -p
mysql> CREATE DATABASE extcal;
mysql> GRANT ALL PRIVILEGES ON extcal.* TO ユーザ名@localhost IDENTIFIED BY 'パスワード';
mysql> GRANT ALL PRIVILEGES ON extcal.* TO ユーザ名@"%" IDENTIFIED BY 'パスワード';
mysql> FLUSH PRIVILEGES;

  これでブラウザから index.php にアクセスすれば設定画面が出る.
  [Settings] - [Environment Settings] - [Character encoding] を
  Japanese (euc-jp) にすれば,日本語での読み書きができる.

- via: しすろぐ
  http://www.fuji3.info/Hanamogera/PBLOG/article.php?id=631

PHP で WYSIWYG な編集ライブラリ FCKEditor

  http://www.fckeditor.net/

  

  どのツールバーを表示するとか設定できてかなりよさげ.

- WYSIWYGな編集をしよう
  http://wiki.poyo.jp/read/Writing/kiwameru_php_vol.1/wysiwyg-editor

Smary 2.6.10 以降の html_radios 関数で label タグの for 属性を設定する方法

  例えば,以下のようなコードがあったとして

<?php
$smarty->assign('cust_radios', array(
                               1000 => 'Johnson',
                               1001 => 'Smith'
                               );
$smarty->assign('customer_id', 1001);
?>


  テンプレートを以下のように記述する.

{html_radios name="id" options=$cust_radios selected=$customer_id}


  出力はこうなるはずだった.

<label for="id_1001"><input type="radio" name="id" value="1001" id="id_1001" checked="checked" />Johnson</label>
<label for="id_1002"><input type="radio" name="id" value="1002" id="id_1002" />Smith</label>


  ところが Smarty 2.6.10 以降,出力は以下のようになる.

<label><input type="radio" name="id" value="1001" checked="checked" />Johnson</label>
<label><input type="radio" name="id" value="1002" />Smith</label>


  これで,何が問題かというと,IE では Johnson や Smith をクリックしても,ラジオボタンは選択されない.
  Firefox や Opera などでは OK なのに.
  
  そこで Smarty 2.6.10 辺りから追加された label_ids オプションを使うと

{html_radios name="id" options=$cust_radios selected=$customer_id label_ids=true}


  ちゃんと,label タグに for 属性が付いて,IE でも選択できるようになった.

<label for="id_1001"><input type="radio" name="id" value="1001" id="id_1001" checked="checked" />Johnson</label>
<label for="id_1002"><input type="radio" name="id" value="1002" id="id_1002" />Smith</label>


  http://viewcvs.php.net/viewcvs.cgi/smarty/libs/plugins/function.html_radio ...