Kontaktformular funzt net
lima-city → Forum → Programmiersprachen → PHP, MySQL & .htaccess
absender
adresse
alten namen
auslese
bedingung
betreff
code
einfacher beitrag
email
fehler
fehlermeldung
feld
karpfen
kontakt
nachricht
ober
post
senden
verfasser
weben
-
Ich wollte mir ein Kontaktformular machen. Hab es gecodet ober irgendwas stimmt nicht. Ich kann auch einfach meinen fehler net finden. Kann mir irgend einer helfen:
Mein Code:
<? if ($_POST) { $Name = $_POST['name']; $Betreff = $_POST['befreff']; $EMail = $_POST['email']; $Nachricht = $_POST['nachricht']; $Emfaenger = "websiteofas@web.de"; if ($Name = "" OR $Befreff = "" OR $EMail = "" OR $Nachricht = "") { ?> <div style="text-align:center;"><b>Fehler</b><br /> Um eine E-Mail an mich zu senden, musst du alle Felder ausfüllen.</div> <?php } else { @mail($Emfaenger,$Betreff,$Nachricht,"From: ".$EMail); } } else { ?> <div style="text-align:center;"><b>Kontakt</b><br /> Mit diesem Kontaktformular kannst du mir ne Mail schreben. <form action="<? $_SERVER['PHP_SELF']?>" Method="post" name="Kontakt"> <table align="center"> <tr> <tr> <td><b>Name:</b></td> <td><input name="name" size="40"></td> </tr> <tr> <td><b>Betreff:</b></td> <td><input name="betreff" size="40"></td> </tr> <tr> <td><b>E-Mail:</b></td> <td><input name="email" size="40"></td> </tr> <tr> <td></td> <td></td> </tr> <tr> <td><b>Nachricht:</b></td> <td><textarea name="nachricht" cols="35" rows="10" wrap="physical"></textarea><br></td> </tr> <tr> <td> <input type="submit" value="Senden"> </td> </tr> </table> </form> <? } ?>
Bekommen ne Mail da steht dann: von andre2005 <webmaster@andre2005.net.tc
dabei hab ich ne ganz andere Mail Adresse und Name angegeben.
Und die Nachricht kommt auch net an. da kommt dann immer ne leere Mail. Wo ist mein fehler?
Ach und wenn ich gar nix eingebe sollte eigntlich ne Fehlermeldung kommen aber irgend wie kommt die auch net.
ich hoff ihr könnt mir helfen -
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage
-
Ich habe nur einen Fehler entdeckt:
$Betreff = $_POST['befreff'];
Das muss betreff heißen, sonst kann das mit dem Betreff nicht funzen ;) Aber ansonsten sollte die Mail ankommen.
MfG, deutscher -
Hmm wo soll man da anfangen...
= ist ein Zuweisungsoperator. Wenn du bei deiner 2. If-Bedingung was überprüfen willst musst du == benutzen.
Was deine erste if-Bedinung macht, kann ich dir nicht sagen. Die scheint mir auch nicht zu taugen.
Denke eher da muss irgendwas hin mit:
<? if(isset($_POST['namevomabsendebutton'])) { ... } else { ... } ?>
Dann musst du natürlich dem Absendebutton noch einen Namen geben mit name="namedesabsendebuttons". -
Also der Betreff wird jetzt gesendet. Aber sonst kommt immer nur ne leere Mail.
@ karpfen : Werde des mal schnell umändern
Wenn ich in die 2. if == mache kommt immer die fehlermeldung
Beitrag geändert: 30.11.2008 19:09:40 von andre2005 -
Lass dir doch mal alle Variablen mit echo ausgeben, also $EMail, $Name usw...
schau mal an, ob dort was drin steht ;)
Ausserdem sollte man einer Variablen nicht den Namen Name geben ;) Auch wenns vielleicht geht, man sollte keine Schlüsselwörter aus Programmiersprachen als Variablennamen nehmen ;) Kann auch mal zu Problemen kommen.
Achja, den Rechtschreibfehler in Betreff hast du abgeändert?
Poste doch einfach mal deinen neuen Code, macht die Sache einfacher ;)
Beitrag geändert: 30.11.2008 19:28:28 von karpfen -
<? if (isset($_POST['namevomabsendebutton'])) { $verfasser = $_POST['name']; $mailbetreff = $_POST['betreff']; $absendermail = $_POST['email']; $textnachricht = $_POST['nachricht']; $admin = "websiteofas@web.de"; if ($verfasser = "" OR $mailbetreff = "" OR $absendermail = "" OR $textnachricht = "") { ?> <div style="text-align:center;"><b>Fehler</b> Um eine E-Mail an mich zu senden, musst du alle Felder ausfüllen.</div> <?php } else { @mail($admin,$mailbetreff,$textnachricht,"From: ". $absendermail); } } else { ?> <div style="text-align:center;"><b>Kontakt</b> Mit diesem Kontaktformular kannst du mir ne Mail schreben. <form action="<? echo $_SERVER['PHP_SELF'];?>" Method="post"> <table align="center"> <tr> <tr> <td><b>Name:</b></td> <td><input name="name" size="40"></td> </tr> <tr> <td><b>Betreff:</b></td> <td><input name="betreff" size="40"></td> </tr> <tr> <td><b>E-Mail:</b></td> <td><input name="email" size="40"></td> </tr> <tr> <td></td> <td></td> </tr> <tr> <td><b>Nachricht:</b></td> <td><textarea name="nachricht" cols="35" rows="10" wrap="physical"></textarea><br></td> </tr> <tr> <td> <input name="namevomabsendebutton" type="submit" value="Senden"> </td> </tr> </table> </form> <? } ?>
Da kommt einfach nix an. Der Betreff geht wider nicht und mit echo ließt der auch nix aus
Beitrag geändert: 30.11.2008 20:31:15 von andre2005 -
Du hast die Namen der Variablen verändert, aber in deiner Bedingung stehen immer noch die alten Namen. Zudem die einfachen =, was einfach nicht richtig ist.
Beitrag geändert: 30.11.2008 20:42:36 von karpfen -
hier des auslesen klappt aber es kommt irgend wie keine Mail an. Hab des etz schon auf meine 2 Mail Adresse versucht un es kommt einfach nix an.
-
Mit dem Code hab ichs nun Probiert und es hat eigentlich ganz gut funktioniert, bis auf den Absender ;) Auch mal im Spamordner schauen, da kommt sowas auch häufig an.
<? if(isset($_POST['namevomabsendebutton'])) { $verfasser = $_POST['name']; $mailbetreff = $_POST['betreff']; $absendermail = $_POST['email']; $textnachricht = $_POST['nachricht']; $admin = "websiteofas@web.de"; if($verfasser==""OR$mailbetreff==""OR$absendermail==""OR$textnachricht=="") { echo "<div style="text-align:center;"><b>Fehler</b>Um eine E-Mail an mich zu senden, musst du alle Felder ausfüllen.</div>"; } else { @mail($admin,$mailbetreff,$textnachricht,"From: ". $absendermail); echo "Die E-Mail wurde erfolgreich verschickt!"; } } else { ?> <div style="text-align:center;"><b>Kontakt</b> Mit diesem Kontaktformular kannst du mir ne Mail schreben. <form action="<? echo $_SERVER['PHP_SELF'];?>" Method="post"> <table align="center"> <tr> <tr> <td><b>Name:</b></td> <td><input name="name" size="40"></td> </tr> <tr> <td><b>Betreff:</b></td> <td><input name="betreff" size="40"></td> </tr> <tr> <td><b>E-Mail:</b></td> <td><input name="email" size="40"></td> </tr> <tr> <td></td> <td></td> </tr> <tr> <td><b>Nachricht:</b></td> <td><textarea name="nachricht" cols="35" rows="10" wrap="physical"></textarea><br></td> </tr> <tr> <td> <input name="namevomabsendebutton" type="submit" value="Senden"> </td> </tr> </table> </form> <? } ?>
Beitrag geändert: 30.11.2008 20:44:32 von karpfen
Beitrag geändert: 30.11.2008 20:45:20 von karpfen -
Also der Script ging etz auch bei nur. Naja der Absender kann man dann ja noch irgend wie in den text mit reinbringen. Des schaff ich. ich hoff das ich des mit der fehlermeldung auch noch selber schaff. Des werd ich dann morgen machen.
thx -
Bei mir kommt keine Fehlermeldung, nur die, wenn eben die Felder nicht gefüllt wurden, aber das ist ja beabsichtigt.
-
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage