2011-10-24 12 views
0

私は誰かが私がデータベースに入れたいgoogle maps(html)のURLを投稿できるフォームフィールドを持っています。それから私はそれを取得して、自分のページにHTML埋め込みマップを直接使用します。php:データベースにGoogleマップのURLを入力する

a)$ _POSTが最初の場所でデータを誤って処理しているかわかりません。 b)私は長い時間を保存するための最良の方法がわかりません。このようなURLはmySQLにあります

データベースのエントリは問題ありませんが、すべてではありません。それはどこに細かくなっているかわからない。

<p class="form-title">Google map link</p> 
<textarea id="map_link" cols="100" rows="5" name="maplink_entry"></textarea> 

PHPのデータベースエントリ:

$map_link_entry = $_POST['map_link_entry']; 
$safe_map_link_entry = mysql_real_escape_string($map_link_entry); 
$query_do_entries = mysql_query("INSERT INTO all_places VALUES ('',(NOW()), '$address_entry','$safe_map_link_entry', '$username_entry', '$like', '$dislike', '$source')"); 

PHPのデータベース検索:大体

$result = ''; 

while ($row = mysql_fetch_assoc($query)) { 
    $result .= '<li>';  
    $result .= stripslashes($row['map_link']); 
    $result .= '</li>'; 
} 

、gmaps URLは私のdb COLは4000

HTMLにVARCHARを設定されています約1134文字ですが、これはすべて私が戻ってくるものです:

<iframe width="425" height="350" frameborder="0" scrolling="no" marginheight="0" marginwidth="0" src="http://maps.google.com/maps?f=q 

ご協力いただきありがとうございます...ありがとうございます。

答えて

1

私はすべてのマップコードを再生成するためにPHPを使用してこれを解決し、そしてちょうどデータベースに保存され、ユーザーの検索用語に追加しました。これは、PHPで準備するために不必要で扱いにくいリンク全体を格納するよりも優れています。

これは、ユーザーがGoogleマップのリンク全体を取得して投稿する必要がないことを意味します。私はちょうど場所を尋ね、googlemapsのクエリ文字列(http://querystring.org/google-maps-query-string-parameters/)を使ってそれを洗練しようとします。

最終出力コードは次のとおりです。

// set up variables 
$output = ''; 
$map_width = '600';  // map frame width 
$map_height = '350'; // map frame height 

while ($row = mysql_fetch_assoc($query)) { 

    $location = stripslashes($row['location']); 
    $city = stripslashes($row['city']); 

    // compile resulting html with variables and db results 
    $output .= "<iframe width='" . 
       $map_width . "' height='" . $map_height . 
       "' frameborder='0' scrolling='no' 
       marginheight='0' marginwidth='0' src='"; 

    // the original search query (googlemaps api uses "q=...")   
    $output .= "http://maps.google.com/maps?q=" . $location; 

    // location to refine the query (googlemaps api uses "near=...") 
    $output .= "&amp;near=" . $city;  

    // set map to 'terrain'      
    $output .= "&amp;t=p"; 

    //zoom level    
    $output .= "&amp;z=15";       
    $output .= "&amp;output=embed'></iframe>"; 

    $output .= "<br /><small><a href='" . $location . 
       "&amp;output=source' target='_blank' 
       style='color:#0000FF;text-align:left'> 
       View Larger Map</a></small>"; 
} 

// print it all out 
echo $output; 
2

データベース操作の文字列を準備するためにURL/HTML操作を使用しません。それは、爪でハンマーをかけるために子猫を使うようなものです。

use mysql_real_escape_string() - これは適切なツールです。それ以外のものは無駄な時間の無駄です。

$url = $_POST['...']; 
$safe_url = mysql_real_escape_string($url); 

$sql = "INSERT ... VALUES ('$safe_url');"; 

また、決してデータベース操作が成功したとは決して考えません。あなたは常に返り値をチェックする必要があります。

$result = mysql_query($sql); 
if ($result === FALSE) { 
    die(mysql_error()); // you'll want something better for when this goes into production 
} 
+0

ねえマーク。あなたのアンサーに感謝、私はそれを試してみましょう。 (私はdbのエントリをテストしているだけで、ここにそれを貼り付けていませんでした...) – matski

+0

Lol、私はあなたの答えの2つを別々の質問で連続して読んでしまいました。そして、私は突然、 (ズッキーニ、子猫)。あなたは素晴らしいよ! –

+0

あなたは私のヒーローです! – daniyalahmad

関連する問題