#author("2017-10-24T23:12:16+09:00","","")
#author("2017-10-24T23:12:24+09:00","","")
* [[Validator]]: 国際化ドメイン運用に不具合(trackback.php) [#h3cffc0c]

- ページ: [[BugTrack]]
- 投稿者: [[ko-zu]]
- 優先順位: 低
- 状態: 却下
- カテゴリー: 本体バグ
- 投稿日: 2006-01-16 (月) 00:24:05
- バージョン: 

** メッセージ [#e9442c5b]
国際化ドメイン名サイトで、trackbackを有効にすると、
Firefox1.5でページ末に -->が表示されてしまします。
//(IEでは何故か出ませんが…) <<XHTMLたいおうしてねーやんか 自ボケつっこみ

RDF定義中(<?-- -->の内部)で、
punycodeのxn%%%--h%%%ogehoge.comを不正なコメント終末と見なされるらしく、XHTML validatorにもこの点を怒られます。

現在pukiwiki.ini.phpに変数&#36;script_enc (ハイフンを数値参照化)
を作って、これをtrackback.php内にglobalで吸って表示させてます。

いちいちプラグインやライブラリ書き換えるか、func.phpでの対応が必要になると思いますが、
スキン作成にも波及しそうでしたので。

当方pukiwikiplus!1.4.6eucで運用中ですがpukieiki本家1.4.6で再現しました。


-応急処置の内容~
lib\trackback.php
 -	$_script = get_script_uri(); // Get absolute path
 +	$_script = str_replace('-','&#45;',get_script_uri()); // Get enceded path
ひとまずこれで良いはずです
//str_replaceなんて有ったんだ…

--------
- こんにちは :) [[IDN]]周りの話題ですか。そもそもの原因の部分ですが、「punycodeをXHTML validatorが怒る」、というのは、それぞれの仕様がバッティングしているという事を示しているのでしょうか? そんな気はしないので、仮になにかするなら上で言われているような回避策を(まずは必要に応じて、各自が)取るという事になるかもしれませんね。 -- [[henoheno]] &new{2006-01-16 (月) 22:32:19};
-- よろしければ、「validatorがどう言ったのか」「$script_encをどう生成したのか」を追記下さい。同じ事に悩んでいる人が助かると思います。 -- [[henoheno]] &new{2006-01-16 (月) 22:40:07};
- ひとまず回避策の内容のみ。後程完全にクリーンなページをつくってみます(ブラウザ保存+添付になると思いますが) -- [[ko-zu]] &new{2006-01-17 (火) 13:01:30};
-- あまりクリーンに出来なかったのですが、ひとまず再現取りました。添付できないようなので簡単に再現法を。(XHTMLファイルに落としてfirefoxに読ませても、同じ所を指摘されます。) どうにもXHTML仕様とバッティングしているような気がします。(XHTMLもpukiwikiの構成もほとんど無知なもので…スイマセン)  -- [[ko-zu]] &new{2006-01-17 (火) 18:52:16};

//#comment

--------
補足

-添付できないので再現法
++pukiwiki.ini.php内で、$scriptに適当なIDNを設定(punycodeなら何でもよい)
++同じく$trackbackを許可
++何処でもよいのでアップロード(設定したスクリプトパスでなくてもよい)
++firefoxでルートかFrontPageにアクセス。

-validatorの文句

-- Error  Line 93 column 29:
invalid comment declaration: found name start character outside comment but inside comment declaration.
 rdf:about="http://www.xn--hogehoge.jp/?FrontPage"
-- Info Line 88 column 0: 
comment declaration started here.
 <!--
-- Error Line 97 column 9:
end tag for element "rdf:RDF" which is not open.
 </rdf:RDF>
~The Validator found an end tag for the above element, but that element is not currently open. This is often caused by a leftover end tag from an element that was removed during editing, or by an implicitly closed element (if you have an error related to an element being used where it is not allowed, this is almost certainly the case). In the latter case this error will disappear as soon as you fix the original problem.
~If this error occured in a script section of your document, you should probably read this FAQ entry.

-自前処置
スキンでも必要だったので勝手に設定に突っ込みました。
今の所必要ないのでget_script_uriなどはいじってません...((組み込むならinit.phpかfunc.phpなどで初期化が必要?構成がよく分かってません…))
~なお$scriptを数値参照にしてしまうと、表示は大丈夫に見えても編集周りで不具合起きるので注意((urlencodeなどに$scriptごと渡されていたら即か…))~
pukiwiki.ini.php
 $script = 'http://xn--hogehoge.com/';     // の場合下を追加
 $script_enc = 'http://xn&#45;&#45;hogehoge.com/';  // - を &#45; に置き換える
((ハイフンはどちらか一方だけでも良いはずです))
~trackback.php (function tb_get_rdf)
 - $_script = get_script_uri(); // Get absolute path
 + global $script_enc;          // load var
 + $_script = $script_enc;      // Get encoded path

----
- 1.4.7_notbよりTrackback機能は削除されたので、Status:却下 としておきます -- [[umorigu]] &new{2017-10-24 (火) 23:12:24};

#comment

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

PukiWiki 1.5.4+ © 2001-2022 PukiWiki Development Team. Powered by PHP 8.2.12. HTML convert time: 0.111 sec.

SourceForge