質問箱/4217

カテゴリ
サマリRefererによってPKWK_READONLYの値を0にしたい
バージョン1.47
投稿者
状態質問
投稿日2008-01-09 (水) 12:54:48

質問

現在、define('PKWK_READONLY', 1);で運用しています。

特定のサイトからリンクされてきた場合にのみ、 define('PKWK_READONLY', 0); にしたいのですが、どのようにすればよいでしょうか?

回答

  • define('PKWK_READONLY', 1); している箇所で _SERVER["HTTP_REFERER"] 変数を判定すれば質問されている内容の事は実現できますが、たぶん質問者が期待する動作にはならないと思います。 -- 2008-01-09 (水) 21:42:39
    • 期待している動作は、特定のサイトから遷移した時のみ更新を可能にしたいということだと思いますが、Referer のみでの判定では最初のページのみREADONLY=0になりますが、そのページ内の[編集]をクリックしたときはRefererが変わってしまいREADONLY=1に戻ってしまいます。
    • 特定のサイトから遷移したという情報をセッションに保持し、それが有効である間はREADONLY=0にするという改造で実現可能かな…
  • セッション管理で試して見ようと、こんな風に書いてみたのですが、「編集」をクリックしたり、commentプラグインから書き込むとPKWK_READONLY prohibits editingと表示されてしまいました。 -- 2008-01-10 (木) 12:58:20
$ref_read_only = $_SERVER['HTTP_REFERER'];
if (preg_match('/http:\/\/127.0.0.1\/ref_test.htm/i', $ref_read_only))
  { session_name('REF_READ_ONLY');
    session_cache_limiter('private');
    session_cache_expire(60);
    session_start();
    if (! defined('PKWK_READONLY'))
    define('PKWK_READONLY', 0);
   }
else
  { if (! defined('PKWK_READONLY'))
    define('PKWK_READONLY', 1);
   }
  • 色々悩んで試して挫折しました。とりあえず考えるのを無期延期する事にします。 -- 2008-01-18 (金) 12:49:43
$ref_session = $_SERVER['HTTP_REFERER']; //リファラ取得
 if (preg_match('/http:\/\/127.0.0.1\/ref_session\/session_test/i', $ref_session) || $_SESSION["s_ref_session"])
   {
    session_cache_limiter('private');
    session_start();
  if ($ref_session)
     { $_SESSION["s_ref_session"]=$ref_session; } // セッション変数の登録 

  if (! defined('PKWK_READONLY'))
      define('PKWK_READONLY', 0);
   }
else
  { if (! defined('PKWK_READONLY'))
    define('PKWK_READONLY', 1);
   }
  • ↑私が根本的にsessionの事を誤解してるのかも・・・ -- 2008-01-18 (金) 12:52:28


トップ   編集 凍結 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2008-01-18 (金) 12:52:28
Site admin: PukiWiki Development Team

PukiWiki 1.5.2+ © 2001-2019 PukiWiki Development Team. Powered by PHP 5.6.40-0+deb8u7. HTML convert time: 0.277 sec.

OSDN