**[[続・質問箱/146]] [#o06637dc]
|RIGHT:70|LEFT:410|c
|~サマリ|編集者のIPを取りたい|
|~バージョン|1.4.3|
|~投稿者|[[TOMON]]|
|~状態|完了|
|~投稿日|&new{2004-05-06 (THU) 22:21:16};|
***質問 [#vf30d72f]
嵐が多くて困っています。
ページを編集した人のIPを記録するには
どうすればよいでしょうか。

***回答 [#v47446f3]
-[[reimy]] &new{2004-05-07 (FRI) 06:32:11};
~init.phpで
 // 初期設定 (サーバ変数)
 foreach (array('HTTP_USER_AGENT','PHP_SELF','SERVER_NAME','SERVER_SOFTWARE','SERVER_ADMIN','REMOTE_ADDR') as $key) {
	define($key,array_key_exists($key,$_SERVER) ? $_SERVER[$key] : '');
 }
というようにREMOTE_ADDRを追加し、file.phpのfunction page_writeの中で、REMOTE_ADDRの内容をファイル出力するように改造すれば、書き込みをした人のIPを記録することができます。
-[[TOMON]] &new{2004-05-08 (SAT) 11:48:10};
~file.phpの改造の仕方もお願い致します。
-[[名無しさん]] &new{2004-05-08 (SAT) 20:48:00};
~どのような形でファイル出力したいのかによって、改造の仕方はいくらでもあります。
 --- file.php.orig Sat Mar 20 22:43:58 2004
 +++ file.php      Sat May  8 20:47:20 2004
 @@ -54,6 +54,13 @@
  	
      // linkデータベースを更新
       links_update($page);
 +
 +    // REOMTE_ADDRのファイル書出し
 +    $fp = fopen(DATA_DIR.encode('iplog').'.txt', 'a');
 +    flock( $fp, LOCK_EX);
 +    fputs( $fp, '|'.date("r").'|'.REMOTE_ADDR.'|[['.$page."]]|\n");
 +    flock( $fp, LOCK_UN);
 +    fclose( $fp);
  }
  
  // ユーザ定義ルール(ソースを置換する)

例えば、こうすればページ'iplog'に日付、REMOTE_ADDR、編集ページ名
を追記していくようになります。'iplog'に対しては閲覧・編集制限を加えて
おくと良いでしょう。
~一応、例として書いてみましたが、使い勝手やプライバシポリシー等、よく考えてからやるべきです。
-[[TAMON]] &new{2004-05-09 (SUN) 15:10:27};
~txtファイルに出力したいのですが、どうすればよいのでしょうか。
-[[TOMON]] &new{2004-05-09 (SUN) 15:37:47};
~txtへの出力は自力でできました。
--[[reimy]] &new{2004-05-09 (SUN) 16:36:28};
~.htaccessで
 Order allow,deny
 Deny from all
を忘れずに。
-[[TOMON]] &new{2004-05-09 (SUN) 15:38:26};
~もう1つ質問ですが、ホストは取得できないのでしょうか。
-[[名無しさん]] &new{2004-05-09 (SUN) 16:12:19};
~もちろん出来る筈です。REMOTE_HOSTが取れないサーバ設定であっても、[[gethostbyaddr:http://jp.php.net/manual/ja/function.gethostbyaddr.php]]でREMOTE_ADDRから生成すれば良いでしょう。
~もはやPukiWikiの質問ではありませんね。
-[[TAMON]] &new{2004-05-09 (SUN) 23:06:24};
~皆さんありがとうございました。無事解決しました。

#comment


トップ   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS
Site admin: PukiWiki Development Team

PukiWiki 1.5.3+ © 2001-2020 PukiWiki Development Team. Powered by PHP 5.6.40-0+deb8u12. HTML convert time: 0.049 sec.

OSDN