** 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

トップ   編集 差分 履歴 添付 複製 名前変更 リロード   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS
Site admin: PukiWiki Development Team

PukiWiki 1.5.4+ © 2001-2022 PukiWiki Development Team. Powered by PHP 5.6.40-0+deb8u12. HTML convert time: 0.044 sec.

OSDN