X

Programming

PHP 5.1でgoto!?

なんだかPHP 4.4ブランチが出来たりして??と思っていたところ「goto文をPHP 5.1で!」と言う事でinternals@lists.php.netが盛り上がっています。 goto文が無くて困ることは無いのですが、あって困る事は沢山あります。自分だけがコードを書くわけではありませんしgoto文の乱用は簡単です。しかし、今まで無くて困らなかったのに何故…

session_regenerate_id()

前にこの関数の仕様はちょっと... と書いたのですがPHP 5.1から普通の関数になります。 # セッションデータも削除できるようになります。 - Added an optional remove old session parameter to session_regenerate_id()

allow_url_fopenは無効に設定

Webサイト構築で注意しなければならない箇所は決まりきっています。PHPのiniオプションでかなり危険な設定ですがデフォルトで有効かつシステムレベルでのみ設定変更可能なiniディレクティブ、allow_url_fopenがその内の一つです。 このオプションが有効な場合、ほとんど全てのファイル関数でローカルファイル以外にURL(HTTP、FTP)を利用しリモー…

session_regenerate_idの使い方に注意!

久しぶりにPHP-users MLを見るとsession_regenerate_id関数が「古いセッションIDに関連したセッション情報を削除しないのは困るよね」と投稿がありました。 バグレポートではBogus(バグじゃない)というステータスになっていました。確かにsession_regenerate_id関数は新しいセッションIDを生成する為の関数として追加…

PHPポケットリファレンスの改訂版にご意見ください

PHP5に対応したPHPポケットリファレンスの改訂版を執筆中です。アマゾンのレビューでは「サンプルスクリプトがサンプルになってない」と指摘も頂いています。 Wikiにも書いたとおり、サンプルスクリプトらしいコードを目指して書いていません。PHPは言語仕様と同じく関数仕様の記述も結構曖昧なこともあり、結局どういった入力の時にどのような動作や戻り値になるのか実行…

はじめてのPHP言語プログラミング

まえにも書きましたが「はじめてのPHP言語プログラミング」という本を書きました。5月10日発行となっていますが、昨日からアマゾンでも買えるようになったようです。 Webサイトを作る為の入門書ではなく、PHPを習得する為の入門書として書いたつもりです。思い切って解説なしの部分も多々ありますが、プログラム経験者の方でこれからPHPを習得する方には適している本にな…

はじめてのPHP言語プログラミング

まだいつ発売になるか私も知りませんが「はじめてのPHP言語プログラミング」(技術評論社)というタイトルでPHP入門書を書きました。4月末から5月に書店に並ぶと思います。 Webサイト構築の為の入門書ではなくプログラミング言語の入門書、読み終わった後もリファレンスとして使える本になるように書いたつもりです。どちらかと言うと既にプログラミング言語を習得されてPH…

PHPで巨大ファイル

PHPで巨大なファイルを取り扱うことが出来るか下調べしました。PHP内部的にPHPストリームと言う仕組でファイル等を取り扱う事が可能になっているのですが、ファイルヘのアクセスに符号付き32bit整数を使っています。このため扱えるファイルサイズが2GBに制限されています。 タイムリーな事にPHP-INTERNALメールリストでPHPストリームのコードを書いたW…

HTTP Response Splitting Attack: PHPの場合

ここの日記にも書いたHTTP Response Splitting Attackの対策がPHPでも取られるようです。 header("bad-header: This is bad header\r\n but having CR/LF in a haeder is allowed by the standard in some case."); 上記のヘッ…

「まるごとPHP」

最初のセクションの部分に「まるごとPHP」著者の一人である月宮さんがツッコミを入れられてますね。ちょっと辛口のコメントです。初心者向けに記述するのは難しいですね。私も気を付けないと... (私も「まるごとPHP」にセキュリティー関係でほんの少しだけ書いています) 月宮さんの日記のコメントにも書きましたが、PHPでは明示的にリソース(DB接続・ファイル)や変数…