やりたいこととしては、モバイルサイトに携帯用のGoogleアナリティクスを設置して、

アクセス解析をしたいということです。

携帯の絵文字を共通させる機能を使って、1ページで3キャリア対応させているページになっているようです。
私自身が制作したページではなく、渡されて解析を仕込むことになったのですが、携帯版はPC版と違って、
いろいろと複雑なようで、上手く解析ができない状態ですが、急がなくてはならず困っております。

私自信PHPが分かるというわけではなく、HTMLを組むことはできますが、モバイルもあまり経験もなく、
WEB上で検索して見つかるエントリーを試していってはいるのですが、上手くいっておらず、
ご質問をさせていただければと思っております。

動かないときの状況として、
';?>という</body>の前の部分が表示されてしまったり、もしくは画像が表示されないなどの状況が起こっております。

詳細環境等ははてな日記にて記入しております。
必要であれば日記もしくは返信にて追記します。

http://d.hatena.ne.jp/tak7910/

回答の条件
  • URL必須
  • 1人5回まで
  • 13歳以上
  • 登録:2010/04/29 16:06:22
  • 終了:2010/05/06 16:10:02

ベストアンサー

id:tobeoscontinue No.5

tobeoscontinue回答回数212ベストアンサー獲得回数522010/04/30 12:33:36

ポイント18pt

PHPとして動いてないような気がします。

確かに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("&", "&amp;", $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

としてみて下さい。

http://hatena.com

その他の回答(5件)

id:koriki-kozou No.1

koriki-kozou回答回数480ベストアンサー獲得回数792010/04/29 16:18:44

ポイント19pt

一部が見えてしまっている原因は携帯電話側ではない

文字コードの問題がまず挙げられる


phpスクリプトファイルはサーバの仕様にあわせた形式で保存する必要がある

日記によると x-server のようなので

・文字コード EUC-JP

・改行コード LFのみ

としておく必要があるでしょう


URL必須に変わった(先ほど投稿しようとしたら全て消えた。悲しい)のでとりあえずエディタを書いておく

サクラエディタ

http://sakura-editor.sourceforge.net/

id:tak7910

ありがとうございます。

>一部が見えてしまっている原因は携帯電話側ではない

僕もそう思います。

一応エディタでEUC-JP

LFのみという

ことでファイルを保存して上げ直しました。

こちらMacしか今使えるPCがないため、Mac用のエディタを使用しているせいでしょうか。

やはり症状変わらずでした。

せっかくのアドバイスを無にしてしまったようで申し訳ございません。

http://www.kagua.biz/mobile/ga-ketai-kiso.html

こちらのサイト様からつまずきやすい部分っていうのは読んでたのですが、

PHPをHTMLで動かすという部分とga.phpのパスも合っているかが不安です。

2010/04/29 21:46:10
id:hanako393 No.2

hanako393回答回数1142ベストアンサー獲得回数872010/04/29 17:01:04

ポイント19pt

ヘッダーが妥当出ない可能性が高いです。

http://dspt.blog59.fc2.com/blog-entry-36.html

>モバイルサイトに携帯用のGoogleアナリティクスを設置して、

文字コードが重要だったはずです。

詳しくは、Googleの情報ページで確認してください。

id:tak7910

回答ありがとうございます。

1番の回答の方のご意見も文字コードだったので、やってみたのですが、

上手くいきませんでした。

私自身の知識不足であることは否めないので、回答をいただける方には

非常に申し訳なく思っております。

本当はやらないで済むのであれば助かるのですが、そうも言ってられなくて。

2010/04/29 22:41:52
id:tobeoscontinue No.3

tobeoscontinue回答回数212ベストアンサー獲得回数522010/04/29 22:37:38

ポイント18pt

ソースを見てみると

<?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";

だと思います。


http://q.hatena.ne.jp

id:tak7910

ありがとうございます。

</ppp>はきっとはてな日記への埋め込み方が悪かったせいだと思いますので、大丈夫です。

../は修正しました。

../は解析したい位置からの相対パスなのかと思ってしまって、そのようにしてみました。

解説いただいたおかげで、ga.phpのパスについては大丈夫だと思います。

しかし、</body>の直前に

$googleAnalyticsImageUrl = googleAnalyticsGetImageUrl();

echo '';?>

というコードを埋め込んでいるのですが、';?>の部分が一番下の帯より下に表示されてしまうので、

HTML上でPHPが上手く動いてなさそうな気がしています。

あくまで素人考えなので間違いなのかも知れませんが。

やはりヘッダーに

header("Content-type: application/xhtml+" );

を埋め込むだけではなくphp.iniなども弄る必要があるのでしょうか?

x-serverの旧サーバは.htaccessで対応するようですが、php.iniの設定は

探せましたが、.htaccessについてはわからずで。

ここで質問をしながら検索をずっとしてて、試したことが小出しになってしまって

申し訳ありません。

2010/04/29 22:54:08
id:tobeoscontinue No.4

tobeoscontinue回答回数212ベストアンサー獲得回数522010/04/30 00:06:54

ポイント18pt

検討が十分でありませんでした。二度目の回答ですみません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;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&amp;utmn=852875499&amp;utmr=-&amp;guid=ON"></body>
</html>
return str_replace("&", "&amp;", $url);
は必要が無いので
return $url;
とする。

echo '<img src="./' . $googleAnalyticsImageUrl . '">';?>

の./は余分なのでカット

echo '<img src="' . $googleAnalyticsImageUrl . '">';?>


>>';?>の部分が一番下の帯より下に表示されてしまう

?>はphpの一部なので本来は表示されないはずです。

中略している部分で""ゃ''の対応やエスケープに問題が無いか確認してみて下さい。


PCからのアクセスを許可しているのならブラウザーでソースを見ることでphpが動いているのかどうかは確認できます。

http://hatena.com

id:tak7910

aaaaaaa ';?>

返信が遅れてしまい、申し訳ございません。

試してみました。

試しに中略の部分を適当な文字列「aaaa」などに打ち変えて

きちんと表示されるか試したところやはり、';?>

が表示されてしまったので、PHPとして動いてないような気がします。

他のサイトで良く紹介されたコードで

$googleAnalyticsImageUrl = googleAnalyticsGetImageUrl();

?>

としてみるとリンク切れした画像が表示されていました。

2010/04/30 01:28:34
id:tobeoscontinue No.5

tobeoscontinue回答回数212ベストアンサー獲得回数522010/04/30 12:33:36ここでベストアンサー

ポイント18pt

PHPとして動いてないような気がします。

確かに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("&", "&amp;", $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

としてみて下さい。

http://hatena.com

id:dcm83491 No.6

気分やPenguin回答回数10ベストアンサー獲得回数22010/04/30 16:14:09

ポイント18pt

Google Analyticsのモバイル版はバグといってもいいものがかなり入っています。

私は、Perl版を使っていましたが、バグがあったので、修正して使っています。

http://nakawake.net/?p=1063

http://tech.lampetty.net/tech/index.php/archives/252

このあたりのサイトを参考にされてみては如何でしょうか?

「Google Analytics バグ」でググッてみると、結構対策が出てきますよ。

  • id:tobeoscontinue
    ご配慮いただきありがとうございました。m(__)m
    何度も回答し、遠回りしましたが最初におっしゃっていたようにphpが動いていなかったので
    htaccessの設定の
    AddType x-httpd-php .html

    AddType application/x-httpd-php .html
    とするだけでした。

    もう一つはxhtmlで記述しているので
    <img />のように閉じる必要があった。

    の2点です。

この質問への反応(ブックマークコメント)

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

絞り込み :
はてなココの「ともだち」を表示します。
回答リクエストを送信したユーザーはいません