アプリ版:「スタンプのみでお礼する」機能のリリースについて

ご質問です。

モバイルサイトで、ドコモの対応のために「.htaccess」で「AddType application/xhtml+xml .htm .html」を設定していました。
問題なく稼動していましたが、アクセス解析のために「PHP」を動かせるようにする必要がでたため、xhtml内で「<?php print "<?xml version=\"1.0\" encoding=\"Shift_JIS\"?>"; ?>」を記述し、「.htaccess」に「AddType application/x-httpd-php .html」を追加しました。

「.htaccess」には下記のように記述されています。

AddTypeapplication/x-httpd-php .html

AddType application/xhtml+xml .htm .html

しかしこれでは、「PHP」がうまく動かず、

AddType application/xhtml+xml .htm .html

AddTypeapplication/x-httpd-php .html

の順で記述すると「xhtml」がおかしくなります。

調べていると「.htaccessではAddTypeapplication/x-httpd-php .htmlだけ記述し、HTTPヘッダでMIMEタイプを指定するためにPHPにて、header()関数で指定する」とありました。↓
header("Content-type: application/xhtml+xml" );

しかし、どこにどう記述してよいのかわからないでいます。
動かしたい「PHP」の内容は以下の通りです。

<?php
function rt_tag($aqid){
$ref = getenv('HTTP_REFERER');
$ref = urlencode($ref);
$my_url = urlencode("//".getenv('SERVER_NAME').getenv('SCRIPT_NAME'));
if (!empty($my_url)) $rt_param[] = "/2=$my_url";
if (!empty($ref)) $rt_param[] = "/4=$ref";
$tag = "<img src=\"http://t7.aqtracker.com/cgi-bin/asp/tagx/h/$aqid";
foreach ($rt_param as $val) $tag .= $val;
$tag .= "/blank.gif?guid=on\">";
echo $tag;
}
$_aqid = "5T555ELHERSGN664E86A";
rt_tag($_aqid);
?>

どう記述を追加すればよいのか教えてくださいますか?
またこれでやりたいことはできるのでしょうか?

よろしくお願い致します。

A 回答 (1件)

header関数は、原則的にあらゆる出力より前にコールされる必要があります。


参考: http://www.php.net/manual/ja/function.header.php

逆にいえば、出力が開始される前ならどこに記述しても大丈夫です。
どのように記述するかですが、これは質問内容にある内容のままプログラムに挿入すればよいです。

この回答への補足

ありがとうございました。

その後数日の間、検証してみましたが問題なく稼動しているようです。
ちなみに「body」タグのすぐ下に
<?php
header("Content-type: application/xhtml+xml" );
?>
としておいて、そこからXHTMLでコンテンツを組み「/body」の直前の「div」
タグの中に
<?php
function rt_tag($aqid){
$ref = getenv('HTTP_REFERER');
$ref = urlencode($ref);
$my_url = urlencode("//".getenv('SERVER_NAME').getenv('SCRIPT_NAME'));
if (!empty($my_url)) $rt_param[] = "/2=$my_url";
if (!empty($ref)) $rt_param[] = "/4=$ref";
$tag = "<img src=\"​http://t7.aqtracker.com/cgi-bin/asp/tagx/h/$aqid";
foreach ($rt_param as $val) $tag .= $val;
$tag .= "/blank.gif?guid=on\">";
echo $tag;
}
$_aqid = "5T555ELHERSGN664E86A";
rt_tag($_aqid);
?>

<?php
$UH2url = '​http://b01.ugo2.jp/?u=5015024&amp;h=6b8f46&amp;u …
$UH2url .= urlencode(isset($_SERVER['HTTP_REFERER'])?$_SERVER['HTTP_REFERER']:'').'|Az|'.(int)($_SERVER['SERVER_PORT']);
$UH2url .= '|'.urlencode($_SERVER['HTTP_HOST']).'|'.urlencode($_SERVER['REQUEST_URI']);
$UH2url .= '|H|&amp;ch=SJIS&amp;sb='.urlencode('[ドイツ式フットケアサロンのボディキューブ]');
print '<img src="'.$UH2url.'" alt="携帯アクセス解析" width="1" height="1" border="0" />';
?>

とふたつ「PHP」のプログラムを入れましたがアクセス解析は問題なく動いています。
こういったやり方は問題ないのでしょうか?

稼動しているとはいえちょっと心配です。

他にいい方法があれば教えていただけますでしょうか?

よろしくお願い致します。

補足日時:2009/10/22 16:36
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!