[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:
(2784 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: mail@sebastianrost.de";

/* E-Mail an mich */
mail("mail@sebastianrost.de", $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:
(2779 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 = 'nobody@example.com';
$subject = 'the subject';
$message = 'hello';
$headers = 'From: webmaster@example.com' . "\r\n" .
'Reply-To: webmaster@example.com' . "\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:
(2765 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo Ganesh,

ersmal vielen dank für deine Hilfe. ich habe folgendes probiert
Code
<?php 
$to = 'mail@sebastianrost.de';
$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: webmaster@example.com' . "\r\n" .
'Reply-To: webmaster@example.com' . "\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:
(2732 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
$to = $_GET['email']; // Empfänger


als Antwort auf: [#302189]

Kontaktformular

Sero
Beiträge gesamt: 143

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

ich benutze jetzt folgende php

Code
<?php 
$to = 'mail@sebastianrost.de';
$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:
(2703 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"] = 'infos@bitsof.ch';
$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!


als Antwort auf: [#302669]

Kontaktformular

Bitfilme
Beiträge gesamt: 264

15. Jul 2007, 15:04
Beitrag # 7 von 8
Beitrag ID: #302729
Bewertung:
(2679 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


als Antwort auf: [#302669]

Kontaktformular

Sero
Beiträge gesamt: 143

17. Jul 2007, 22:03
Beitrag # 8 von 8
Beitrag ID: #303198
Bewertung:
(2630 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