Kontaktformular & Umlaute

Einen schönen

Ich habe folgendes PHP Script zur Kontaktaufnahme:

PHP:
<?php
$adminemail = '********@***.**, '********@***.**';

$usesecimage = '';

$controlvars = ' thankspage submitteremail ccsubmitter messagetosubmitter ';
$messagetoadmin = $_POST['submitteremail'] ." hat folgende Anfrage ueber das Kontaktformular gesendet:


";

if (!function_exists('geturl'))
{
function geturl($url)
{
 if (extension_loaded('curl')) 
 {
   $user_agent = 'Mozilla/4.0 (compatible; MSIE 6.02; PHP)';
   $ch = curl_init(); 
   curl_setopt ($ch, CURLOPT_URL, $url); 
   curl_setopt ($ch, CURLOPT_USERAGENT, $user_agent); 
   curl_setopt ($ch, CURLOPT_HEADER, false); 
   curl_setopt ($ch, CURLOPT_RETURNTRANSFER, true); 
   curl_setopt ($ch, CURLOPT_CONNECTTIMEOUT, 15);  // Timeout nach 5 Sekunden
   curl_setopt ($ch, CURLOPT_TIMEOUT, 15);  // Timeout nach 5 Sekunden
   curl_setopt ($ch, CURLOPT_FOLLOWLOCATION, true); 
   $result = curl_exec ($ch); 
   curl_close ($ch); 
// curl_error($ch); // fuer Debugmodus
   return $result;	
 }
 
 if (version_compare("4.3.0", phpversion(), "<"))
 { 
  $filecontents = @file_get_contents($url);
 }
 else
 {
  $fd = @fopen($url, 'rb');
  $filecontents = "";
  do 
  {
   $data = @fread($fd, 8192);
   if (strlen($data) == 0) 
   {
    break;
   }
   $filecontents .= $data;
  } while(true); 
  @fclose ($fd);
 }
 return $filecontents;
}
}

 if (!isset($_POST['messagetosubmitter'])) $messagetosubmitter = "<br>Sie haben nachfolgende Anfrage erfolgreich an uns gesendet. Wir werden Ihnen schnellstmöglich antworten.


";
 else $messagetosubmitter = $_POST['messagetosubmitter'];
 
while(list($key, $value) = each($_POST))
{
 if (!stristr($controlvars, ' '. $key .' '))
 {
  $messagetoadmin .= $key .': '. $value .'

';
  $messagetosubmitter .= $key .': '. $value .'

';
 }
} 
$submitter = $_POST['submitteremail'];
if ($submitter == '') $submitter = 'anonym@anonym.com';
if (strstr($submitter, "\n")!==false || strstr($submitter, "\r")!==false || strlen($submitter) > 50) die("Pech, Du gemeiner Spammer.");

if ($usesecimage)
{
 $curr_path = getcwd(); 
 chdir($usesecimage);        // Geht zum EdeV Verzeichnis
 require 'start.php'; 
 if (strtolower($_POST['securityimage']) != securityimagevalue()) die("Sie haben das Sicherheitsbild nicht korrekt übertragen.");
 chdir($curr_path);      // kommt zurück zum Original Verzeichnis
}

mail($adminemail, 'Form Submitted: '. stripslashes($_POST['subject']), stripslashes($messagetoadmin), 'From: '. $submitter);

if ($_POST['ccsubmitter'] == 'yes')
{
 mail($submitteremail, 'Form Submitted: '. stripslashes($_POST['subject']), stripslashes($messagetosubmitter), 'From: '. $adminemail);
}
if ($_POST['autoresponse'] != '')
{
 $body = geturl($autoresponse);
 mail($submitteremail, 'Re: '. stripslashes($_POST['subject']), stripslashes($body), 'From: '. $adminemail);
}
header('Location: '. $_POST['thankspage']);
// Falls die Weiterleitung nicht funktioniert
die('<meta http-eqiv="refresh" content="0;url='. $_POST['thankspage'] .'">');


?>

So, das ganze funktioniert auch wunderbar. Aber leider werden die Umlaute (ä, ü, ö und auch das ß) als html-Code (ist das überhaupt HTML) ausgegeben!
zb "Grüße" kommt als "Gr???Ye "
oder "für" als "f??r"
bei mir an.

Da ich leider php nicht beherrsche weiß ich nicht wie man das überhaupt lösen kann?
Kann mir jemand sagen was ich hinzufügen bzw. abändern muss???

Für euch ist das sicher ein Kinderspiel!

Danke und sg
GoFlo
 
Das ist ein Zeichensatzproblem. Vermutlich läuft die Seite mit dem Formular auf UTF-8, deine Auswertung oder die Datenbank, in der du's speicherst aber mit ISO-8859-15. Entweder du vereinheitlichst das ganze, oder du greifst auf iconv() zurück.
 
Danke für deine schnelle AW!
Ich habe mir schon so etwas in der Art gedacht!

Aber wo muss ich nun die Konvertierung des Zeichensatztes vornehmen? Ich gehe mal davon aus dass ich den Inhalt der Texfelder, aus dem HTML Formular, umwandeln muss?

Edit:
Habs jetzt lösen könne!
Einfach den Zeichensatz vereinheitlicht.
In der html wo das Kontaktformular eingebaut ist.

PHP:
<form action="/cgi-bin/auswert.pl" method="post" accept-charset="ISO-8859-15">
<!-- hier folgen die Formularelemente -->
</form>


Diese Seit hat mir datei geholfen: Self HTML - Formulare

thx lx
 
Zurück
Oben