Ich habe ein PHP-Formular zum Füllen einer mySQL-Datenbank mit Adressdaten. Diese werden über Google Geocode in Längen- und Breitengrade umgewandelt, damit sie als Marker in einer Google-Map erscheinen.
Tauchen Sonderzeichen in den Adressdaten auf, Quittiert Google den Dienst. Ich stehe also vor der Aufgabe, die Umlaute der Adresseingaben ersetzen zu lassen (z. B. ä -> ae. Ich bin noch nicht der PHP-Freak und habe ein paar Scriptbeispiele kopiert.
Mit strtr( strtolower() ) wurde es empfohlen. Komischerweise werden bei mir nicht die Umlaute, sondern nur die Leerzeichen durch Unterstriche ersetzt.
Hast du einen Idee, an was das liegt? Kann dies mit dem Character Encoding im Dokument zu tun haben?
Würde mich sehr freuen, wenn ihr mir weiterhelft!
Code: Alles auswählen
// Variablen zum Umlaute umwandeln
$ersetzen = array( 'ä' => 'ae', 'ö' => 'oe', 'ü' => 'ue', 'ß' => 'ss', ' ' => '_', '\\' => '-', '/' => '-' );
// Formular auswerten
if(isset($_POST['send'])){
if(isset($_POST['name'])){
$name= $_POST ['name'];
if(isset($_POST['address'])){
$address1 = utf8_encode($_POST ['address']);
$address = strtr( strtolower( $address1 ), $ersetzen );
// Name und Text in Tabelle Test eintragen
$mysql_befehl = "INSERT INTO markers(name,address) VALUES('$name', '$address')";
$mysql_input = mysql_query ($mysql_befehl);
if($mysql_input== true) {
echo $name. "wurde erfolgreich eingetragen!";
}
}
}
}
echo "
<form method='POST' action='maps.php'>
<p>Auslegestelle: <input type='text' name='name'></p>
<p>Adresse (Straße, Ort): <input type='text' name='address'></p>
<p><input type='submit' value='Absenden' name='send'></p>
</form>
";
$content = "SELECT * FROM markers";
$mysql_content = mysql_query($content);
while($input = mysql_fetch_array($mysql_content))
{
echo "<p><b>".$input['name']."</b>, ".$input['address'].", " .$input['stueckzahl']. "Stück," .$input['person']."</p>";
}