ざっと見てみましたが、「セキュリティ以前の問題」と言わざるを得ません。テストはどの程度されたのでしょうか。
たとえば、パスワードは6文字以上のチェックをしていますが、6文字未満でも登録できてしまいます。その理由は、入力値のチェックをしているtest2.phpを通らないからです。
また、再入力したパスワードの一致も同様の理由でチェックされていません。
test.php の以下の部分ですが、
PHP
1 <p>パスワード再入力<span class="red">*</span><input type="password" name="password2″ style="width:150px"></p>
name="password2 の後ろは全角のダブルクォートになっています。入力値チェックがあれば常にエラーになるはずですが、入力値チェックが走らないので、登録できる状態になっています。
これらをテストするのは、やる気さえあれば簡単です。
- 6文字未満のパスワードで登録してみる
- わざとパスワード確認欄に別のパスワードを入力して登録してみる
とくに専門的な知識がなくてもできる内容です。
また、ログアウト処理は何もしていないので、ログアウトした後ブラウザの戻るボタンでログイン状態が再開します。
ログインIDの重複をチェックしていません。同名のログインIDが作れるのは一種の脆弱性です。
有名な脆弱性としては、「セッションIDの固定化」があります。この名前で検索すると記事はいくらでも出てくるので説明は割愛します。
また、POSTパラメータをいったん$_SESSIONにすべて放り込んでいますが、やめるべきです。セッション変数は漏洩しやすいですし、パスワードをセッション変数に登録するということは、「パスワードを平文で保存している」ことになります。
ということで、レビューに掛ける前に、まず自分自身でできるテストは入念にすることをおすすめします。