プロが教えるわが家の防犯対策術!

下記のphpで
http://maps.google.co.jp/maps?num=100&hl=ja&q=%E …
%8D%83%E4%BB%A3%E7%94%B0%E5%8C%BA%E4%B9%9D%E6%AE%B5%E5%8D%97&lr=lang_ja&sa=N
&tab=wl&output=kml
を利用して緯度、経度を検索しています。
住所はjavascriptのプログラムからこのcgi
でqにセットされます。
しかし、urlは起動しますが。住所が文字バケしているのか緯度、経度がセットされない。
ただし、強制的に(住所$add2="神戸・・・・・・・・・"でセットして実行するとOKです。
$addをprintで表示すると正確にでます。
よろしくお願いします。

-----------------------------------
<html>
<head>
<meta http-equiv="content-type" content="text/html;charset=Shift_JIS">
<title>add.php</title>
</head>
<body>
<p>
<?php

$add =$_GET['q'];

$add2="神戸市・・・・・・・・・";

$hp1= "http://maps.google.co.jp/maps?num=100&hl=ja&q=";

$hp2 = "&lr=lang_ja&sa=N&tab=wl";


/*  $url =$hp1.$add2.$hp1."&ie=Shift_JIS"."&output=kml";
*/

$url =$hp1.$add.$hp1."&ie=Shift_JIS"."&output=kml";

header ( "Location: $url" );


?>
</p>
</body>
</html>

A 回答 (3件)

> 住所を受け取り、このCGIを起動すると、


> ”ファイルのダウンロードセクリティの警告”のメッセージがでます。
> その警告の枠の中には”このファイルを保存しますか。
> ”また 保存、キャンセルのボタンが表示される。

保存したものばかりを見ていたので、
そのようなダイアログが出たことを忘れていました。
確かに出ますね。
(Content-Typeがとかなってるからですね application/vnd.google-earth.kml+xml)

> 保存のボタンをクリックして、XMLファイルの保存がはじまります。
> つぎのプログラムでこのXMLを自動的に処理したいため、保存を自動化したいのです。

CGIがクライアント側にファイルを自動保存させるのは無理だと思います。
それを許せばトロイの木馬のような悪意あるプログラムを自動保存させられてしまうわけですから。
ブラウザを限定ししかもブラウザに危険な設定にするとか、そういう特殊な条件なら可能ですけど。

次のプログラムが何をするのか分からないので何ともいえませんが、
クライアントを指定したURLに飛ばすのではなく、
・CGIが内部でそのXMLを受信し、次の処理まで一括して行う
・AJAX技術を用いて全てクライアント側に行わせる
という方法が妥当であるように思います。
つまり、今とは別の方法を使うべきだと思います。
    • good
    • 0
この回答へのお礼

回答していただき誠にありがとうございます。
ご指摘のとうり別な方法でトライしてみます。
ご返事が遅れて申し訳ございません。

お礼日時:2006/08/09 09:47

最初の質問にあったURL


http://maps.google.co.jp/maps?num=100&hl=ja&q=%E …
%8D%83%E4%BB%A3%E7%94%B0%E5%8C%BA%E4%B9%9D%E6%AE%B5%E5%8D%97&lr=lang_ja&sa=N
&tab=wl&output=kml
だと、
<?xml version="1.0" encoding="UTF-8"?>
<kml xmlns="http://earth.google.com/kml/2.0">
<Placemark>
<name>日本東京都千代田区九段南</name>
<address>日本東京都千代田区九段南</address>
<styleUrl>root://styleMaps#default+nicon=0x304+hicon=0x314</styleUrl>
<Point>
<coordinates>139.742779,35.692413,0</coordinates>
</Point>
</Placemark>
</kml>
このようなXMLが返されるだけで、特に何も聞かれませんでした。
具体的には何をどうすればそのような状況(何か尋ねられる状況)になりますか?

この回答への補足

回答ありがとうございます。
住所を受け取り、このCGIを起動すると、”ファイルのダウンロードセクリティの警告”のメッセージがでます。その警告の枠の中には”このファイルを保存しますか。”また 保存、キャンセルのボタンが表示される。
保存のボタンをクリックして、XMLファイルの保存がはじまります。つぎのプログラムでこのXMLを自動的に処理したいため、保存を自動化したいのです。
緯度、経度を次のプログラムで使用するためです。
よろしくお願いします。

補足日時:2006/08/08 09:20
    • good
    • 0

$_GET['q']


で取得している住所文字列の文字コードがShift_JISじゃないんじゃないからだと思います。

この回答への補足

回答ありがとうございます。ご指摘どうり文字データが間違っていました。また、質問させてください。
このプログラムでは経度、緯度などXMLが出力される。
途中で保存、キャンセルの選択画面がでます。
その選択画面をパスして自動取り込みの方法はどうすればいいですか。
よろしくお願いします。

補足日時:2006/08/07 11:48
    • good
    • 0
この回答へのお礼

回答ありがとうございます。
早速、ご指摘のとうりためします。

お礼日時:2006/08/07 09:13

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