Hallo,
ich habe folgendes Problem:
Das unten stehende Script stellt einen Formmailer dar, also von einem Formular (das in utf-

Daten aufnimmt, kann man Informationen an den Admin schicken und auch eine Kopie dieser Nachricht anfordern).
Habe das Script über
Formular Generator - schnell und einfach individuell Webformulare erstellen erstellt und auf meiner utf-8 kodierten Seite eingebaut.
Das Problem ist, dass ein paar Mailprogramme nur Iso unterstützen (z.B. Hotmail). Ich habe nach einer einfachen Lösung gesucht, aber nur 2 ohne Programmierung gefunden: Entweder ich stelle die Seite auf Iso um, oder ich stelle das Formular auf Iso um (accept-charset, funktioniert leider nicht bei IE). Ich habe keine PHP-Erfahrung, bin daher ziemlich unfähig im Bezug auf Programmierung (leider auch Grundlagen).
Habe also hier im Forum einige Sachen gefunden, aber nicht umsetzen können. Habe auch z.B.:
hier:
http://blog.higher-order.net/2008/12...-html-or-http/ etwas Interessantes gefunden, aber konnte es ebenfalls nicht umsetzen.
Ich denke man muss "einfach" die Strings ( vorName, nachName, Betreff1), etc. mittels "decode utf-8 " umwandeln bevor die email versendet wird. Ich hoffe, jemand kann mir helfen.
Bitte versteht diesen Hilferuf nicht als Faulheit, ich habe schon viel versucht, aber ohne Php Kentnisse tue ich mir etwas schwer. Deswegen wende ich mich an Profis .
Vielen Dank im Voraus!!
PS: Das ganze ist für ein Schulprojekt, weshalb ich kaum bzw. am liebsten gar keine Bezahlung/Gegenleistung außer meinen Dank bieten kann.
PHP-Code:
<script type="text/javascript">
<!--
function isValid() {
var msg = "";
if (kontaktFormular.eMail.value.indexOf("@") < 1 ||
kontaktFormular.eMail.value.indexOf(".") < 1) {
msg += "- Die E-Mail-Adresse ist syntaktisch nicht korrekt.\n";
}
if(kontaktFormular.vorName.value == "") {
msg += "- Leeres Feld: Vorname:\n";
}
if(kontaktFormular.nachName.value == "") {
msg += "- Leeres Feld: Nachname:\n";
}
if(kontaktFormular.betreff1.value == "") {
msg += "- Leeres Feld: Betreff:\n";
}
if(kontaktFormular.nachricht.value == "") {
msg += "- Leeres Feld: Nachricht:\n";
}
if(msg == "") {
return true;
}
alert(msg);
return false;
}
-->
</script>
<?php
$formularAnzeigen = false;
if (!empty($_POST["senden"]) && (
empty($_POST["vorName"]) ||
empty($_POST["nachName"]) ||
empty($_POST["eMail"]) ||
empty($_POST["betreff1"]) ||
empty($_POST["nachricht"]))) {
$formularAnzeigen = true;
echo '<span style="color: #FF0000; font-size: x-large;">Bitte alle Pflichtfelder ausfuellen.</span>';
} else if (!empty($_POST["senden"]) &&
!isEmail($_POST["eMail"])) {
$formularAnzeigen = true;
echo '<span style="color: #FF0000; font-size: x-large;">Die E-Mail-Adresse ist nicht korrekt.</span>';
} else if (empty($_POST["senden"])) {
$formularAnzeigen = true;
}
if ($formularAnzeigen) {
?>
<form name="kontaktFormular" method="post" action="<?=$_SERVER[PHP_SELF]; ?>" onSubmit="return isValid()">
<table width="570" border="0">
<!--anfang Anrede-->
<tr>
<td width="169"> </td>
<td width="169">
<strong>Anrede:</strong>
</td>
<td width="340">
<select name="anrede">
<option <?=($_POST['anrede']=='Frau')?'selected':''?>>Frau</option>
<option <?=($_POST['anrede']=='Herr')?'selected':''?>>Herr</option>
</select></td>
</tr>
<!--ende anrede-->
<!--anfang vorName-->
<tr>
<td><div align="center">*</div></td>
<td><strong>
Vorname:
</strong></td>
<td>
<input name="vorName" type="text" value="<?=$_POST['vorName']; ?>" /></td>
</tr>
<!--ende vorName-->
<!--anfang nachName-->
<tr>
<td><div align="center">*</div></td>
<td><strong>
Nachname:
</strong></td>
<td><input name="nachName" type="text" value="<?=$_POST['nachName']; ?>" /></td>
</tr>
<!--ende nachName-->
<!--anfang eMail-->
<tr>
<td><div align="center">*</div></td>
<td><strong>
E-Mail:
</strong></td>
<td><input name="eMail" type="text" id="eMail" value="<?=$_POST['eMail']; ?>" /></td>
</tr>
<!--ende eMail-->
<!--anfang betreff1-->
<tr>
<td><div align="center">*</div></td>
<td><strong>
Betreff:
</strong></td>
<td><input name="betreff1" type="text" id="betreff1" value="<?=$_POST['betreff1']; ?>" size="50" /></td>
</tr>
<!--ende betreff1-->
<!--anfang betreff2-->
<tr>
<td><div align="center">*</div></td>
<td><strong>
Kontaktwunsch:
</strong></td>
<td><select name="betreff2" id="betreff2">
<option<?=($_POST['betreff2']=='Per E-Mail')?' selected':' '?>>Per E-Mail</option>
<option<?=($_POST['betreff2']=='Per Telefon')?' selected':' '?>>Per Telefon (Bitte im Feld "Nachricht" Telefonnummer angeben)</option>
<option<?=($_POST['betreff2']=='Per Handy')?' selected':' '?>>Per Handy (Bitte ebenfalls Nummer angeben)</option>
<option<?=($_POST['betreff2']=='Egal')?' selected':' '?>>Egal</option>
</select></td>
</tr>
<!--ende betreff2-->
<!--anfang nachricht-->
<tr>
<td><div align="center">*</div></td>
<td><strong>
Nachricht:
</strong></td>
<td><textarea name="nachricht" cols="40" rows="10"><?=$_POST['nachricht']; ?></textarea></td>
</tr>
<!--ende nachricht-->
<!--anfang kopie-->
<tr>
<td> </td>
<td><strong>
Kopie der Nachricht an ihre E-Mailadresse schicken?:
</strong></td>
<td><input name="kopie" type="checkbox" value="checked" <?=$_POST['kopie']; ?>></td>
</tr>
<!--ende kopie-->
<tr>
<td colspan="3">
<div align="center">
<input name="senden" type="submit" value="Senden" />
</div>
</td>
</tr>
</table>
</form>
<?php
echo'';
} else {
$eMail = '
Anrede:
'.$_POST['anrede'].'
Vorname:
'.$_POST['vorName'].'
Nachname:
'.$_POST['nachName'].'
E-Mail:
'.$_POST['eMail'].'
Betreff:
'.$_POST['betreff1'].'
Kontaktwunsch:
'.$_POST['betreff2'].'
Nachricht:
'.$_POST['nachricht'].'
Kopie der Nachricht angefordert (wenn ja dann Wert ist gleich "checked", sonst steht hier nichts):
'.$_POST['kopie'].'';
if (@mail("xyz@noone.de",
"Neue Nachricht vom Kontaktformular",
$eMail)) {
echo "Ihre Nachricht wurde an uns übermittelt, vielen Dank! Wir melden uns in Kürze und beantworten ihre Anfrage so schnell wie möglich!<br />";
} else {
echo "E-Mail-Verkehr funktioniert zur Zeit nicht<br />";
}
if ($_POST['kopie']) {
if (@mail($_POST['eMail'],
"Hier die Kopie Ihrer Nachricht an uns (XYZ)",
$eMail)) {
echo "Sie haben eine Kopie der Nachricht zugeschickt bekommen.<br />";
}
}
}
function isEmail($email) {
$nonascii = "\x80-\xff";
$nqtext = "[^\\$nonascii\015\012\"]";
$qchar = "\\[^$nonascii]";
$protocol = "(?:mailto:)";
$normuser = "[a-zA-Z0-9][a-zA-Z0-9_.-]*";
$quotedstring = "\"(?:$nqtext|$qchar)+\"";
$user_part = "(?:$normuser|$quotedstring)";
$dom_mainpart = "[a-zA-Z0-9][a-zA-Z0-9._-]*\.";
$dom_subpart = "(?:[a-zA-Z0-9][a-zA-Z0-9._-]*\.)*";
$dom_tldpart = "[a-zA-Z]{2,5}";
$domain_part = "$dom_subpart$dom_mainpart$dom_tldpart";
$regex = "$protocol?$user_part\@$domain_part";
if (preg_match("/^$regex$/",$email)) {
return true;
}
return false;
}
?>