WinFuture-Forum.de: Php-kontaktformular - WinFuture-Forum.de

Zum Inhalt wechseln

Nachrichten zum Thema: Entwicklung
  • 2 Seiten +
  • 1
  • 2

Php-kontaktformular


#1 Mitglied ist offline   hannesh 

  • Gruppe: aktive Mitglieder
  • Beiträge: 111
  • Beigetreten: 20. Juni 06
  • Reputation: 0

geschrieben 21. Juni 2006 - 19:19

Hallo Leute,
ich bin totaler PHP-Programmier-Neuling, und leider sind im moment die finanziellen Möglichkeiten nicht da, um ein Buch von Gallielocomputing o.ä. zu kaufen, da diese Qualitätsbücher teuer sind. Da ich jetzt meine Homepage (fast) fertiggestellt habe (FrontPage 2003) bräuchte ich jetzt jedoch ein Kontaktformular. Es soll folgende Felder haben:
Name (Pflichteingabe):
E-Mail Adresse (Pflichteingabe):
Nachricht:

Die Nachricht soll an [email protected] weitergeleitet werden.

Vielleicht könnte jemand den PHP-Code posten.

Vielen Dank!

Gruß
hannesh :)
0

Anzeige



#2 Mitglied ist offline   NightTiger 

  • Gruppe: aktive Mitglieder
  • Beiträge: 701
  • Beigetreten: 19. März 06
  • Reputation: 0
  • Wohnort:Bern
  • Interessen:Webdesign -> (X)HTML, CSS, ein bisschen PHP und ein bisschen JavaScript ;))

geschrieben 21. Juni 2006 - 19:37

Dieser Code wurde von mir noch nicht getestet! Deshalb auch alle Angaben ohne Gewär!

formular.html (das ganz normale Formular, wo der User die Sachen eingeben soll!)
<form action="schicken.php" method="post">
Name: <input type="text" name="name" /><br /><br />
eMail: <input type="text" name="email" /><br /><br />
Nachricht: <input type="text" name="nachricht" /><br /><br />
<input type="submit" name="Senden" />
</form>


schicken.php
<?php
if(empty($_POST['name']) || empty($_POST['email'])) {
echo "Bitte fülle alle notwendigen (Name und eMail-Adresse) aus!"; }
else {
$mail_empfaenger="[email protected]";
$mail_absender=$_POST['email'];
$betreff="(!!!BITTE NOCH ANPASSEN!!!)";
$text=$_POST['nachricht'];
mail($mail_empfaenger, $betreff, $text,"from:$mail_absender"); }
?>


Wie oben geschrieben sind diese Angaben ohne Gewähr!

Ich hoffe, dass sich kein Fehler eingeschlichen hat, denn ich kann noch nicht so gut PHP programmieren ;)

Wenn es dennoch Fehler haben sollte, entschuldige ich mich jetzt schon...

EDIT:\\ formular.html wurde noch bearbeitet.. wegen dem Aussehen ;)

EDIT2:\\ irgendwie funzt der Absenden-Code noch nicht.. :D
Was würde an folgendem Code nicht stimmen?
if(empty($_POST['name']) || empty($_POST['email'])) {
echo "Bitte fülle alle notwendigen (Name und eMail-Adresse) aus!"; }
else {
$mail_empfaenger="[email protected]";
$mail_absender=$_POST['email'];
$betreff="(!!!BITTE NOCH ANPASSEN!!!)";
$text=$_POST['nachricht'];
$kopf = "[KONTAKT]E-Mail von ".$_POST['name']." (".$_POST['email'].")";
$nachricht = $_POST['name']." (".$mail_absender.") schrieb:\n\nBetreff: ".$betreff."\nText: ".$text;
if(mail($empfaenger, $kopf, $nachricht, "From: ".$mail_absender)) {
	echo "E-Mail erfolgreich versandt."; }
else {
	echo "Fehler beim Versenden der E-Mail.";}
}

Dieser Beitrag wurde von NightTiger bearbeitet: 22. Juni 2006 - 21:38

0

#3 Mitglied ist offline   hannesh 

  • Gruppe: aktive Mitglieder
  • Beiträge: 111
  • Beigetreten: 20. Juni 06
  • Reputation: 0

geschrieben 21. Juni 2006 - 19:53

Vielen Dank schonmal.
Könnte man bei der Nachricht vielleicht ein mehrzeiliges Eingabefeld einfügen? :D

Gruß
0

#4 Mitglied ist offline   NightTiger 

  • Gruppe: aktive Mitglieder
  • Beiträge: 701
  • Beigetreten: 19. März 06
  • Reputation: 0
  • Wohnort:Bern
  • Interessen:Webdesign -&gt; (X)HTML, CSS, ein bisschen PHP und ein bisschen JavaScript ;))

geschrieben 21. Juni 2006 - 19:55

Ja, natürlich!

Ersetze

<input type="text" name="nachricht" />


mit

<textarea name="nachricht" cols="40" rows="5"></textarea>
;)

PS: Siehe EDIT 2 von mir :D
0

#5 Mitglied ist offline   hannesh 

  • Gruppe: aktive Mitglieder
  • Beiträge: 111
  • Beigetreten: 20. Juni 06
  • Reputation: 0

geschrieben 21. Juni 2006 - 20:19

Vielen Dank schonmal! ;) .

Leider besteht das Problem aus Edit2 immer noch, und ich würde mich sehr darüber freuen, wenn einer eine Lösung wüsste. ;) Vielen Dank! :D
0

#6 Mitglied ist offline   NightTiger 

  • Gruppe: aktive Mitglieder
  • Beiträge: 701
  • Beigetreten: 19. März 06
  • Reputation: 0
  • Wohnort:Bern
  • Interessen:Webdesign -&gt; (X)HTML, CSS, ein bisschen PHP und ein bisschen JavaScript ;))

geschrieben 21. Juni 2006 - 20:32

Meiner Meinung nach müsste der Code unterhalb von Edit 2 funktionieren.. Aber habe selber ausprobiert: geht wirklich nicht.. Weiss auch nicht weiter, sorry :D

Naja, ich bin halt noch kein Profi.. Und kein Mensch ist perfekt ;)
0

#7 Mitglied ist offline   MNG 

  • Gruppe: aktive Mitglieder
  • Beiträge: 293
  • Beigetreten: 29. März 06
  • Reputation: 0

geschrieben 21. Juni 2006 - 20:33

Moin,

so auf den ersten Blick:
Im Aufruf von mail(...) benutzt du $empfaenger, müsste aber $mail_empfaenger sein.
Vor EDIT2 war das sogar noch richtig :D
Evtl. hat auch der Hoster, bei dem ihr das Skript laufen lasst die mail()-Funktion deaktiviert. Welche Fehlermeldung kommt denn?
0

#8 Mitglied ist offline   hannesh 

  • Gruppe: aktive Mitglieder
  • Beiträge: 111
  • Beigetreten: 20. Juni 06
  • Reputation: 0

geschrieben 21. Juni 2006 - 20:40

Also bei mir wird dann das Script (der inhalt der *.php-Datei angezeigt).
0

#9 Mitglied ist offline   MNG 

  • Gruppe: aktive Mitglieder
  • Beiträge: 293
  • Beigetreten: 29. März 06
  • Reputation: 0

geschrieben 21. Juni 2006 - 20:54

!!!
Der Inhalt der .php-Datei wird angezeigt? Hast du vielleicht die <?php und ?> Tags am Anfang und am Ende der Datei vergessen?
0

#10 Mitglied ist offline   hannesh 

  • Gruppe: aktive Mitglieder
  • Beiträge: 111
  • Beigetreten: 20. Juni 06
  • Reputation: 0

geschrieben 21. Juni 2006 - 20:59

Ich hatte es vergessen, aber jetzt wird der Inhalt mit dem <php? und ?> (oder so ähnlich ;) ) angezeigt :D .
0

#11 Mitglied ist offline   NightTiger 

  • Gruppe: aktive Mitglieder
  • Beiträge: 701
  • Beigetreten: 19. März 06
  • Reputation: 0
  • Wohnort:Bern
  • Interessen:Webdesign -&gt; (X)HTML, CSS, ein bisschen PHP und ein bisschen JavaScript ;))

geschrieben 21. Juni 2006 - 21:01

So.. mit der veränderten Variable funzt es bei mir auf dem Server...

Hier der endgültige Code (getestet!):

formular.html
<form action="schicken.php" method="post">
Name: <input type="text" name="name" /><br /><br />
eMail: <input type="text" name="email" /><br /><br />
Nachricht: <textarea name="nachricht" cols="40" rows="5"></textarea><br /><br />
<input type="submit" name="Senden" />
</form>


schicken.php
<?php
if(empty($_POST['name']) || empty($_POST['email'])) {
echo "Bitte fülle alle notwendigen (Name und eMail-Adresse) aus!"; }
else {
$mail_empfaenger="[email protected];
$mail_absender=$_POST['email'];
$betreff="(!!!BITTE NOCH ANPASSEN!!!)";
$text=$_POST['nachricht'];
$nachricht = $_POST['name']." (".$mail_absender.") schrieb:\n\nBetreff: ".$betreff."\nText: ".$text;
if(mail($mail_empfaenger, $betreff, $nachricht, "From: ".$mail_absender)) {
	echo "E-Mail erfolgreich versandt."; }
else {
	echo "Fehler beim Versenden der E-Mail.";}
}
?>


Müsste so nun wirklich funktionieren! ;)

Bei Fragen bitte einfach schreiben!

@MNG

Danke, hab das echt nicht gesehen :D


EDIT:\\

Zitat

aber jetzt wird der Inhalt mit dem <php? und ?> (oder so ähnlich wink.gif ) angezeigt


Unterstützt dein Server überhaupt PHP? ;)


EDIT:\\

Immer diese **** Edits von mir.. Sorry.. Hab jetzt noch die $kopf-Variable weggenommen und in mail() durch $betreff ersetzt.. Wir wollen ja nicht überflüssigen Code, oder?

Dieser Beitrag wurde von NightTiger bearbeitet: 22. Juni 2006 - 21:39

0

#12 Mitglied ist offline   hannesh 

  • Gruppe: aktive Mitglieder
  • Beiträge: 111
  • Beigetreten: 20. Juni 06
  • Reputation: 0

geschrieben 21. Juni 2006 - 21:23

Es funktioniert:
http://pcf.pc.ohost.de/phpBB2/
Vielen herzlichen Dank euch allen!!! :D ;) ;)
0

#13 Mitglied ist offline   NightTiger 

  • Gruppe: aktive Mitglieder
  • Beiträge: 701
  • Beigetreten: 19. März 06
  • Reputation: 0
  • Wohnort:Bern
  • Interessen:Webdesign -&gt; (X)HTML, CSS, ein bisschen PHP und ein bisschen JavaScript ;))

geschrieben 21. Juni 2006 - 21:27

Kein Problem :D Wir helfen doch gerne!
0

#14 Mitglied ist offline   K050V4 

  • Gruppe: aktive Mitglieder
  • Beiträge: 788
  • Beigetreten: 13. August 04
  • Reputation: 0
  • Geschlecht:Männlich
  • Wohnort:Stuttgart
  • Interessen:(X)HTML<br />CSS2+<br />PHP 4/5<br />MySQL 5<br />Symfony 1.2+<br />JavaScript / AJAX<br />jQuery<br />C++<br />C#<br />Java<br />...

geschrieben 22. Juni 2006 - 14:05

Hallo, :P

Hier eins von mir. Ich hab's verbessert ;) ;)


Features:

• Einschränkung der Eingabe auf eine bestimmten Anzahl von Zeichen (Schutz vor spamming - veränder bar bei [maxlength="X"])
• Voreingabe (Name & eMail steht schon da. Beim daraufklicken verschwindet die Eingabe und der User kann seine Daten eingeben)
• Prüfen der eMailadresse auf Gültigkeit in Form von [email protected]|com|net|... (Ob es die von User eingegebene eMailadresse wirklich gibt ist eine andere Frage.)
• Betreff einstellbar ^^
• eMailadresse & Name zusammengefasst ~> [Von: Sender <eMailadresse>]
• etc. ;)

Hab ich noch nicht getestet aber müsst eigentlich funtzen ;)



Eingabe:
<form method="POST" action="mail.php">

Name:<br>
<input typ="text" name="name" VALUE="Name" onBlur="if (value =='') {value = 'Name'}" onFocus="if (value == 'Name') {value =''}" maxlength="50">
<br><br>

eMail:<br>
<input typ="text" name="email" VALUE="[email protected]" onBlur="if (value =='') {value = '[email protected]'}" 
onFocus="if (value == '[email protected]') {value =''}" maxlength="50">
<br><br>

Nachricht:<br>
<textarea cols="40" rows="7" name="nachricht" maxlength="780"></textarea>
<br><br>

<input type="submit" value="Abschicken">
</form>


mail.php
<?php
if($_POST['nachricht']=="" | $_POST['name']=="Name" | $_POST['email']=="[email protected]" ) { 	
echo 'Bitte tragen sie ihren Namen, eMail, Nachricht ein!'; exit; }
$empaenger = "[email protected]";
$betreff = "eMail für dich!";
$sender = $_POST['name'];
$sendermail = $_POST['email'];
$valid = "^[_\.0-9a-z-]+@([0-9a-z][0-9a-z]+\.)+[a-z]{2,4}$";
if(eregi($valid,$sendermail)) {
	$senden;
	} else {
	echo 'Bitte geben Sie eine gültige eMailadresse an!';
	exit;
	}
$text = "\n\n" . $sender . "schreibt:\n\n\n" . $_POST['nachricht'] ."";
$from = "From: $sender < $sendermail >";

$senden = mail($empaenger, $betreff, $text, $from);
if($senden) {
	echo 'Danke '.$sender.'!<br>Ihre eMail wurde gesendet!';
	} else { echo 'Es ist ein Fehler beim senden der eMail aufgetretten!'; }
?>

Dieser Beitrag wurde von keny bearbeitet: 22. Juni 2006 - 14:07

Zitat

"In der Welt des Erkennbaren ist die Idee des Guten die höchste." - Platon

Spritify! Easy CSS-Sprite-Generator | Albanisch Deutsch Wörterbuch
0

#15 Mitglied ist offline   hannesh 

  • Gruppe: aktive Mitglieder
  • Beiträge: 111
  • Beigetreten: 20. Juni 06
  • Reputation: 0

geschrieben 22. Juni 2006 - 14:29

Also, der Code von keny ist der von NightTiger, nur verbessert, richtig?
Kann ich es auch so einstellen, das anstatt "Die Mail wurde versandt!" bzw. "Mail nicht erfolgreich gesendet!" eine HTML-Datei im gleichen Fenster geöffnet wird?

Dieser Beitrag wurde von hannesh bearbeitet: 22. Juni 2006 - 14:30

0

Thema verteilen:


  • 2 Seiten +
  • 1
  • 2

1 Besucher lesen dieses Thema
Mitglieder: 0, Gäste: 1, unsichtbare Mitglieder: 0