register_globals が On の環境でも Off と同様の状態にする方法

  http://www.asahi-net.or.jp/~wv7y-kmr/note/2005-12.html#YMD20051225_PHP_reg ...

  PHP 4.2.0 から register_globals は Off になっているのだけれども,
  古いスクリプトは register_globals が On であることを前提にかかれている場合も多い.
  実際,保守しているものの中にも多数ある.

  以下,上記サイトで公開されている関数を使用することでグローバル変数の汚染については回避できそう.

<?php

function unset_register_globals()
{
    // register_globals が有効でない場合は以降の処理は行わない
    if ( ini_get( 'register_globals' ) ) {
        return;
    }
    // $_REQUEST に GLOBALS が含まれている場合はグローバル変数が上書きされる可能性があるため、処理を終了
    if ( isset( $_REQUEST['GLOBALS'] ) ) {
        exit( 'GLOBALS overwrite attempt detected' );
    }
    // 削除しないグローバル変数名をキーとした配列を作成
    $no_unset = array( 'GLOBALS'  => '', '_GET'    => '', '_POST' => '', '_COOKIE' => '',
                      '_REQUEST'  => '', '_SERVER' => '', '_ENV'  => '', '_FILES'  => '' );

    // グローバル変数として登録される変数名をキーにした配列を作成
    $input = array_merge( $_GET, $_POST, $_COOKIE, $_SERVER, $_ENV, $_FILES,
                          isset( $_SESSION ) ? (array)$_SESSION : array() );

    // 登録されたグローバル変数を削除
    foreach ( array_keys( $input ) as $k ) {
        if ( ! isset( $no_unset[$k] ) && isset( $GLOBALS[$k] ) ) {
            unset( $GLOBALS[$k] );
        }
    }
}
unset_register_globals();

?>

PHP で角丸枠 (CSS) を簡単に作る方法

- PhpMyBorder - add round corners by CSS
  http://www.phpmyborder.com/

<?php
require_once 'phpMyBorder2.class.php';
$pmb = new PhpMyBorder();
echo $pmb->begin_round('260px', 'DDDDFF', '78AAFF');
?>

ここに枠内に入れるコンテンツを書く

<?php
echo $pmb->end_round();
?>


  こりゃ便利.

- via: PHPSPOT 開発日誌
  http://phpspot.org/blog/archives/2005/12/phpcss.html

PHP で出来たターミナルエミュレーター

  http://phpterm.sourceforge.net/

  PHPTerm

  セキュリティに不安はあるものの,なかなか便利かも.
  Web サーバの権限で動いているので cp したりするには Web サーバの書き込み権限が必要.

- via: PHPSPOT 開発日誌
  http://phpspot.org/blog/archives/2005/12/php_phpterm.html

HTTP ヘッダに含まれる「X-Powered-By」を隠蔽する

  http://kikuz0u.x0.com/memo/hiki.cgi?php%A5%D5%A5%A1%A5%A4%A5%EB%A4%CE%B1%F ...

  php.ini に

expose_php = Off

  設定すればよろし.

PHP 5.1 へのアップグレード手順

  http://www.m-takagi.org/docs/php/README_UPGRADE_51.ja.html

- PHP: UPGRADE NOTES - PHP 5.1
  http://www.php.net/README_UPGRADE_51.php

  ぼちぼち触っていかなければ.

Zend Framework の概要についてのプレゼン資料

  http://www.phparch.com/webcasts/recordings/dec0205_zend.php

  10 月末に発表があった Zend Framework のプレゼンか?
  とりあえず,時間のあるときに.

- via: phpspot 開発日誌
  http://phpspot.org/blog/archives/2005/12/zend_framework.html

Essential PHP Security のサポートサイト

  http://phpsecurity.org/

  正誤表とかサンプルコードとか.

- Essential PHP Security
  059600656X
  http://www.amazon.co.jp/o/ASIN/059600656X/todaysnonsenc-22/ref=nosim/
  Chris Shiflett (著)
  Oreilly & Associates Inc
  ISBN: 059600656X
  2005/11
  3,161 円

- via: Sooey
  http://www.sooey.com/journal/2005/12/07/72/

PHP Hacks

  0596101392
  http://www.amazon.co.jp/o/ASIN/0596101392/todaysnonsenc-22/ref=nosim/
  Jack Herrington (著)
  Oreilly & Associates Inc
  ISBN: 0596101392
  2005/12
  3,161 円

PHP で使える RSS パーサー MagpieRSS

  http://magpierss.sourceforge.net/

PHP でリモートの RSS を取得、解析、そしてキャッシュまで全部やってくれる。RSS0.9 と RSS1.0 に対応。

- via: MagpieRSS - PHP で使える RSS パーサー。
  http://www.hyuki.com/yukiwiki/wiki.cgi?MagpieRSS

PHP から動画のサムネイルイメージを生成する ffmpeg-php

  http://ffmpeg-php.sourceforge.net/

  ファイルフォーマットは mov,avi,mpg,wmv などかなり多岐にわたって対応している.

- via: PHPSPOT 開発日誌
  http://phpspot.org/blog/archives/2005/11/php_ffmpegphp.html