アクセス解析をしたいということです。
携帯の絵文字を共通させる機能を使って、1ページで3キャリア対応させているページになっているようです。
私自身が制作したページではなく、渡されて解析を仕込むことになったのですが、携帯版はPC版と違って、
いろいろと複雑なようで、上手く解析ができない状態ですが、急がなくてはならず困っております。
私自信PHPが分かるというわけではなく、HTMLを組むことはできますが、モバイルもあまり経験もなく、
WEB上で検索して見つかるエントリーを試していってはいるのですが、上手くいっておらず、
ご質問をさせていただければと思っております。
動かないときの状況として、
';?>という</body>の前の部分が表示されてしまったり、もしくは画像が表示されないなどの状況が起こっております。
詳細環境等ははてな日記にて記入しております。
必要であれば日記もしくは返信にて追記します。
http://d.hatena.ne.jp/tak7910/
確かにPHPとして動いていない場合、おっしゃるように表示されました。失礼しました。
.htaccessの設定の
AddType x-httpd-php .html
を
AddType application/x-httpd-php .html
と変更して下さい。
また
header("Content-type: application/xhtml+xml" );
としているためにXMLパーサが動くようで前回
return $url;
とすると言ったのは間違いで
return str_replace("&", "&", $url);
と元のとうりにして下さい。
また<img>も<img />のように記述する必要があるので
echo '<img src="' . $googleAnalyticsImageUrl . '">';
は
echo '<img src="' . $googleAnalyticsImageUrl . '" />';
として下さい。
<img src="<?php echo $googleAnalyticsImageUrl ?>">
の方を使うなら同じように
<img src="<?php echo $googleAnalyticsImageUrl ?>" />
として下さい。
htdocsでのAddTypeの設定がどうなっているか不明ですが
AddType application/x-httpd-php .html
のような感じだとga.phpもphpとして動作しないかもしれません。
その場合は
AddType application/x-httpd-php .php
としてみて下さい。
一部が見えてしまっている原因は携帯電話側ではない
文字コードの問題がまず挙げられる
phpスクリプトファイルはサーバの仕様にあわせた形式で保存する必要がある
日記によると x-server のようなので
・文字コード EUC-JP
・改行コード LFのみ
としておく必要があるでしょう
URL必須に変わった(先ほど投稿しようとしたら全て消えた。悲しい)のでとりあえずエディタを書いておく
サクラエディタ
ヘッダーが妥当出ない可能性が高いです。
http://dspt.blog59.fc2.com/blog-entry-36.html
>モバイルサイトに携帯用のGoogleアナリティクスを設置して、
文字コードが重要だったはずです。
詳しくは、Googleの情報ページで確認してください。
回答ありがとうございます。
1番の回答の方のご意見も文字コードだったので、やってみたのですが、
上手くいきませんでした。
私自身の知識不足であることは否めないので、回答をいただける方には
非常に申し訳なく思っております。
本当はやらないで済むのであれば助かるのですが、そうも言ってられなくて。
ソースを見てみると
<?php</ppp> header("Content-type: application/xhtml+" ); <?php</ppp> $googleAnalyticsImageUrl = googleAnalyticsGetImageUrl();
のようになっています。
<?phpだけで</ppp>は余分ですので取り去って下さい。
$GA_PIXEL = "../ga.php";
だと
$url = "http://○○○.com/";
$url .= $GA_PIXEL . "?";
で
$url = "http://○○○.com/../ga.php?";
となります。ga.phpはhtdocsの直下だと思うので
$GA_PIXEL = "ga.php";
だと思います。
ありがとうございます。
</ppp>はきっとはてな日記への埋め込み方が悪かったせいだと思いますので、大丈夫です。
../は修正しました。
../は解析したい位置からの相対パスなのかと思ってしまって、そのようにしてみました。
解説いただいたおかげで、ga.phpのパスについては大丈夫だと思います。
しかし、</body>の直前に
$googleAnalyticsImageUrl = googleAnalyticsGetImageUrl();
echo '';?>
というコードを埋め込んでいるのですが、';?>の部分が一番下の帯より下に表示されてしまうので、
HTML上でPHPが上手く動いてなさそうな気がしています。
あくまで素人考えなので間違いなのかも知れませんが。
やはりヘッダーに
header("Content-type: application/xhtml+" );
を埋め込むだけではなくphp.iniなども弄る必要があるのでしょうか?
x-serverの旧サーバは.htaccessで対応するようですが、php.iniの設定は
探せましたが、.htaccessについてはわからずで。
ここで質問をしながら検索をずっとしてて、試したことが小出しになってしまって
申し訳ありません。
検討が十分でありませんでした。二度目の回答ですみませんorz。
<?php header("Content-type: application/xhtml+xml" ); // Copyright 2009 Google Inc. All Rights Reserved. $GA_ACCOUNT = "hoge"; $GA_PIXEL = "ga.php"; function googleAnalyticsGetImageUrl() { global $GA_ACCOUNT, $GA_PIXEL; $url = "http://hoge.com/"; $url .= $GA_PIXEL . "?"; $url .= "utmac=" . $GA_ACCOUNT; $url .= "&utmn=" . rand(0, 0x7fffffff); $referer = $_SERVER["HTTP_REFERER"]; $query = $_SERVER["QUERY_STRING"]; $path = $_SERVER["REQUEST_URI"]; if (empty($referer)) { $referer = "-"; } $url .= "&utmr=" . urlencode($referer); if (!empty($path)) { $url .= "&utmp=" . urlencode($path); } $url .= "&guid=ON"; return str_replace("&", "&amp;", $url); } ?> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <title>テスト</title> </head> <body> ===========中略====================== <?php $googleAnalyticsImageUrl = googleAnalyticsGetImageUrl(); echo '<img src="./' . $googleAnalyticsImageUrl . '">';?> </body> </html>
のようにすると下記の結果を得ました。
<html xmlns="http://www.w3.org/1999/xhtml"> <head> <title>テスト</title> </head> <body> ===========中略====================== <img src="./http://hoge.com/ga.php?utmac=hoge&utmn=852875499&utmr=-&guid=ON"></body> </html>
return str_replace("&", "&", $url); は必要が無いので return $url; とする。
の./は余分なのでカット
?>はphpの一部なので本来は表示されないはずです。
中略している部分で""ゃ''の対応やエスケープに問題が無いか確認してみて下さい。
PCからのアクセスを許可しているのならブラウザーでソースを見ることでphpが動いているのかどうかは確認できます。
aaaaaaa ';?>
返信が遅れてしまい、申し訳ございません。
試してみました。
試しに中略の部分を適当な文字列「aaaa」などに打ち変えて
きちんと表示されるか試したところやはり、';?>
が表示されてしまったので、PHPとして動いてないような気がします。
他のサイトで良く紹介されたコードで
$googleAnalyticsImageUrl = googleAnalyticsGetImageUrl();
?>
としてみるとリンク切れした画像が表示されていました。
確かにPHPとして動いていない場合、おっしゃるように表示されました。失礼しました。
.htaccessの設定の
AddType x-httpd-php .html
を
AddType application/x-httpd-php .html
と変更して下さい。
また
header("Content-type: application/xhtml+xml" );
としているためにXMLパーサが動くようで前回
return $url;
とすると言ったのは間違いで
return str_replace("&", "&", $url);
と元のとうりにして下さい。
また<img>も<img />のように記述する必要があるので
echo '<img src="' . $googleAnalyticsImageUrl . '">';
は
echo '<img src="' . $googleAnalyticsImageUrl . '" />';
として下さい。
<img src="<?php echo $googleAnalyticsImageUrl ?>">
の方を使うなら同じように
<img src="<?php echo $googleAnalyticsImageUrl ?>" />
として下さい。
htdocsでのAddTypeの設定がどうなっているか不明ですが
AddType application/x-httpd-php .html
のような感じだとga.phpもphpとして動作しないかもしれません。
その場合は
AddType application/x-httpd-php .php
としてみて下さい。
Google Analyticsのモバイル版はバグといってもいいものがかなり入っています。
私は、Perl版を使っていましたが、バグがあったので、修正して使っています。
http://tech.lampetty.net/tech/index.php/archives/252
このあたりのサイトを参考にされてみては如何でしょうか?
「Google Analytics バグ」でググッてみると、結構対策が出てきますよ。
ありがとうございます。
>一部が見えてしまっている原因は携帯電話側ではない
僕もそう思います。
一応エディタでEUC-JP
LFのみという
ことでファイルを保存して上げ直しました。
こちらMacしか今使えるPCがないため、Mac用のエディタを使用しているせいでしょうか。
やはり症状変わらずでした。
せっかくのアドバイスを無にしてしまったようで申し訳ございません。
http://www.kagua.biz/mobile/ga-ketai-kiso.html
こちらのサイト様からつまずきやすい部分っていうのは読んでたのですが、
PHPをHTMLで動かすという部分とga.phpのパスも合っているかが不安です。