書き込みを行った人のアドレスを記録するということはよく見られます。
また、まれによくない書き込みをされる方をブロックするためにIPを使うこともあります。
そんなことにも対応してみようと思います。
さて、この時点でデータベース設計上現れなかった項目の出現です。
今回の場合、「書き込みを行った人のアドレスを記録する」ということからpost_messageテーブルに
項目を追加します。
すでに作成されているテーブルに項目を追加するには、ALTER TABLE文を使用します。
MySQLでは、テーブルに定義されている項目の任意の場所に項目を追加することができます。
//最後に追加する場合 mysql>ALTER TABLE テーブル名 ADD 追加する項目名 型 [AFTER] //最初に追加する場合 mysql>ALTER TABLE テーブル名 ADD 追加する項目名 型 FIRST //場所を指定する場合 mysql>ALTER TABLE テーブル名 ADD 追加する項目名 型 AFTER 項目名
詳細は、SQLの方を参照してください。
今回は、最後に追加します。
mysql>ALTER TABLE post_message ADD client_ip char(8);
入れ物の準備はできたので、クライアントIPの取得方法です。
クライアントIPの取得には、環境変数REMOTE_ADDRを使用します。
この取得には、スーパーグローバル変数を使う方法と関数を使う方法があります。
$_SERVER['REMOTE_ADDR']又は$_ENV['REMOTE_ADDR']
getenv('REMOTE_ADDR')
function GetClientIP(){ if(empty($_ENV['REMOTE_ADDR'])){ if(empty($_SERVER['REMOTE_ADDR'])){ $client_ip = ""; } else{ $client_ip = $_SERVER['REMOTE_ADDR']; } } else{ $client_ip = $_ENV['REMOTE_ADDR']; } return $client_ip; } //又は $client_ip = getenv('REMOTE_ADDR');
こんなところでしょうか。
他にもProxy経由の場合、等の問題もありますがIPは取得できます。
Copyright 1997-2010 BBB All rights reserved.