アクセスアナライザーについての質問です

[統計] HTMLからXHTMLへの移行を進めていますか?



0   名前: shima : 2007/03/18(日) 17:24  ID:4UoHVXlb sub-Ds
http://www.tagindex.com/cgi-lib/bbs/patio.cgi?mode=view&no=232
こちらで、ここで質問するようにご指導を受けたので、ここにて質問させていただきます。

アクセスアナライザーのPHPへの導入についての質問です。

私のホームページでは、PHPを利用しているのですが、
そのPHP内にアクセスアナライザーのタグを入力しようと思い、以下のように記入してみたのですが、どうもエラーが起こってしまいます。

$html .= "<script type=\"text/javascript\"><!--\n";
$html .= "var ID=\"000000000\";\n";
$html .= "var AD=0;\n";
$html .= "var FRAME=0;\n";
$html .= "// --></script>\n";
$html .= "<script src=\"http://j1.ax.xrea.com/l.j?id=100730370\" type=\"text/javascript\"></script>\n";
$html .= "<noscript>\n";
$html .= "</body>\n";


おそらく、「AD=0」や「FRAME=0」の後のセミコロンが問題なのでしょうが、代わりにどう記述すればよいのかわかりません。
どなたか、解決方法をご存知ないでしょうか?

どうぞ、よろしくお願いいたしますm(_ _)m

1   名前: miz : 2007/03/18(日) 17:24  ID:soQ6XG4s sub-Ds
php 構文としてエラーがあるようには見えませんが?
出力後のJavaScript としては、以下のコメントと閉じタグを一行に書くと、エラーになるブラウザもあったような???
// --></script>

あと、些末事ではあるけどnoscript に続く内容と閉じタグがありませんけど?省略してる?
まずは、エラーがどこで(phpのエラーなのか、JavaScriptのエラーなのか)どんな内容で出ているのかを把握するのが先決でしょうね。

2   名前: shima : 2007/03/18(日) 17:24  ID:4UoHVXlb sub-Ds
mizさん、お返事有難うございます。

おそらく、エラーは

$html .= "<script type=\"text/javascript\"><!--\n";
$html .= "var ID=\"000000000\";\n";
$html .= "var AD=0;\n";
$html .= "var FRAME=0;\n";
$html .= "// --></script>\n";

の、「AD=0」や「FRAME=0」のあとのセミコロンが原因だと思います。

JavaScriptのエラーではなく、PHPのエラーが原因です。
(閉めタグについては、ミスです。。)

どなたか、PHPの知識のある方、よろしくお願いします。

3   名前: 匿名 : 2007/03/18(日) 17:24  ID:WrxlkEBt sub-L2
> JavaScriptのエラーではなく、PHPのエラーが原因です。

エラーメッセージくらい見せてよ。それと、コードを提示するときは、エラーが再現できるように書くんだ。本当に >>0「だけ」で、間違いなくエラーが出るんだね?

# おそらく別の所にエラーがあると推測(printf 付近か?)。

4   名前: 匿名 : 2007/03/18(日) 17:24  ID:uUG.oVaJ sub-Cl
原因箇所を断言していらっしゃいますが、原因を切り分けて検証されましたか?
したのならそのことを言わないと、検証する側の人はそこも疑うのは当然です。

まずは普通に問題の部分を、PHPを使って書き出さずに
<script type="text/javascript"><!--
var ID="000000000";
var AD=0;
FRAME=0;
// --></script>
<script src="http://j1.ax.xrea.com/l.j?id=100730370" type="text/javascript"></script>
<noscript>
</body>

と記述した状態で、問題なく動きましたか?

PHPを利用してJavaScriptを書き出したことはありますが、特につまづくことなく書き出せた記憶がありますので、「;」が原因という確率は低いように思います。

5   名前: shima : 2007/03/18(日) 17:24  ID:4UoHVXlb sub-Ds
お返事有難うございます。


>エラーメッセージくらい見せてよ。それと、コードを提示するときは、エラーが再現できるように書くんだ。本当に >>0「だけ」で、間違いなくエラーが出るんだね?

エラーメッセージが出てこないで、代わりに画面が真っ白になるのです・・・。
ただ、この部分の記述だけをスクリプトから取り除いたときには正常にプログラムが動作したので、この部分の記述が問題だと判断しました。


>原因箇所を断言していらっしゃいますが、原因を切り分けて検証されましたか?
>したのならそのことを言わないと、検証する側の人はそこも疑うのは当然です。

大変失礼いたしました。
PHPを用いずに、普通のHTMLのみで構成されているページでは問題なく動作しました。


>PHPを利用してJavaScriptを書き出したことはありますが、特につまづくことなく書き出せた記憶がありますので、「;」が原因という確率は低いように思います。

私の場合は、これとは違う、セミコロンの入っていないJavaScriptのコード(いくつかあるのですが)は正常に動作しました。
なので、セミコロンが原因なのかなぁ・・・と考えました。


アドバイスよろしくお願いします。

6   名前: 匿名 : 2007/03/18(日) 17:24  ID:uUG.oVaJ sub-Cl
>0 で提示されたソースを、IDのみ変更して他はそっくりそのまま利用して動作確認しましたが、問題なく表示されました。(PHP5)
なので他の部分で何か問題があるのだと思われます。

これ以上は、差し支えない範囲で症状が再現できるソースを提示していただかないことには・・・


その場凌ぎな方法ですが1つ提案。

>PHPを用いずに、普通のHTMLのみで構成されているページでは問題なく動作しました。
>この部分の記述だけをスクリプトから取り除いたときには正常にプログラムが動作した

ということでしたので、そこだけHTMLで記述してしまうことがPHPの構成的に可能ならば、そうしてしまうのはいかがでしょうか。

7   名前: 匿名 : 2007/03/18(日) 17:24  ID:zVbAQGuv sub-kJ
>>5
> この部分の記述だけをスクリプトから取り除いたときには正常にプログラムが動作したので

それは、その部分に原因がある証拠にはならない。そのデータを処理する段階で初めてエラーが発生することもあるのだから。

> セミコロンの入っていないJavaScriptのコード(いくつかあるのですが)は正常に動作しました

全然関係ない。そもそも JavaScript では、改行がセミコロンの補完をしてくれる。

と言うわけで、もういっそ PHP コードを全部提示した方が早い。

8   名前: shima : 2007/03/18(日) 17:24  ID:4UoHVXlb sub-Ds
7. 名前: 匿名 [ 2007/03/16(金) 20:33 ] UA - ID:zVbAQGuv sub-kJ
>全然関係ない。そもそも JavaScript では、改行がセミコロンの補完をしてくれる。

JavaScriptでは、改行がセミコロンを補完してくれるということなので、
<script type="text/javascript"><!--
var ID="000000000"
var AD=0
FRAME=0
// --></script>

として、テストしてみた結果、正常に動作致しました。

みなさん、どうもありがとうございました。

9   名前: 匿名 : 2007/03/18(日) 17:24  ID:zVbAQGuv sub-kJ
>>8
だから、何で出力部分のコードを提示しないのか。ほぼ確実に PHP での出力処理にミスがある。

それと、いくら補完してくれるとは言え、JavaScript でのセミコロンの省略は行儀が悪い。お勧めしない。

一覧へ戻る