redirect.inc.php

サマリ指定ページにリダイレクト(自動転送)するプラグイン
リビジョン1.01
対応バージョン1.4.x
投稿者katamari
投稿日2005-01-16 (日) 21:57:04

指定ページにリダイレクト(自動転送)するプラグイン

概要

n秒後に、指定したページに自動的に移動するプラグインです。

#redirect(移動先ページ名,待ち秒数)

これを記述した部分は

例:
3 秒後に FrontPage に移動します。
(移動しない場合は、上のリンクをクリックしてください。)

と出力され、待ち秒数経過後そのページにジャンプします。

alias.inc.php との相違点

ダウンロード

fileredirect.inc.php-1_03 (右クリックで保存→"redirect.inc.php"にリネーム)

使用例

3秒後にFrontPageにジャンプします。

#redirect(FrontPage, 3)

食べ物/納豆 ページにジャンプします。秒数を省略すると、5秒後にジャンプします。

#redirect(食べ物/納豆)

オプションを変更すると、外部にも自動転送することができます。プラグインファイル内の説明をよく読んで利用してください。

#redirect(http://google.co.jp,10,Google)

便利そうな使い方

食べ物/納豆 というページで納豆について熱く語っていたとして、 かつ他のページ中の「納豆」という文字列に自動リンクさせたい場合、

  1. 納豆というページを作って
  2. そのページ #redirect(食べ物/納豆) と記述

すれば、納豆リンク→「納豆」ページ→「食べ物/納豆」ページと遷移させることができるようになります。

  • 【重要】プレビュー中も転送が有効になるので、(特に秒数を短く設定した場合)急いで更新してください(笑)
  • 移動にはJavascriptを使用しているので、Javascriptが無効な場合は移動しません。

更新履歴

  • 1.03 (2005-01-18)
    • XSS対応
    • 空白入りのページにジャンプできない障害に(ちゃんと)対応
    • 「0秒後にジャンプ」はできなくしました。
  • 1.02 (2005-01-17)
    • 空白入りのページにジャンプできない障害に(とりあえず)対応
    • 注釈つきで外部リンクを復活
  • 1.01 (2005-01-16)
    • 外部リンク機能、確かにおっかないので削除しました
  • 1.0 (2005-01-16)
    • とりあえず新規作成

ライセンス

GPL

alias.inc.php との違い

同じようなプラグインとして alias.inc.phpがあります。
すいません、存在に気づかず同じようなプラグインを作ってしまいました。あほです(笑)気づいてればこれ作ってなかったかも。。。

違いは以下のような点です:

  • alias.inc.php は 埋め込み元ページが表示されず、一瞬で移動します。
    redirect.inc.phpの場合、埋め込み元ページも表示され、移動までに待ち時間があります。
  • alias.inc.php は基本的にどのようなブラウザでも動作するはずです。
    redirect.inc.phpの場合、Javascriptで転送を実現しているので、ブラウザの環境によっては動作しない場合もあるかも。

コメント

  • alias.inc.phpとの違い(メリット/デメリット)を書いた方が良いかもしれません。あと、任意のURLに飛ばされてしまうのはかなり危険です。続・質問箱/521のブラクラのあたりが参考になるかもしれません(このプラグインを使っている他のPukiWikiサイトとの間で無限ループとかも可能に…)。 -- 2005-01-16 (日) 22:53:04
    • がーーん…alias.inc.phpの存在自体に気づいてなかったです。ありがとうございます。馬鹿すぎ>自分。とりあえず違う点を追記しておきます。 -- katamari 2005-01-16 (日) 23:01:47
  • 外部リンク機能は使う可能性がなきにしもあらずなので、オプションでon/offを切り替えられるようにするといいかもしれません。 -- 2005-01-16 (日) 23:35:34
    • 1.02で復活させてみました。 -- katamari 2005-01-17 (月) 07:15:00
  • alias.inc.phpの作成者です。こちらも今日ちょうどアップデートしてました(^^;。数秒待ってジャンプという需要も結構ありそうですね。ページ名を変更する時とか複数のページを1ページにまとめる時とかに 、元のページをいきなりrenameや削除をするんじゃなくて、しばらく共存させて変更をアナウンスするとか。 -- コチ 2005-01-17 (月) 00:27:50
    • おお、そう言っていただけると救われます~。alias.inc.php を知ったときは、このページ消そうかと思ってしまいましたw -- katamari 2005-01-17 (月) 07:15:00
  • ページ名にスペースを入れているのですが、urlencode のせいで + になって失敗します。その urlencode ではなく、pukiwiki 用のURLエンコードをする関数を使わないといけないと思います。func.php の encode でしたっけ?あれ、% がないからちょっと違うか。まぁどこかにあったと思います。 -- 2005-01-17 (月) 04:32:59
    • 「どこか」を探しきれなかったので、ちょとベタな対応しました(1.02)。とりあえず、空白, -, /, . はOKなことを確認しています。ほか不具合ありましたらお知らせくださいませ。 -- katamari 2005-01-17 (月) 07:15:00
      • ↓で指摘いただいたrawurlencode()にして確認したところ、これでOKっぽいです。(v.1.03) -- katamari 2005-01-18 (火) 00:40:29
  • XSSの脆弱性があります。それと、(あまり怖くはないですが)ジャンプ先に自身のページを指定できたり、ページA⇒ページB⇒ページAというようにジャンプ経路をループさせられたり、MenuBarでも使用できたりするようなので、現状では荒らしの手段になってしまうと思います*1
    あと、エンコードについてはrawurlencode()を使うのが良いかと。それから、スキンが実行されるのはbodyがconvertされた後なのでmetaタグを動的に挿入できるんじゃないでしょうか。 -- 2005-01-17 (月) 18:48:33
    • ありがとうございますお恥ずかしいです。。。v.1.03にてXSS対策をとりました(HTMLサニタイズするようにしました)。荒らしについてですが、とりあえず0秒指定ではジャンプさせないようにしました。まあ1秒あれば何か対応できるかなぁと。あと、rawurlencode()ありがとうございます。metaタグてのは 'http-equiv=refresh'ですよね? Javascriptよりはそちらの方が堅そうですね。折を見て対応してみようかと思います。 -- katamari 2005-01-18 (火) 00:40:29
  • チャット的な掲示板を考えてまして、デフォルトで同じページをリロードするようにプラグインを改造したいのですが、どこを変更すれば良いでしょうか? -- sakai 2005-03-09 (水) 07:49:34
    • 単に引数に自分のページ名を渡せば可能だと思いますが、更にそれをデフォルト動作にする必要があるのでしょうか? -- 2005-03-09 (水) 16:07:39
    • 利用者に自由に会議室を開いていただこうと思っているのですが、他のページに跳んだり、更新時間を変更されることは避けたいのです -- sakai 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 2005-03-11 (金) 00:57:40
  • 配布されているファイルのヘッダは1.02ですけど,中身は1.03なんですよね?
    本ページ上部のリビジョンは1.01だったりですけど。。。 -- がこ 2006-09-16 (土) 09:17:12

*1 待ち時間の下限値を設定できるといいかも。

添付ファイル: fileredirect.inc.php-1_03 3719件 [詳細] fileredirect.inc.php-1_02 925件 [詳細] fileredirect.inc.php-1_01 863件 [詳細] fileredirect.inc.php-1.00 738件 [詳細] fileredirect.inc.php-1_00 873件 [詳細] fileredirect.inc.php 856件 [詳細]

トップ   編集 凍結 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2009-05-19 (火) 01:12:18
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.332 sec.

OSDN