25.03.2009, 11:15
|
|
| Neuer Benutzer
Registriert seit: 25.03.2009
Beiträge: 5
| Formular läuft lokal, online nicht Hallo,
ich habe ein Problem mit einem Formular, wenn ich es mit meinem lokalen Server teste, funktioniert es einwandfrei, stelle ich es online, wird es nicht ausgeführt???
Ich poste hier mal den Code, bin auch nach langem Suchen keinen Schritt weiter. Vielleicht sehe ich vor lauter Bäumen den Fehler mal wieder nicht Zitat:
<?php
// E-Mail Adresse des Empfängers (Im Normalfall Ihre eigene) einfach zwischen den beiden "" einfügen.
$adresse = "hallo@simonwebdesign.de";
// Soll als Absenderadresse Ihre eigene oder die des Kontaktaufnehmenden benutzt werden?
// Bei manchen Providern ist es zwingend notwendig, dass die eigene benutzt wird
// 0 = eigene 1 = Besucher
$absender = "1";
// Hier kann definiert werden, nach wievielen Zeichen ein automatischer Zeilenumbruch eingefügt werden soll,
// wenn sie $umbruch = "no" eingeben, wird kein automatischer Zeilenumbruch eingefügt.
$umbruch = "70";
// Bei manchen Webhoster ist es notwendig, dass noch ein zusätzlicher Parameter übergeben wird, der Ihre E-Mail-Adresse
// enthält.
// Bei den meisten Hostern ist dies nicht notwendig, dann müssen Sie zwischen die beiden "" nichts einfügen
// aber z.B. bei Hosteurope ist die Angabe zwingend und dann müssen sie hier eine Ihrem Webpack zugehörige und
// eingerichtete E-Mail-Adresse eintragen, z.B. in dieser Form: $add = "info@ihre_webpack_domain.tld"
// NOCHMAL: Setzen Sie hier nur was ein, wenn Sie wissen das es notwendig ist!!!
$add = "";
// Ab hier sollten Sie nur noch etwas ändern, wenn sie wissen was sie tun,
// bzw. wenn sie noch mehr am Design ändern wollen.
//hier wird die Länge der verschiedenen Eingaben ermittelt
$lengthm = strlen($_POST["send"]["mail"]);
$lengtha = strlen($_POST["send"]["autor"]);
$lengthb = strlen($_POST["send"]["betreff"]);
$lengthn = strlen($_POST["send"]["nachricht"]);
// der Zähler wird auf null gesetzt
$i = "0";
// Je nachdem welche Adresse als Absender benutzt werden soll, wird die Variable beschrieben:
if ($absender == "0") {
$from = $adresse ; }
else { $from = $_POST["send"]["mail"] ; }
//Nun überprüfen wir die Eingaben auf alle möglichen Fehler (Es muss überall was eingegeben werden,
// die Einträge dürfen eine bestimmte Länge nicht überschreiten und die E-Mail-Adresse muss ein @ enthalten)
// Ausserdem darf im Namensfeld kein @ Zeichen enthalten sein und in der Adresse nicht mehr als eins.
// Das ist notwendig, damit im vierten Parameter keine CC oder BCC Adressen übergeben werden können
// Und zu guter Letzt werden die Sonderzeichen für die HTML-Ausgabe codiert und die Backslashes aus der Mail entfernt
if(isset($_POST["send"]) && is_array($_POST["send"])) {
if(empty($_POST["send"]["autor"])) {
$fautor = "Bitte geben Sie Ihren Namen ein!<br>";
} else { $fautor = "Name ok!<br>"; $i++; }
if(empty($_POST["send"]["betreff"])) {
$fbetreff = "Bitte geben Sie einen Betreff ein!<br>";
} else { $fbetreff = "Betreff ok!<br>"; $i++; }
if(empty($_POST["send"]["mail"])) {
$fmail = "Bitte geben Sie Ihre Email-Adresse ein!<br>";
} else { $fmail = "Adresse ok!<br>"; $i++; }
if(empty($_POST["send"]["nachricht"])) {
$fnachricht = "Bitte geben Sie eine Nachricht ein!<br>";
} else { $fnachricht = "Nachricht ok!<br>"; $i++; }
if ($lengthm > "70") {
$flmail = "Ihre eingegebene Email-Adresse ist zu lang!<br>"; $fmail = ""; }
else { $i++; }
if ($lengtha > "30") {
$flautor = "Ihr eingegebener Name ist zu lang!<br>"; $fautor = ""; }
else { $i++; }
if ($lengthb > "150") {
$flbetreff = "Ihr eingegebener Betreff ist zu lang!<br>"; $fbetreff = ""; }
else { $i++; }
if ($lengthn > "60000") {
$flnachricht = "Ihre eingegebene Nachricht darf nicht mehr<br> als 60000 Zeichen haben! Sie hat: ".$lengthn."<br>"; $fnachricht = ""; }
else { $i++; }
if (!strpos($_POST["send"]["mail"], "@") == "false" or substr_count($_POST["send"]["mail"], "@") > 1) {
$fgmail = "Ihre angegebene Email Adresse ist nicht gültig!<br>"; $fmail = ""; }
else { $i++; }
if (substr_count($_POST["send"]["autor"], "@") >= 1) {
$fgautor = "Aus Sicherheitsgründen darf das Namensfeld kein @ Zeichen enthalten!<br>"; $fautor = "";
} else { $i++; }
$str = ":\/,\"";
if (strcspn($_POST["send"]["mail"], $str) < $lengthm) {
$fgmail = "Ihre angegebene Email Adresse ist nicht gültig!<br>"; $fmail = "" ;
} else { $i++ ; }
if (get_magic_quotes_gpc() == "1") {
$_POST["send"]["autor"] = stripslashes($_POST["send"]["autor"]);
$_POST["send"]["betreff"] = stripslashes($_POST["send"]["betreff"]);
$_POST["send"]["phone"] = stripslashes($_POST["send"]["phone"]);
$_POST["send"]["mail"] = stripslashes($_POST["send"]["mail"]);
$_POST["send"]["nachricht"] = stripslashes($_POST["send"]["nachricht"]);
}
$sautor = htmlspecialchars($_POST["send"]["autor"]);
$sbetreff = htmlspecialchars($_POST["send"]["betreff"]);
$sphone = htmlspecialchars($_POST["send"]["phone"]);
$smail = htmlspecialchars($_POST["send"]["mail"]);
$snachricht = htmlspecialchars($_POST["send"]["nachricht"]);
}
//Wenn alles korrekt eingegeben wurde, wird die Mail nun erst formatiert und dann verschickt
if(isset($_POST["send"]) && is_array($_POST["send"])) {
if ($i == "11") {
$autor = $_POST["send"]["autor"];
if ($umbruch == "no") {
$texto = $_POST["send"]["nachricht"] ;
}
else { $texto = wordwrap( $_POST["send"]["nachricht"], $umbruch ); }
$_POST["text"] = $_POST["send"]["autor"]." mit der Mail Adresse: ".$_POST["send"]["mail"]." und der Telefonnummer ".$_POST["send"]["phone"]." hat ihnen folgende Nachricht gesendet: \n \n $texto";
$fautor = "<h2>Ihre Mail wurde versendet!</h2>";
$fbetreff = "";
$fmail = "";
$fphone = "";
$fnachricht = "";
// Und ab dafür... je nachdem mit oder ohne additional_parameters
if(empty($add)) {
$addp = "";
if (@mail($adresse, $_POST['send']['betreff'], $_POST['text'], "From: \"$autor\" <$from>")) {
$fautor = "<h2 style='font-size:18px;'>Ihre Mail wurde versendet!</h2>";
unset($sautor);
unset($sbetreff);
unset($sphone);
unset($smail);
unset($snachricht);
} else {
$fautor = "<h2 style='font-size:18px;'>Fehler! Mail konnte nicht gesendet werden</h2>"; }
} else {
if (@mail($adresse, $_POST['send']['betreff'], $_POST['text'], "From: \"$autor\" <$from>", "-f $add")) {
$fautor = "<h2 style='font-size:18px;'>Ihre Mail wurde versendet!</h2>";
unset($sautor);
unset($sbetreff);
unset($sphone);
unset($smail);
unset($snachricht);
}
else {
$fautor = "<h2 style='font-size:18px;'>Fehler! Mail konnte nicht gesendet werden</h2>"; }
}
}
}
// Hier kommt nun das eigentliche Formular in HTML + CSS
?>
<div id="kontakt_bg">
<form style="margin:0px auto; width:475px; text-align:left;" action="<?php echo $PHP_SELF;?>" method="post" target="_self">
<div class="formular_1"><label for="autor">Ihr Name:</label></div>
<div><input name='send[autor]' type='text' size='50' value="<?php echo $sautor ; ?>"></div>
<div class="formular_1"><label for="mail">Email Adresse:</label></div>
<div><input name='send[mail]' type='text' size='50' value="<?php echo $smail ; ?>"></div>
<div class="formular_1"><label for="phone">Telefonnummer:<span class="gruen">*</span></label></div>
<div><input name='send[phone]' type='text' size='50' value="<?php echo $sphone ; ?>"></div>
<div class="formular_1"><label for="betreff">Betreff:</label></div>
<div><input name='send[betreff]' type='text' size='50' value="<?php echo $sbetreff ; ?>"></div>
<div><label for="nachricht">Ihre Nachricht:</label></div>
<div><textarea name='send[nachricht]' id="nachricht" rows='10' cols='52'><?php echo $snachricht ;?></textarea></div>
<div class="formular_1"><input type='submit' id='senden' value='absenden'></div>
<div id="star">* (optional)</div>
<div id="rueckmeldung"><?php echo $fautor ; echo $fbetreff ; echo $fmail ; echo $fnachricht ; echo $flautor ; echo $flbetreff ; echo $flnachricht ; echo $flmail ; echo $fgmail ; echo $fgautor ;?>
</div>
</form>
</div> | Ich hoffe jemand weiß was da los ist  |
| |