[GastForen Programmierung/Entwicklung PHP und MySQL Kontaktformular

  • Suche
  • Hilfe
  • Lesezeichen
  • Benutzerliste
Themen
Beiträge
Moderatoren
Letzter Beitrag

Kontaktformular

Sero
Beiträge gesamt: 143

11. Jul 2007, 21:11
Beitrag # 1 von 8
Bewertung:
(2684 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo,

habe auf meiner seite http://www.sebastianrost.de/...eneral_contact.shtml ein kontakformular eingebaut.

hier der code:

Code
<form action="../php/nachricht.php"  method="get" target="_self"> 
<table border="0" cellpadding="0" cellspacing="0" class="contact_box">
<tr class="contact_box_row">
<td class="contact_box_cell1">Name:</td>
<td><input class="singleline" name="name" type="text" maxlength="50"></td>
</tr>
<tr class="contact_box_row">
<td class="contact_box_cell1">E-Mail:</td>
<td><input class="singleline" name="email" type="text" maxlength="50" value="Absender E-Mail"></td>
</tr>
<tr class="contact_box_row">
<td class="contact_box_cell1">Betreff:</td>
<td><input class="singleline" name="betreff" type="text" maxlength="100"></td>
</tr>
<tr class="contact_box_row">
<td class="contact_box_cell1">Nachricht:</td>
<td><textarea class="multiline" name="nachricht" wrap="hard"></textarea></td>
</tr>
<tr class="contact_box_row">
<td align="right">&nbsp;</td>
<td>
<input class="form_button" type="submit" type="image" value=" Absenden ">
<input class="form_button" type="reset" value=" Abbrechen">
</td>
</tr>
</table>
</form>


php:

Code
<?php 
$mailtext = "";
$mailtext .="Hallo Sebastian, du hast eine neue Nachricht von:"."\n\n";
$mailtext .="Name: ".$_GET['name']."\n\n";
$mailtext .="Absender E-mail: ".$_GET['email']."\n\n";
$mailtext .="Betreff: ".$_GET['betreff']."\n\n";
$mailtext .="Nachricht: "."\n".$_GET['nachricht']."\n\n";



$vonadr = "From: [email protected]";

/* E-Mail an mich */
mail("[email protected]", $betreff, $mailtext, $email);

?>


soweit funktioniert alles, allerdings stimmt die absender-email noch nicht. was muss geändert werden, damit die absender-email in "von:" steht? - habe von php noch nicht soviel ahnung...:-)

meine 2 Frage: nachdem ich den button "absenden" drücke, kommt ne leere seite. ich möchte das hier folgende information erscheint: "Email wurde erfolgreich versendet." Zusätzlich will ich noch ein zurück-link anbieten.

Danke
Sero
X

Kontaktformular

ganesh
Beiträge gesamt: 1981

11. Jul 2007, 21:44
Beitrag # 2 von 8
Beitrag ID: #302153
Bewertung:
(2679 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Das Formular wird Spambots aber freuen... such im Forum nach Ansätzen, wie Du das Formular schützen kannst vor Hackern, Spammern & Co.

Absender etc. kannst Du im Header spezifizieren. Schau nach unter http://ch2.php.net/...en/function.mail.php
Da hat's Beispiele in Hülle und Fülle

Code
<?php 
$to = '[email protected]';
$subject = 'the subject';
$message = 'hello';
$headers = 'From: [email protected]' . "\r\n" .
'Reply-To: [email protected]' . "\r\n" .
'X-Mailer: PHP/' . phpversion();

mail($to, $subject, $message, $headers);
?>



als Antwort auf: [#302141]

Kontaktformular

Sero
Beiträge gesamt: 143

12. Jul 2007, 00:55
Beitrag # 3 von 8
Beitrag ID: #302189
Bewertung:
(2665 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo Ganesh,

ersmal vielen dank für deine Hilfe. ich habe folgendes probiert
Code
<?php 
$to = '[email protected]';
$subject = $_GET['betreff']."\n\n";
$message = "Hallo Sebastian, du hast eine neue Nachricht von: "."\n\n".
$_GET['name']."\n\n".
$_GET['nachricht']."\n\n".
$_GET['absender']."\n\n";
$headers = 'From: [email protected]' . "\r\n" .
'Reply-To: [email protected]' . "\r\n" .
'X-Mailer: PHP/' . phpversion();

/* E-Mail an mich */
mail($to, $subject, $message, $headers);
?>


ich bekomme das aber mit dem absender nicht hin. Kannst du mir da nochmal helfen?
mit dem formularschutz muss ich mich noch befassen.
bezüglich meiner 2 anfrage: wie kann man da rangehen, auch über php?

gute nacht
seb


als Antwort auf: [#302153]

Kontaktformular

Bitfilme
Beiträge gesamt: 264

13. Jul 2007, 14:55
Beitrag # 4 von 8
Beitrag ID: #302564
Bewertung:
(2632 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
$to = $_GET['email']; // Empfänger
Gruss Bitfilme


als Antwort auf: [#302189]

Kontaktformular

Sero
Beiträge gesamt: 143

14. Jul 2007, 17:52
Beitrag # 5 von 8
Beitrag ID: #302669
Bewertung:
(2613 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo nocheinmal

ich benutze jetzt folgende php

Code
<?php 
$to = '[email protected]';
$subject = $_GET['betreff']."\n\n";
$message = "Hallo Sebastian, du hast eine neue Nachricht erhalten:"."\n\n".
"Von:"."\n".$_GET['name']."\n\n".
"Nachricht:"."\n"."-----------------------------------------"."\n".$_GET['nachricht']."\n\n".
"-----------------------------------------"."\n".$_GET['absender']."\n\n";
$headers = "MIME-Versin: 1.0\r\n" .
"Content-type: text/plain; charset=ISO-8859-1; format=flowed\r\n" .
"Content-Transfer-Encoding: 8bit\r\n" .
"From: $absender\r\n" .
"X-Mailer: PHP" . phpversion();

/* E-Mail an mich */
mail($to, $subject, $message, $headers);

?>


Nachdem abschicken der nachricht soll diese Seite erscheinen: http://www.sebastianrost.de/...ontact_message.shtml. Wie kann ich das ins skript einbauen?

hab hier noch etwas zum spamschutz gefunden. macht das sinn?
Code
# Spammschutz 
# vom Aufruf bis zum Abschicken dürfen nur 20 Sekunden vergangen sein
# alles andere ist Spam
if (time() - $zugang > 20){
echo "Spammer!";
exit;
}
# Spammschutz Ende

vielleicht könnt ihr mir mal ein paar brauchbare links zum spamschutz geben.
Danke
Sero


als Antwort auf: [#302564]

Kontaktformular

Bitfilme
Beiträge gesamt: 264

14. Jul 2007, 20:31
Beitrag # 6 von 8
Beitrag ID: #302687
Bewertung:
(2603 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Habe mal einiges Verbessert
Dies ist Sicherer von Spam
Code
<form action="../php/nachricht.php"  method="post" target="_self"> 
<input type="hidden" name="Email_Form" value="Senden">
<table border="0" cellpadding="0" cellspacing="0" class="contact_box">
<tr class="contact_box_row">
<td class="contact_box_cell1">Name:</td>
<td><input class="singleline" name="name" type="text" maxlength="50"></td>
</tr>
<tr class="contact_box_row">
<td class="contact_box_cell1">E-Mail:</td>
<td><input class="singleline" name="email" type="text" maxlength="50" value="Absender E-Mail"></td>
</tr>
<tr class="contact_box_row">
<td class="contact_box_cell1">Betreff:</td>
<td><input class="singleline" name="betreff" type="text" maxlength="100"></td>
</tr>
<tr class="contact_box_row">
<td class="contact_box_cell1">Nachricht:</td>
<td><textarea class="multiline" name="nachricht" wrap="hard"></textarea></td>
</tr>
<tr class="contact_box_row">
<td align="right">&nbsp;</td>
<td><input class="form_button" type="submit" value=" Absenden ">
<input class="form_button" type="reset" value=" Abbrechen"></td>
</tr>
</table>
</form>


Code
<?php 
if (preg_match("/^[a-zA-Z0-9]+((\.|-|_)[a-zA-Z0-9]+)*@([a-zA-Z0-9-]+\.)+ ([a-zA-Z]{2,4})$/", $_POST['email']) &&
$_SERVER['REQUEST_METHOD'] == 'POST' && !$_SERVER['HTTP_USER_AGENT'] == "" && isset($_POST['Email_Form']) &&
$_POST['Email_Form'] == "Senden" && isset($_POST['email']) && $_POST['email']){
$email["to"] = '[email protected]';
$email["subject"] = $_POST['betreff']."\n\n";
$email["message"][] = "Hallo Sebastian, du hast eine neue Nachricht erhalten:\n\n";
$email["message"][] = "Von:\n".$_POST['name']."\n\n";
$email["message"][] = "Nachricht:\n";
$email["message"][] = "-----------------------------------------\n";
$email["message"][] = $_POST['nachricht']."\n\n";
$email["message"][] = "-----------------------------------------\n";
$email["message"][] = $_POST['absender']."\n\n";

$email["headers"][] = "MIME-Versin: 1.0\r\n";
$email["headers"][] = "Content-type: text/plain; charset=ISO-8859-1; format=flowed\r\n";
$email["headers"][] = "Content-Transfer-Encoding: 8bit\r\n";
$email["headers"][] = "From: $absender\r\n";
$email["headers"][] = "X-Mailer: PHP" . phpversion();

} elseif(isset($_POST['Email_Form']) && $_POST['Email_Form'] == "Senden") {
echo 'Fehler: E-Mail ungültig<br>';
}

if (!(empty($email["to"]) || empty($_POST['betreff']) ||
empty($email["headers"]) || empty($_POST['nachricht']) ||
empty($_POST['name']) || empty($email["message"]) || empty($_POST['email']))){

if (mail($email["to"], $email["subject"], implode("", $email["message"]), implode("", $email["headers"]))){
header("http://www.sebastianrost.de/html/general_contact_message.shtml"); // Alles OK umleiten
exit;
} else {
echo 'Fehler: Nachricht konnte nicht versand werden<br>';
}

} elseif(isset($_POST['Email_Form']) && $_POST['Email_Form'] == "Senden") {
echo 'Fehler: Bitte Pflichtfelder ausfühlen';
}

?>

Hoffe das Dir dass was nützt!
Gruss Bitfilme


als Antwort auf: [#302669]

Kontaktformular

Bitfilme
Beiträge gesamt: 264

15. Jul 2007, 15:04
Beitrag # 7 von 8
Beitrag ID: #302729
Bewertung:
(2579 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Es sollte natürlich header("location: http://www.sebastianrost.de/html/general_contact_message.shtml"); heissen! Sorry
Gruss Bitfilme


als Antwort auf: [#302669]

Kontaktformular

Sero
Beiträge gesamt: 143

17. Jul 2007, 22:03
Beitrag # 8 von 8
Beitrag ID: #303198
Bewertung:
(2530 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo Bitfilme,

ersteinmal vielen Dank für deine Bemühungen :-)

ich habe deine verbesserungen schon eingebaut, siehe hier:
http://www.sebastianrost.de/...eneral_contact.shtml.
Leider funktoniert das php noch nicht ganz. Auf meiner Kontaktseite findest du einen link zum php skript.
Ich würde mich freuen, wenn du da nocheinmal reinschauen könntest. Ich habe dein Skript eigentlich nur kopiert und meine email adresse ausgewechselt.

danke
Sebastian


als Antwort auf: [#302729]
X

Veranstaltungskalender

Hier können Sie Ihre Anlässe eintragen, welche einen Zusammenhang mit den Angeboten von HilfDirSelbst.ch wie z.B. Adobe InDesign, Photoshop, Illustrator, PDF, Pitstop, Affinity, Marketing, SEO, Büro- und Rechtsthemen etc. haben. Die Einträge werden moderiert freigeschaltet. Dies wird werktags üblicherweise innert 24 Stunden erfolgen.

pdf-icon Hier eine kleine Anleitung hinsichtlich Bedeutung der auszufüllenden Formularfelder.

Veranstaltungen
05.02.2021 - 05.11.2021

Digicomp Academy AG, Limmatstrasse 50, 8005 Zürich
Freitag, 05. Feb. 2021, 13.00 Uhr - Freitag, 05. Nov. 2021, 17.00 Uhr

Lehrgang

Bilden Sie sich zum zertifizierten Publishing-Multimedia-Profi aus. Neben Fotografie und Video befassen Sie sich mit der Medienproduktion, digitalen Publikationen und dem Webdesign für Desktop- und mobile Endgeräte.

Preis: CHF 10'500.-
Dauer: 30 Tage (ca. 210 Lektionen) – Unterricht findet jeweils am Freitag von 13 - 19 Uhr und Samstag von 09 - 17 Uhr statt

Ja

Organisator: Digicomp Academy AG

Kontaktinformation: Kundenberater-Team, E-Mailkundenberatung AT digicomp DOT ch

digicomp.ch/d/9PM

Veranstaltungen
12.03.2021 - 16.07.2021

Digicomp Academy AG, Zürich oder virtuell
Freitag, 12. März 2021, 13.00 Uhr - Freitag, 16. Juli 2021, 17.00 Uhr

Lehrgang

Steigen Sie in die Welt des Publishings ein und erlangen Sie die Zertifizierung von publishingNETWORK. Lernen Sie in diesem Lehrgang Druckmedien professionell zu erarbeiten, druckfertige PDFs zu erstellen und CI/CD-Vorgaben umzusetzen.

Preis: CHF 6'300.-
Dauer: 18 Tage (ca. 126 Lektionen) – Unterricht findet jeweils am Freitag von 13 - 19 Uhr und Samstag von 09 - 17 Uhr statt.

Ja

Organisator: Digicomp Academy AG

Kontaktinformation: Kundenberater-Team, E-Mailkundenberatung AT digicomp DOT ch

digicomp.ch/d/9PBAS