Thema: Kontaktformular
- 29.11.2007 16:32 #21Erfahrener Benutzer
- Registriert seit
- 26.11.2007
- Beiträge
- 178
- Renommee-Modifikator
- 3
hey,
nur mal so als idee:
warum verzichtest du nicht ganz auf die javascript geschichte und wertest die eingegebenen daten über php aus. dann kannst du auch leichter sie von freak angesprochenen sicherheitsfunktionen einbauen.HTML, CSS, PHP, JAVASCRIPT-Anfänger? http://www.peterkropff.de/index.htm
Warum Layout mit Tabellen dumm ist: http://seybold.jan-andresen.de/everything.php
- 29.11.2007 17:06 #22Benutzer
- Registriert seit
- 22.11.2007
- Beiträge
- 53
- Renommee-Modifikator
- 3
Ich hab doch geschrieben, dass ich gerne auf das javascript verzichten würde. Mein Ziel ist es doch, dass die Fehlerausgabe über dem Kontaktformular erscheint also skizze (und dies geht ja mit php oder?)
Du hast deine Vornamen nicht eingegeben
Du hast keine gültige Email angegeben
__________________________________________________ _________
Kontaktformular:
Vorname:
Nachname: Muster
Email:martin
Betreff: Betreff
Nachricht: asdfasdasasdasd
Nur leider weiß ich nicht wie die jeweiligen php Befehle funktionieren, für so eine Fehlerausgabe. Also vielleicht könntet ihr mir eine Seite bzw. den Code dafür geben. Ich versuche gerade php zu lernen, und dies ist mein erstes "Projekt" mit php. Bisher habe ich immer nur mit html gearbeitet (bin aber auch drain noch lang kein Meister). Aber da ich im Internet gelsen habe, dass ein kontaktforumlar mit html nur sehr schwer zu realisieren ist bzw gar nicht, habe ich mir gedacht machst halt ein Kontaktformukar mit php und lernst dabei ein wenig die Sprache
- 29.11.2007 18:27 #23Erfahrener Benutzer
- Registriert seit
- 26.11.2007
- Beiträge
- 178
- Renommee-Modifikator
- 3
hey,
habe mich jetzt extra mal rangesetzt und versucht das für dich zu machen, ob es gleich funktioniert kann ich dir nicht sagen, habs nicht getestet, aber im prinzip sollte es gehen. erstmal ohne sicherheitsfunktionen:
PHP-Code:<?php
$allesok = 0;
if (isset($_GET['submit']) {
//Hier alle Get-Variablen speichern
$bla = $_GET['bla'];
if ($bla == '') {
echo 'Fehler: Kein bla eingegeben';
} else if ($bla2 == '') {
echo 'Fehler: Kein bla2 eingegeben';
} else if {//Für jede Variable einmal
} else $allesok = 1;
}
if ($allesok == 0) {
//Hier dein Formular einfügen
}
if ($allesok == 1) {
//Hier wird gesendet
}
?>HTML, CSS, PHP, JAVASCRIPT-Anfänger? http://www.peterkropff.de/index.htm
Warum Layout mit Tabellen dumm ist: http://seybold.jan-andresen.de/everything.php
- 29.11.2007 19:04 #24Benutzer
- Registriert seit
- 22.11.2007
- Beiträge
- 53
- Renommee-Modifikator
- 3
K danke erstmal, dass du dich rangesetzt hast, aber leider versteh ich den Code nicht so ganz. Ich hab doch 2 Dateien: Kontakt.php und kontakt-auswerte. Die Daten von Kontakt.php werden an kontakt-auswerten.php übergeben, und dort ausgewertet. Dein Code ist aber nur als eine php Datei ausgelegt. Kann ich nicht einfach anstatt dem Java script Teil, deine Fehlerausgabe benutzen? Weil mein kontakt-auswerten.php ist ja ählich aufgebaut.
Also soweit ich das dann mit meinen Kenntnissen umsetzen kann wäre mit einer Datei:
Irgendwo ist wieder ein Fehler oder eine } fehlt oder ?> wieder wahrscheinlich, aber ich weiß es im mom noch nicht besser.Code:<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <title>Kontaktformular</title> <link href="Kontakt.css" rel="stylesheet" type="text/css" /> </head> <body> <?php $allesok = 0; if (isset($_GET['submit']) { //Hier alle Get-Variablen speichern $submit = $_POST['submit']; $vorname = $_POST['vorname']; $nachname = $_POST['nachname']; $betreff = $_POST['betreff']; $nachricht = $_POST['nachricht']; $email = $_POST['email']; $strasse = $_POST['strasse']; $plz = $_POST['plz']; $homepage = $_POST['homepage']; if ($vorname == '') { echo 'Fehler: Kein Vorname eingegeben'; } else if ($nachname == '') { echo 'Fehler: Kein Nachname eingegeben'; } else if ($email == '') { echo 'Fehler: Keine Email eingegeben'; } else if ($betreff == '') { echo 'Fehler: Kein Betreff eingegeben'; } else if ($nachricht == '') { echo 'Fehler: Keine Nachricht eingegeben'; } else $allesok = 1; } if ($allesok == 0) { //Hier dein Formular einfügen <form action="kontakt.php?action=send" method="POST"> <div class="Komplett"> <div class="Linkeseite">Vorname* <input name="vorname" type="text" class="Textfeld" id="Vorname" /> <br /> Nachname* <input name="nachname" type="text" class="Textfeld" id="Name" /> Email* <input name="email" type="text" class="Textfeld" id="Email" /> <br /> Betreff* <input name="betreff" type="text" class="Textfeld" id="Betreff" /> </div> <div class="Rechte">Telefon <input name="telefon" type="text" class="Textfeld" id="Telefon" /> Strasse <input name="strasse" type="text" class="Textfeld" id="Strasse" /> <br /> PLZ/Ort <input name="plz" type="text" class="Textfeld" id="PLZ" /> <br /> Homepage<br /> <input name="homepage" type="text" class="Textfeld" id="Homepage" /> </div> <p><br /> </p> <p> </p> <p>Ihre Nachricht:*<br /> <textarea name="nachricht" class="Nachricht" id="Nachricht"></textarea> <br /> </p> </p> Die mit * markierten Felder sind Pflichtfelder <p> </p> <div> <div align="center"> <input name="submit" type="submit" class="Button" id="submit" value="Absenden" /> <input name="reset" type="submit" class="Button" id="reset" value="Zuruecksetzen" /> </div> </div> </div> </form> } if ($submit == "Absenden") { # E-Mail-Adresse $an ="xxxxxxx@gmx.de"; if ($allesok == 1) { //Hier wird gesendet # Nachricht der E-Mail-Adresse $text ="Hallo,\n Sie haben eine neue Nachricht von $vorname $nachname erhalten:\n\n ====\n $nachricht\n====\n\nSie können $vorname $nachname unter dieser $email erreichen. \n Weitere Daten zum Absender: \n Strasse: $strasse \n Postleizahl/Ort $plz \n Homepage: $homepage" ; mail($an,$betreff,$text,"From: ".$email); echo "<b>Ihre Nachricht wurde gesendet!</b>"; } </body> </html>
Hoffentlich könnt ihr mir sagen, was jetzt noch fehlt
Geändert von Doktor (29.11.2007 um 19:16 Uhr)
- 29.11.2007 19:13 #25Erfahrener Benutzer
- Registriert seit
- 26.11.2007
- Beiträge
- 178
- Renommee-Modifikator
- 3
mit meinem vorschlag brauchst du keine 2 datein mehr. das übernimmt dann eine, weil wenn du deine fehler auswertung an die 2. datei übergibst, hast du da wieder dein formular nicht drin, verstehst du?
du hast leider wirklich noch ein paar fehler in deinem script drin.
PHP-Code:<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Kontaktformular</title>
<link href="Kontakt.css" rel="stylesheet" type="text/css" />
</head>
<body>
<?php
$allesok = 0;
if (isset($_POST['submit']) {
//Hier alle Get-Variablen speichern
$submit = $_POST['submit'];
$vorname = $_POST['vorname'];
$nachname = $_POST['nachname'];
$betreff = $_POST['betreff'];
$nachricht = $_POST['nachricht'];
$email = $_POST['email'];
$strasse = $_POST['strasse'];
$plz = $_POST['plz'];
$homepage = $_POST['homepage'];
if ($vorname == '') {
echo 'Fehler: Kein Vorname eingegeben';
} else if ($nachname == '') {
echo 'Fehler: Kein Nachname eingegeben';
} else if ($email == '') {
echo 'Fehler: Keine Email eingegeben';
} else if ($betreff == '') {
echo 'Fehler: Kein Betreff eingegeben';
} else if ($nachricht == '') {
echo 'Fehler: Keine Nachricht eingegeben';
} else $allesok = 1;
}
if ($allesok == 0) {
//Hier dein Formular einfügen
echo '
<form action="kontakt.php" method="POST">
<div class="Komplett">
<div class="Linkeseite">Vorname*
<input name="vorname" type="text" class="Textfeld" id="Vorname" />
<br />
Nachname*
<input name="nachname" type="text" class="Textfeld" id="Name" />
Email*
<input name="email" type="text" class="Textfeld" id="Email" />
<br />
Betreff*
<input name="betreff" type="text" class="Textfeld" id="Betreff" />
</div>
<div class="Rechte">Telefon
<input name="telefon" type="text" class="Textfeld" id="Telefon" />
Strasse
<input name="strasse" type="text" class="Textfeld" id="Strasse" />
<br />
PLZ/Ort
<input name="plz" type="text" class="Textfeld" id="PLZ" />
<br />
Homepage<br />
<input name="homepage" type="text" class="Textfeld" id="Homepage" />
</div>
<p><br />
</p>
<p> </p>
<p>Ihre Nachricht:*<br />
<textarea name="nachricht" class="Nachricht" id="Nachricht"></textarea>
<br />
</p>
</p>
Die mit * markierten Felder sind Pflichtfelder
<p> </p>
<div>
<div align="center">
<input name="submit" type="submit" class="Button" id="submit" value="Absenden" />
<input name="reset" type="submit" class="Button" id="reset" value="Zuruecksetzen" />
</div>
</div>
</div>
</form>';
}
if ($submit == "Absenden") {
# E-Mail-Adresse
$an ="xxxxxxx@gmx.de";
if ($allesok == 1) {
//Hier wird gesendet
# Nachricht der E-Mail-Adresse
$text ="Hallo,\n Sie haben eine neue Nachricht von $vorname $nachname erhalten:\n\n
====\n $nachricht\n====\n\nSie können $vorname $nachname unter dieser $email erreichen.
\n Weitere Daten zum Absender: \n Strasse: $strasse \n Postleizahl/Ort $plz \n Homepage: $homepage"
;
mail($an,$betreff,$text,"From: ".$email);
echo "<b>Ihre Nachricht wurde gesendet!</b>";
}
</body>
</html>Geändert von bronko (29.11.2007 um 19:23 Uhr) Grund: fertig gebastelt..
HTML, CSS, PHP, JAVASCRIPT-Anfänger? http://www.peterkropff.de/index.htm
Warum Layout mit Tabellen dumm ist: http://seybold.jan-andresen.de/everything.php
- 29.11.2007 19:36 #26Benutzer
- Registriert seit
- 22.11.2007
- Beiträge
- 53
- Renommee-Modifikator
- 3
Ah k. Danke erstmal wieder. Ich lad mal kurz die Dtaei hoch und schau ob alles funktioniert
Aber nochmal ne Frage
:
Wie leite ich nach erfolgreicher übertrageung an eine von mir bestimmte seite (.z.B. www.test.de/Kontakterfolgreich.htm)?
UND
Wie mach ich das Formular jetzt sicherer? Ich will nicht, dass Spam Mails versendet werden
UND
Wie prüfe ich, dass eine gültige email angegeben wurde? also das ein "@" und ein "." darin vorkommen
Danke
EDIT:
Ich habs hochgeladen, aber irgendwo ist noch ein Fehler: http://projektpfinz.pr.ohost.de/test/Kontakt.php
- 29.11.2007 19:45 #27Erfahrener Benutzer
- Registriert seit
- 26.11.2007
- Beiträge
- 178
- Renommee-Modifikator
- 3
verstehe nicht ganz was du mit hinleiten meinst? was ist der gedanke dahinter?
zur sicherheit musst du die eingaben überprüfen. dafür benutzt man in der regel reguläre ausdrücke. z.b. prüft man dabei ob der name nur aus buchstaben besteht oder die postleitzahl nur aus zahlen etc.
die idee dabei ist, dass man eingaben eines benutzer nie trauen darf.
so geistern im netz viele bots rum, die versuchen ein formular auszufüllen und abzusenden. dabei kann es wenn man nicht aufpasst und prüft passieren, wie vorher schon erwähnt, das der mail header erweitert wird. damit könnte man dann z.b. nicht nur dir die mail schicken, sondern viele leute als CC oder BCC, also weitere empfänger eintragen. und schon ist dein formular eine spammaschineHTML, CSS, PHP, JAVASCRIPT-Anfänger? http://www.peterkropff.de/index.htm
Warum Layout mit Tabellen dumm ist: http://seybold.jan-andresen.de/everything.php
- 29.11.2007 19:58 #28Benutzer
- Registriert seit
- 22.11.2007
- Beiträge
- 53
- Renommee-Modifikator
- 3
zur Sicherheit: Und was muss ich da im Einzelnen im Code erweitern kann mir nicht vorstellen, wie du das meinst mit dem eingaben überprüfen (ich prüf doch auch schon ob Pflichtfelder ausgefüllt wurden
zum "weiterleiten": Wenn man auf den Absenden Knopf drückt kommt im mom jetzt noch eine weise Seite mit "Nahricht wurde verschickt (bzw. im mom geht das Kontaktformular grad nicht, siehe oben). Ich will jetzt aber, das wenn man absenden drückt und die nachricht erfolgreich versendet wurde, ich auf eine von mir gemachte Seite verlinkt wird (z.b auf meine Startseite der Homepage)
Zum Problem: Das Kontaktformular geht grad gar nicht (http://projektpfinz.pr.ohost.de/test/Kontakt.php ). kommt nur ein Fehler: d.h. irgendwo ist noch ein Fehler im Code
Zum Email Prüfen: Im mom wird nur geprüft ob was eingegeben wurde. Wie kann ich prüfen, dass die Email Adresse auch gültig ist (d.h ein "@ undein "." müssen drin vorkommen ; nicht das einer schreibt bei email: MaxMuster
so sieht Code jetzt aus
Code:<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <title>Kontaktformular</title> <link href="Kontakt.css" rel="stylesheet" type="text/css" /> </head> <body> <?php $allesok = 0; if (isset($_POST['submit']) { //Hier alle Get-Variablen speichern $submit = $_POST['submit']; $vorname = $_POST['vorname']; $nachname = $_POST['nachname']; $betreff = $_POST['betreff']; $nachricht = $_POST['nachricht']; $email = $_POST['email']; $strasse = $_POST['strasse']; $plz = $_POST['plz']; $homepage = $_POST['homepage']; if ($vorname == '') { echo 'Fehler: Kein Vorname eingegeben'; } else if ($nachname == '') { echo 'Fehler: Kein Nachname eingegeben'; } else if ($email == '') { echo 'Fehler: Keine Email eingegeben'; } else if ($betreff == '') { echo 'Fehler: Kein Betreff eingegeben'; } else if ($nachricht == '') { echo 'Fehler: Keine Nachricht eingegeben'; } else $allesok = 1; } if ($allesok == 0) { //Hier dein Formular einfügen echo ' <form action="kontakt.php" method="POST"> <div class="Komplett"> <div class="Linkeseite">Vorname* <input name="vorname" type="text" class="Textfeld" id="Vorname" /> <br /> Nachname* <input name="nachname" type="text" class="Textfeld" id="Name" /> Email* <input name="email" type="text" class="Textfeld" id="Email" /> <br /> Betreff* <input name="betreff" type="text" class="Textfeld" id="Betreff" /> </div> <div class="Rechte">Telefon <input name="telefon" type="text" class="Textfeld" id="Telefon" /> Strasse <input name="strasse" type="text" class="Textfeld" id="Strasse" /> <br /> PLZ/Ort <input name="plz" type="text" class="Textfeld" id="PLZ" /> <br /> Homepage<br /> <input name="homepage" type="text" class="Textfeld" id="Homepage" /> </div> <p><br /> </p> <p> </p> <p>Ihre Nachricht:*<br /> <textarea name="nachricht" class="Nachricht" id="Nachricht"></textarea> <br /> </p> </p> Die mit * markierten Felder sind Pflichtfelder <p> </p> <div> <div align="center"> <input name="submit" type="submit" class="Button" id="submit" value="Absenden" /> <input name="reset" type="submit" class="Button" id="reset" value="Zuruecksetzen" /> </div> </div> </div> </form>'; } if ($allesok == 1) { //Hier wird gesendet # Nachricht der E-Mail-Adresse $text ="Hallo,\n Sie haben eine neue Nachricht von $vorname $nachname erhalten:\n\n ====\n $nachricht\n====\n\nSie können $vorname $nachname unter dieser $email erreichen. \n Weitere Daten zum Absender: \n Strasse: $strasse \n Postleizahl/Ort $plz \n Homepage: $homepage" ; mail($an,$betreff,$text,"From: ".$email); echo "<b>Ihre Nachricht wurde gesendet!</b>"; } </body> </html>
- 29.11.2007 20:07 #29Erfahrener Benutzer
- Registriert seit
- 26.11.2007
- Beiträge
- 178
- Renommee-Modifikator
- 3
ok sorry mein fehler habe dir scheinbar eine falsche version gepostet, einen fehler habe ich gesehn, um sicher zu gehen das nicht noch mehr falsch ist hier die funktionierende:
der fehler war übrigens hierPHP-Code:<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Kontaktformular</title>
<link href="Kontakt.css" rel="stylesheet" type="text/css" />
</head>
<body>
<?php
$allesok = 0;
if (isset($_POST['submit'])) {
//Hier alle Get-Variablen speichern
$submit = $_POST['submit'];
$vorname = $_POST['vorname'];
$nachname = $_POST['nachname'];
$betreff = $_POST['betreff'];
$nachricht = $_POST['nachricht'];
$email = $_POST['email'];
$strasse = $_POST['strasse'];
$plz = $_POST['plz'];
$homepage = $_POST['homepage'];
if ($vorname == '') {
echo 'Fehler: Kein Vorname eingegeben';
} else if ($nachname == '') {
echo 'Fehler: Kein Nachname eingegeben';
} else if ($email == '') {
echo 'Fehler: Keine Email eingegeben';
} else if ($betreff == '') {
echo 'Fehler: Kein Betreff eingegeben';
} else if ($nachricht == '') {
echo 'Fehler: Keine Nachricht eingegeben';
} else $allesok = 1;
}
if ($allesok == 0) {
//Hier dein Formular einfügen
echo '
<form action="kontakt.php?action=send" method="POST">
<div class="Komplett">
<div class="Linkeseite">Vorname*
<input name="vorname" type="text" class="Textfeld" id="Vorname" />
<br />
Nachname*
<input name="nachname" type="text" class="Textfeld" id="Name" />
Email*
<input name="email" type="text" class="Textfeld" id="Email" />
<br />
Betreff*
<input name="betreff" type="text" class="Textfeld" id="Betreff" />
</div>
<div class="Rechte">Telefon
<input name="telefon" type="text" class="Textfeld" id="Telefon" />
Strasse
<input name="strasse" type="text" class="Textfeld" id="Strasse" />
<br />
PLZ/Ort
<input name="plz" type="text" class="Textfeld" id="PLZ" />
<br />
Homepage<br />
<input name="homepage" type="text" class="Textfeld" id="Homepage" />
</div>
<p><br />
</p>
<p> </p>
<p>Ihre Nachricht:*<br />
<textarea name="nachricht" class="Nachricht" id="Nachricht"></textarea>
<br />
</p>
</p>
Die mit * markierten Felder sind Pflichtfelder
<p> </p>
<div>
<div align="center">
<input name="submit" type="submit" class="Button" id="submit" value="Absenden" />
<input name="reset" type="submit" class="Button" id="reset" value="Zuruecksetzen" />
</div>
</div>
</div>
</form>';
}
if ($allesok == 1) {
//Hier wird gesendet
# Nachricht der E-Mail-Adresse
$text ="Hallo,\n Sie haben eine neue Nachricht von $vorname $nachname erhalten:\n\n
====\n $nachricht\n====\n\nSie können $vorname $nachname unter dieser $email erreichen.
\n Weitere Daten zum Absender: \n Strasse: $strasse \n Postleizahl/Ort $plz \n Homepage: $homepage";
$an ="bla@kecks";
mail($an,$betreff,$text,"From: ".$email);
echo "<b>Ihre Nachricht wurde gesendet!</b>";
} ?>
</body>
</html>
klarer fall von klammer vergessen, daher auch mein tipp an dich mit dem neuen editorPHP-Code:if (isset($_POST['submit'])) {

bevor ich mich jetzt zu sehr damit beschäftige kriegst du erstmal was zum lesen
Reguläre Ausdrücke (Regular Expressions / RegEx) - PHP - Tutorials @ tutorials.de: Forum, Tutorial, Anleitung, Schulung & HilfeGeändert von bronko (29.11.2007 um 20:13 Uhr)
HTML, CSS, PHP, JAVASCRIPT-Anfänger? http://www.peterkropff.de/index.htm
Warum Layout mit Tabellen dumm ist: http://seybold.jan-andresen.de/everything.php
- 29.11.2007 20:26 #30Benutzer
- Registriert seit
- 22.11.2007
- Beiträge
- 53
- Renommee-Modifikator
- 3
K danke jetzt geht das Formular endlich. Danke für deine Hilfe. Ich werde mir den Link mal durchlesen.
Könntest du mir vielleicht die anderen Fragen noch beantworten? Bitte Bitte, dann bin ich auch ruhig
Geändert von Doktor (29.11.2007 um 20:42 Uhr)
Aktive Benutzer
Aktive Benutzer
Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
Ähnliche Themen
-
Kontaktformular - versenden nicht über Outlook
Von Bechy im Forum HTML und XHTMLAntworten: 8Letzter Beitrag: 16.02.2007, 23:00 -
Kontaktformular
Von haddi im Forum PHPAntworten: 20Letzter Beitrag: 12.10.2006, 13:58 -
Kontaktformular in Ordnung? Und ein paar Fragen.
Von Cyndy im Forum HTML und XHTMLAntworten: 4Letzter Beitrag: 31.07.2006, 17:49 -
Text in Kontaktformular übertragen - BRAUCHE HILFE
Von Bassbrothermd im Forum JavaScript, AJAX und DHTMLAntworten: 3Letzter Beitrag: 03.12.2005, 17:42 -
Kontaktformular absenden
Von aggrosoldier im Forum HTML und XHTMLAntworten: 2Letzter Beitrag: 19.07.2005, 11:13



LinkBack URL
About LinkBacks


Lesezeichen