**[[質問箱4/190]] [#i54289cb]
#author("2018-03-11T19:53:45+09:00;2009-09-07T00:45:13+09:00","","")
**[[質問箱/4190]] [#i54289cb]
|RIGHT:70|LEFT:410|c
|~カテゴリ||
|~サマリ|特定IPからのみ編集できるようにしたい|
|~バージョン|1.4.7_notb|
|~投稿者|[[double]]|
|~状態|完了|
|~投稿日|&new{2007-11-15 (木) 09:18:28};|
***質問 [#k72da221]
基本的に「閲覧のみ」として稼動させ、特定(1個)のIPからは認証することなく編集可能にさせたいと考えています。
どのようにしたら簡単でしょうか?
アドバイスお願いします。

***回答 [#v3b44f65]
- 試作ともいえないような物ですが。&br;lib/init.php のUserAgentの識別のところを、こんな感じにする。
 /////////////////////////////////////////////////
 // INI_FILE: $agents:  UserAgentの識別
 
 $ua = 'HTTP_USER_AGENT';
 $user_agent = $matches = array();
 
 $user_agent['agent'] = isset($_SERVER['HTTP_USER_AGENT']) ? $_SERVER['HTTP_USER_AGENT'] : '';
 unset(${$ua}, $_SERVER[$ua], $HTTP_SERVER_VARS[$ua], $ua);	// safety
 
 if ($_SERVER['REMOTE_ADDR'] == '127.0.0.1') { //IP を指定
 	$user_agent['profile'] = 'default';
 	$user_agent['name']    = 'local';	// device or browser name
 	$user_agent['vers']    = ''; // 's version
 } else {
 	foreach ($agents as $agent) {
 		if (preg_match($agent['pattern'], $user_agent['agent'], $matches)) {
 			$user_agent['profile'] = isset($agent['profile']) ? $agent['profile'] : '';
 			$user_agent['name']    = isset($matches[1]) ? $matches[1] : '';	// device or browser name
 			$user_agent['vers']    = isset($matches[2]) ? $matches[2] : ''; // 's version
 			break;
 		}
 	}
 }
 unset($agents, $matches);
昔、試しに作りかけた物なので、不都合があるかもしれません。&br;「IP を指定」とコメントしてあるところに、内部のIP を指定(&color(red){間違っても外部のIP を指定しないようにしてください};)。&br;特定以外は閲覧のみにしたいということなので、profile 名に内部用のプロファイルを指定して、そのプロファイルには
 define('PKWK_READONLY', 0);
を書いておく。pukiwiki.ini.php やindex.phpからは、PKWK_READONLY 定数の定義を消すかコメントアウト。&br;外部用のプロファイル(default.ini.php など)全部に
 define('PKWK_READONLY', 1);
を書いておくか、「UserAgentの識別」の最後に
 if (! defined('PKWK_READONLY'))
 	define('PKWK_READONLY', 1);
と書いておく。 --  &new{2007-11-15 (木) 19:38:55};
-- 作りかけなので、IP 1つしか指定できなかったりと、いろいろアレな部分満載です。もし使うのなら、ちゃんと、テストしてから実運用に入ってください。 --  &new{2007-11-15 (木) 19:38:55};
-- 書き忘れ。''自分がサーバ持ってないと上の方法は使えません''。その場合は、[[dev:BugTrack/744]] にある各関連リンク先を参照してください。 --  &new{2007-11-15 (木) 23:03:12};
- ありがとうございました。プロファイルを複数作り、それを読み分けるということを知りませんでした。おかげさまで制御が出来るようになりました。ありがとうございました。 -- [[double]] &new{2007-11-16 (金) 09:50:37};

//#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.072 sec.

OSDN