** redirect.inc.php [#l3697b51] |RIGHT:100|LEFT:360|c |~サマリ|指定ページにリダイレクト(自動転送)するプラグイン| |~リビジョン|1.01| |~対応バージョン|1.4.x| |~投稿者|[[katamari]]| |~投稿日|&new{2005-01-16 (日) 21:57:04};| 指定ページにリダイレクト(自動転送)するプラグイン #contents *** 概要 [#d2af8171] n秒後に、指定したページに自動的に移動するプラグインです。 #redirect(移動先ページ名,待ち秒数) これを記述した部分は 例:&br; ''3'' 秒後に ''[[FrontPage]]'' に移動します。&br; (移動しない場合は、上のリンクをクリックしてください。) と出力され、待ち秒数経過後そのページにジャンプします。 →[[alias.inc.php との相違点>#rb9fe287]] *** ダウンロード [#u77991f2] &ref(redirect.inc.php-1_03); (右クリックで保存→"redirect.inc.php"にリネーム) *** 使用例 [#ra727b4d] 3秒後にFrontPageにジャンプします。 #redirect(FrontPage, 3) 食べ物/納豆 ページにジャンプします。秒数を省略すると、5秒後にジャンプします。 #redirect(食べ物/納豆) オプションを変更すると、外部にも自動転送することができます。プラグインファイル内の説明をよく読んで利用してください。 #redirect(http://google.co.jp,10,Google) *** 便利そうな使い方 [#id60aa05] 食べ物/納豆 というページで納豆について熱く語っていたとして、 かつ他のページ中の「納豆」という文字列に自動リンクさせたい場合、 +納豆というページを作って +そのページ #redirect(食べ物/納豆) と記述 すれば、納豆リンク→「納豆」ページ→「食べ物/納豆」ページと遷移させることができるようになります。 *** 注 [#tc226934] - &color(red){【重要】};プレビュー中も転送が有効になるので、(特に秒数を短く設定した場合)急いで更新してください(笑) - 移動にはJavascriptを使用しているので、Javascriptが無効な場合は移動しません。 *** 更新履歴 [#hee19c4b] - 1.03 (2005-01-18) -- XSS対応 -- 空白入りのページにジャンプできない障害に(ちゃんと)対応 -- 「0秒後にジャンプ」はできなくしました。 - 1.02 (2005-01-17) -- 空白入りのページにジャンプできない障害に(とりあえず)対応 -- 注釈つきで外部リンクを復活 - 1.01 (2005-01-16) -- 外部リンク機能、確かにおっかないので削除しました - 1.0 (2005-01-16) -- とりあえず新規作成 *** ライセンス [#e958e347] GPL *** alias.inc.php との違い [#rb9fe287] 同じようなプラグインとして [[alias.inc.php>自作プラグイン/alias.inc.php]]があります。&br; すいません、存在に気づかず同じようなプラグインを作ってしまいました。あほです(笑)気づいてればこれ作ってなかったかも。。。 違いは以下のような点です: - alias.inc.php は 埋め込み元ページが表示されず、一瞬で移動します。&br;redirect.inc.phpの場合、埋め込み元ページも表示され、移動までに待ち時間があります。 - alias.inc.php は基本的にどのようなブラウザでも動作するはずです。&br;redirect.inc.phpの場合、Javascriptで転送を実現しているので、ブラウザの環境によっては動作しない場合もあるかも。 *** コメント [#a7bb5c34] -[[alias.inc.php>自作プラグイン/alias.inc.php]]との違い(メリット/デメリット)を書いた方が良いかもしれません。あと、任意のURLに飛ばされてしまうのはかなり危険です。[[続・質問箱/521]]のブラクラのあたりが参考になるかもしれません(このプラグインを使っている他のPukiWikiサイトとの間で無限ループとかも可能に…)。 -- &new{2005-01-16 (日) 22:53:04}; --がーーん…alias.inc.phpの存在自体に気づいてなかったです。ありがとうございます。馬鹿すぎ>自分。とりあえず違う点を追記しておきます。 -- [[katamari]] &new{2005-01-16 (日) 23:01:47}; -外部リンク機能は使う可能性がなきにしもあらずなので、オプションでon/offを切り替えられるようにするといいかもしれません。 -- &new{2005-01-16 (日) 23:35:34}; -- 1.02で復活させてみました。 -- [[katamari]] &new{2005-01-17 (月) 07:15:00}; -alias.inc.phpの作成者です。こちらも今日ちょうどアップデートしてました(^^;。数秒待ってジャンプという需要も結構ありそうですね。ページ名を変更する時とか複数のページを1ページにまとめる時とかに 、元のページをいきなりrenameや削除をするんじゃなくて、しばらく共存させて変更をアナウンスするとか。 -- [[コチ]] &new{2005-01-17 (月) 00:27:50}; -- おお、そう言っていただけると救われます~。alias.inc.php を知ったときは、このページ消そうかと思ってしまいましたw -- [[katamari]] &new{2005-01-17 (月) 07:15:00}; -ページ名にスペースを入れているのですが、urlencode のせいで + になって失敗します。その urlencode ではなく、pukiwiki 用のURLエンコードをする関数を使わないといけないと思います。func.php の encode でしたっけ?あれ、% がないからちょっと違うか。まぁどこかにあったと思います。 -- &new{2005-01-17 (月) 04:32:59}; -- 「どこか」を探しきれなかったので、ちょとベタな対応しました(1.02)。とりあえず、空白, -, /, . はOKなことを確認しています。ほか不具合ありましたらお知らせくださいませ。 -- [[katamari]] &new{2005-01-17 (月) 07:15:00}; ---↓で指摘いただいたrawurlencode()にして確認したところ、これでOKっぽいです。(v.1.03) -- [[katamari]] &new{2005-01-18 (火) 00:40:29}; -''XSSの脆弱性があります''。それと、(あまり怖くはないですが)ジャンプ先に自身のページを指定できたり、ページA⇒ページB⇒ページAというようにジャンプ経路をループさせられたり、MenuBarでも使用できたりするようなので、現状では荒らしの手段になってしまうと思います((待ち時間の下限値を設定できるといいかも。))。&br;あと、エンコードについてはrawurlencode()を使うのが良いかと。それから、スキンが実行されるのはbodyがconvertされた後なのでmetaタグを動的に挿入できるんじゃないでしょうか。 -- &new{2005-01-17 (月) 18:48:33}; --ありがとうございますお恥ずかしいです。。。''v.1.03にてXSS対策をとりました''(HTMLサニタイズするようにしました)。荒らしについてですが、とりあえず0秒指定ではジャンプさせないようにしました。まあ1秒あれば何か対応できるかなぁと。あと、rawurlencode()ありがとうございます。metaタグてのは 'http-equiv=refresh'ですよね? Javascriptよりはそちらの方が堅そうですね。折を見て対応してみようかと思います。 -- [[katamari]] &new{2005-01-18 (火) 00:40:29}; -チャット的な掲示板を考えてまして、デフォルトで同じページをリロードするようにプラグインを改造したいのですが、どこを変更すれば良いでしょうか? -- sakai &new{2005-03-09 (水) 07:49:34}; --単に引数に自分のページ名を渡せば可能だと思いますが、更にそれをデフォルト動作にする必要があるのでしょうか? -- &new{2005-03-09 (水) 16:07:39}; --利用者に自由に会議室を開いていただこうと思っているのですが、他のページに跳んだり、更新時間を変更されることは避けたいのです -- sakai &new{2005-03-09 (水) 21:55:29}; --なるほど、そういうことであれば。~ 43行目付近を下のように修正。(15秒の例) - list($to, $sec, $page_name) = func_get_args(); - $to = htmlspecialchars($to); + $to = $page_name = $vars['page']; + $sec = 15; で、67,68行目を削除。 -<strong>$sec</strong> 秒後に <strong><a href="$redirect_to">$page_name</a></strong> に移動します。<br /> -(移動しない場合は、上のリンクをクリックしてください。)<br /> でどうでしょうか。作者さんではないので適当ですが。 --ありがとうございました。うまくいきました。 -- sakai &new{2005-03-11 (金) 00:57:40}; - 配布されているファイルのヘッダは1.02ですけど,中身は1.03なんですよね?~ 本ページ上部のリビジョンは1.01だったりですけど。。。 -- がこ &new{2006-09-16 (土) 09:17:12}; - zVCMSMHrwAtfcks -- [[Kevin]] &new{2009-05-19 (火) 01:07:44}; #comment //#comment