• Aktualisierte Forenregeln

    Eine kleine Änderung hat es im Bereich Forenregeln unter Abschnitt 2 gegeben, wo wir nun explizit darauf verweisen, dass Forenkommentare in unserer Heftrubrik Leserbriefe landen können.

    Forenregeln


    Vielen Dank

Brauche Hilfe bei Formular und PHP-Mail.

unterseebotski

Spiele-Enthusiast/in
Registriert
05.11.2003
Beiträge
1.327
Reaktionspunkte
0
Also ich habe folgendes Problem:
Ich habe mittels html ein einfaches Formular erstellt, welches ein paar Parameter (eine Postadresse) abfragt, damit man auf meiner HP eine CD bestellen kann und ich den "mailto"-Link veraltet finde.
Es sieht so aus:
formular.html schrieb:
<html>

<head>
<title>blafasel</title>
</head>

<body bgcolor="#CDB5A7">
<form action="action.php" method="post">
<p><font face="Arial,Helvetica,Geneva,Swiss,SunSans-Regular">Nom:<spacer size="41" type="horizontal"></font> <input type="text" name"nom" size="36" /> </p>
<p><font face="Arial,Helvetica,Geneva,Swiss,SunSans-Regular">Adresse:<spacer size="15" type="horizontal"></font> <input type="text" name"adresse" size="36" /></p>
<p><font face="Arial,Helvetica,Geneva,Swiss,SunSans-Regular">Code Postal:</font> <input type="text" name"codepostal" size="5" maxlength="5" /></p>
<p><font face="Arial,Helvetica,Geneva,Swiss,SunSans-Regular">Commune:</font> <input type="text" name"commune" size="36" /></p>
<input type="submit" />
</form>
</body>

</html>
Hat man das Formular ausgefüllt und drückt auf "Submit" soll action.php (eine neue Datei) ausgeführt werden, was auch passiert.

action.php schrieb:
<?
$empfaenger = "meineadresse@mail.net";
$betreff = "blafasel";
$text = "Name: $nom
Adresse: $adresse
PLZ: $codepostal
Stadt: $commune
hat eine CD im Internet angefordert.";
mail($empfaenger, $betreff, $text);
echo"Vielen Dank! Die CD wird Ihnen zugesendet.";
?>
Das Problem bei der Sache ist: die Variablen vom vorherigen Formular werden nicht an meine Email gesendet. Es wird eine Email gesendet, die $variablen werden aber nicht berücksichtigt. An dieser Stelle ist <NULL> also nix...
Warum nicht? Was habe ich falsch gemacht?
Wäre nett, wenn mir jemand konkrete Hilfe geben kann, also "wie mache ich das"? Danke schonmal! :-(
 
verwende das $_POST bzw. $_REQUEST array.
Code:
   print_r($_POST);
   $nom = $_POST['nom'];

und schmeiss mal das seit 10000jahren veraltete <font> raus..

Code:
 name"commune"
kann auch nicht funktionieren..

und ich wuerde vllt. noch ne kleine begrenzung an emails die gesendet werden koennen einbauen, mit nem skript kann man dich sonst prima zuspammen ;)
 
marky68 am 04.01.2006 12:22 schrieb:
verwende das $_POST bzw. $_REQUEST array.
Code:
   print_r($_POST);
   $nom = $_POST['nom'];
Also wie würde mein äkt'schn-script dann aussehen? Du musst wissen, dass ich über großen Reichtum an Unwissen über PHP verfüge...
:-|

marky68 am 04.01.2006 12:22 schrieb:
und schmeiss mal das seit 10000jahren veraltete <font> raus..
Ähmm, das macht GoLive. Ich benutze ein html-Layout-Programm, weil ich die Standard-Schrift "Times" am Bildschirm zu hässlich finde. Daher das font. Gehts auch anders...?

marky68 am 04.01.2006 12:22 schrieb:
Code:
 name"commune"
kann auch nicht funktionieren..
Wie dann? $commune...?

marky68 am 04.01.2006 12:22 schrieb:
und ich wuerde vllt. noch ne kleine begrenzung an emails die gesendet werden koennen einbauen, mit nem skript kann man dich sonst prima zuspammen ;)
Das ist eine gute Idee. Nur leider habe ich keinen Plan, wie sowas aussehen soll.
Ich wollte lediglich den "mailto:"-Link mal endlich ersetzen, weil der ja auch schon 100000Jahre alt ist. Von PHP habe ich keinen blassen - wie Du sicherlich bemerkt hast - das oben habe ich mir aus 2 Tutorials zusammengebastelt. Klappt ja auch, aber eben nur 50%... ;-(
 
unterseebotski am 04.01.2006 12:52 schrieb:
marky68 am 04.01.2006 12:22 schrieb:
verwende das $_POST bzw. $_REQUEST array.
Code:
   print_r($_POST);
   $nom = $_POST['nom'];
Also wie würde mein äkt'schn-script dann aussehen? Du musst wissen, dass ich über großen Reichtum an Unwissen über PHP verfüge...
:-|

hab ich ja im prinzip schon geschrieben, aber schau mal unten

marky68 am 04.01.2006 12:22 schrieb:
und schmeiss mal das seit 10000jahren veraltete <font> raus..
Ähmm, das macht GoLive. Ich benutze ein html-Layout-Programm, weil ich die Standard-Schrift "Times" am Bildschirm zu hässlich finde. Daher das font. Gehts auch anders...?

mit CSS zB.


marky68 am 04.01.2006 12:22 schrieb:
Code:
 name"commune"
kann auch nicht funktionieren..
Wie dann? $commune...?

name="commune"


also alles insgesamt:
formular.html
Code:
<html>

 <head>
  <title>blafasel</title>
  <style type='text/css'>body { 
    font-family:Arial,Helvetica,Geneva,Swiss,SunSans-Regular; 
    background-color:#CDB5A7;
   }</style>
 </head>

 <body>
  <form action="action.php" method="post">
   <p>Nom:<spacer size="41" type="horizontal"> 
   <input type="text" name="nom" size="36" /> </p>
   <p><Adresse:<spacer size="15" type="horizontal"> 
   <input type="text" name="adresse" size="36" /></p>
   <p>Code Postal: 
   <input type="text" name="codepostal" size="5" maxlength="5" /></p>
   <p>Commune: 
   <input type="text" name="commune" size="36" /></p>
   <input type="submit" />
  </form>
 </body>

</html>

action.php
Code:
<?php
$empfaenger = "meineadresse@mail.net";
$betreff = "blafasel";
$text = "Name: $_POST['nom']
Adresse: $_POST['adresse']
PLZ: $_POST['codepostal']
Stadt: $_POST['commune']
hat eine CD im Internet angefordert.";
mail($empfaenger, $betreff, $text);
echo"Vielen Dank! Die CD wird Ihnen zugesendet.";
?>

das ist weder besonders sauber noch elegant, aber es duerfte funktionieren.
 
marky68 am 04.01.2006 13:09 schrieb:
Code:
<?php
$empfaenger = "meineadresse@mail.net";
$betreff = "blafasel";
$text = "Name: $_POST['nom']
Adresse: $_POST['adresse']
PLZ: $_POST['codepostal']
Stadt: $_POST['commune']
hat eine CD im Internet angefordert.";
mail($empfaenger, $betreff, $text);
echo"Vielen Dank! Die CD wird Ihnen zugesendet.";
?>

das ist weder besonders sauber noch elegant, aber es duerfte funktionieren.
Nö, schade, leider nicht:
dämliches php schrieb:
Parse error: parse error, unexpected T_ENCAPSED_AND_WHITESPACE, expecting T_STRING or T_VARIABLE or T_NUM_STRING in /*****/test/action.php on line 4

Könnte ich denn diese Email-Funktion auch schon im html-Formular einbauen? Also den Submit-Button so umfunktionieren, dass er den PHP-Code auf der HTML-Seite ausführt.
Dann müsste es doch eigentlich gehen, oder nicht? Aber wie mach ich das mit der Taste...?
Edit: vielleicht, in dem ich sie mit "Aktion ausführen" belege?
Code:
<input onclick="CSAction(new Array(/*CMP*/'BFE193F80'));" type="button" name="anforder" value="CD anfordern" tabindex="1" csclick="BFE193F80" />
Aber wie verknüpfe ich das mit dem php-Script?
Kann mir einer helfen...?
 
hallo,
diesmal ein getestetes und funktionierendes, spartanisches skript.
Code:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html>
 <head>
  <title>Formmail</title>
  <meta http-equiv="content-type" content="text/html; charset=iso-8859-1" />
  <style type='text/css'>
   body { 
    font-family:Arial,Helvetica,Geneva,Swiss,SunSans-Regular; 
    background-color:#CDB5A7;
   }
  </style>
 </head>
 <body>
  <div>
   <form action="?submit" method="post">
    <div>
    Nom: 
    <input type="text" name="nom" size="36" /><br />
    Adresse:
    <input type="text" name="adresse" size="36" /><br />
    Code Postal: 
    <input type="text" name="codepostal" size="5" maxlength="5" /><br />
    Commune: 
    <input type="text" name="commune" size="36" /><br />
    <br />
    <input type="submit" />
   </form>
   <?php
    if ($_SERVER["QUERY_STRING"] == "submit") {
     $empfaenger = "fgli@gmx.net";
     $betreff = "Formmail";
     $text = "Name: ".$_POST['nom']."\n   Adresse: ".$_POST['adresse'].
              "\n   PLZ: ". $_POST['codepostal']."\n   Stadt: ".
              $_POST['commune']."\n   hat eine CD im Internet angefordert.";
     @mail($empfaenger,$betreff,$text);
     echo "Vielen Dank! Die CD wird Ihnen zugesendet.";
    }
   ?>
  </div>
 </body>
</html>

Vorsicht: es erfolgt keinerlei pruefung der eingegebenen variablen!!
 
Ist das Skript irgendwo online?
Könnte n Haufen Geld bringen, wenn man die Adresse der Webseite an professionelle Spammer verkauft... :S
 
skicu am 06.01.2006 11:30 schrieb:
Ist das Skript irgendwo online?
Könnte n Haufen Geld bringen, wenn man die Adresse der Webseite an professionelle Spammer verkauft... :S

marky68 am 04.01.2006 12:22 schrieb:
und ich wuerde vllt. noch ne kleine begrenzung an emails die gesendet werden koennen einbauen, mit nem skript kann man dich sonst prima zuspammen ;)

marky68 am 04.01.2006 16:10 schrieb:
hallo,
diesmal ein getestetes und funktionierendes, spartanisches skript.

Vorsicht: es erfolgt keinerlei pruefung der eingegebenen variablen!!

:rolleyes:
ach uebrigens, hier findest du das skript, falls du "die adresse an professionelle spammer verkaufen" willst..
 
marky68 am 06.01.2006 12:34 schrieb:
skicu am 06.01.2006 11:30 schrieb:
Ist das Skript irgendwo online?
Könnte n Haufen Geld bringen, wenn man die Adresse der Webseite an professionelle Spammer verkauft... :S

marky68 am 04.01.2006 12:22 schrieb:
und ich wuerde vllt. noch ne kleine begrenzung an emails die gesendet werden koennen einbauen, mit nem skript kann man dich sonst prima zuspammen ;)

marky68 am 04.01.2006 16:10 schrieb:
hallo,
diesmal ein getestetes und funktionierendes, spartanisches skript.

Vorsicht: es erfolgt keinerlei pruefung der eingegebenen variablen!!

:rolleyes:
ach uebrigens, hier findest du das skript, falls du "die adresse an professionelle spammer verkaufen" willst..
Mir ist klar, dass du ihn davor gewarnt hast, das Script 'so wie es ist' öffentlich zugänglich zu machen. Ich wollte dem nur mit etwas schlechtem Humor Nachdruck verleihen.
:rolleyes:

Für die, die sich auch ein Mailformular basteln wollen:
http://www.heise.de/security/artikel/66815
http://securephp.damonkohler.com/index.php/Email_Injection
 
skicu am 06.01.2006 13:23 schrieb:
marky68 am 06.01.2006 12:34 schrieb:
skicu am 06.01.2006 11:30 schrieb:
Ist das Skript irgendwo online?
Könnte n Haufen Geld bringen, wenn man die Adresse der Webseite an professionelle Spammer verkauft... :S

marky68 am 04.01.2006 12:22 schrieb:
und ich wuerde vllt. noch ne kleine begrenzung an emails die gesendet werden koennen einbauen, mit nem skript kann man dich sonst prima zuspammen ;)

marky68 am 04.01.2006 16:10 schrieb:
hallo,
diesmal ein getestetes und funktionierendes, spartanisches skript.

Vorsicht: es erfolgt keinerlei pruefung der eingegebenen variablen!!

:rolleyes:
ach uebrigens, hier findest du das skript, falls du "die adresse an professionelle spammer verkaufen" willst..
Mir ist klar, dass du ihn davor gewarnt hast, das Script 'so wie es ist' öffentlich zugänglich zu machen. Ich wollte dem nur mit etwas schlechtem Humor Nachdruck verleihen.
:rolleyes:

Für die, die sich auch ein Mailformular basteln wollen:
http://www.heise.de/security/artikel/66815
http://securephp.damonkohler.com/index.php/Email_Injection
Hmm, das Skript funzt leider nicht. Muss ich vielleicht den <!Doctype...>-Zusatz doch einbauen? *g*
Naja, schade, dass ich es eh nicht verwenden soll. Muss ich halt den "mailto:"-Link lassen, auch wenn ich das sehr mittelalterlich finde. Warum ist so ne Adressabfrage für Anfänger auch so ein komplizierter Mist? Was wäre denn die Alternative? Dass die Adresse in eine Datenbank eingetragen wird? Das wird ja immer komplizierter... ;-( :pissed: :-S
 
skicu am 06.01.2006 13:23 schrieb:
Für die, die sich auch ein Mailformular basteln wollen:
http://www.heise.de/security/artikel/66815
http://securephp.damonkohler.com/index.php/Email_Injection
Ok, ich habe mir also den Heise-Artikel durchgelesen. Da ich - wie bereits erwähnt - wenig bzw. keine Ahnung von php habe, wäre jetzt meine Frage: wie kann ich diese beiden Listings, also Nr. 1 und 2 in mein Skript einbauen? Könntest Du mir da helfen? Das wäre echt nett, da ich meinen Webspace natürlich nicht von Spammern missbrauchen lassen möchte.
Oder brauche ich nur diese beiden Listings? Verwirrt bin...
 
Noch zu deinem Phpmail:
ersetze in der action.php das $_post['blablb'] durch
$HTTP_POST_VARS["blablb"]
und du musst nach jedem befehl (auch beim variablen zuweisen) ein ; machen
 
unterseebotski am 07.01.2006 13:20 schrieb:
skicu am 06.01.2006 13:23 schrieb:
Für die, die sich auch ein Mailformular basteln wollen:
http://www.heise.de/security/artikel/66815
http://securephp.damonkohler.com/index.php/Email_Injection
Ok, ich habe mir also den Heise-Artikel durchgelesen. Da ich - wie bereits erwähnt - wenig bzw. keine Ahnung von php habe, wäre jetzt meine Frage: wie kann ich diese beiden Listings, also Nr. 1 und 2 in mein Skript einbauen? Könntest Du mir da helfen? Das wäre echt nett, da ich meinen Webspace natürlich nicht von Spammern missbrauchen lassen möchte.
Oder brauche ich nur diese beiden Listings? Verwirrt bin...
Hab mal kurz etwas zusammengestellt.. garantiere jetzt keine Funktion, hab schon lang nix mehr mit php gemacht. Aber ausprobieren kannsts ja mal.

(die domainprüfung aus dem heise script hab ich mal weggelassen, die finde ich jetzt nicht so arg notwendig..)

http://nopaste.php-q.net/183125

Das HTML Zeug außenrum fehlt natürlich noch. ;)

Warum nopaste da einen Fehler bei dem die(.. anzeigt, ist mir übrigens schleierhaft..

mfg, ski
 
Wie geht das denn alles hier? Was ist PHP? :o :o
 
ZAM am 09.01.2006 06:06 schrieb:
Wie geht das denn alles hier? Was ist PHP? :o :o
Eine Scriptsprache, mit der sich unkompliziert sehr einfache Scripts für einfache Seiten schreiben lassen.

:B

DER TYP WILL KEINE TRENNUNG VON HTML UND PHP SONDERN EINFACH NUR EIN EINFACHES WEBMAIL SCRIPT.

Nein, lieber ZAM, dafür braucht man keine Trennung von HTML und PHP, auch keine Objektorientierung, kein Templatescript. Keinen Webentwickler, der in 80 Arbeitsstunden ein komplettes, individuelles CMS fertigstellt. Sondern einfach nur 20 Zeilen Code, die eine kleine E-Mail verschicken.

Wir alle wissen inzwischen, dass du dich auf dem Gebiet sehr gut auskennst und Scripte schreiben kannst, die einen Anspruch auf Professionalität erheben können. Aber nach so etwas hat der Threadstarter nicht gefragt.
 
skicu am 08.01.2006 17:46 schrieb:
Warum nopaste da einen Fehler bei dem die(.. anzeigt, ist mir übrigens schleierhaft..

mfg, ski
Naja, danke für Deine Hilfe, aber irgendwas muss wohl falsch sein, denn das Script versendet leider keine Email.
Man kann alles eintippen und die Taste drücken, die Eingabe wird gelöscht, aber es passiert nix mehr.
 
unterseebotski am 09.01.2006 10:42 schrieb:
skicu am 08.01.2006 17:46 schrieb:
Warum nopaste da einen Fehler bei dem die(.. anzeigt, ist mir übrigens schleierhaft..

mfg, ski
Naja, danke für Deine Hilfe, aber irgendwas muss wohl falsch sein, denn das Script versendet leider keine Email.
Man kann alles eintippen und die Taste drücken, die Eingabe wird gelöscht, aber es passiert nix mehr.

Ich habs!!!
Auf der Heise-Seite gabs einen Downloadlink mit einem einfachen und fertigem und vor allem funktionierenden Mail-Formular.
Einfach bei "Listings runterladen" schauen. Da gibts dann ein abgesichertes Teil.
Somit vielen Dank an alle, die mir geholfen haben, vor allem an ZAM, der mit seinem überaus konstruktiven Post sehr zur Sache beitrug.
:top:
 
unterseebotski am 09.01.2006 10:42 schrieb:
skicu am 08.01.2006 17:46 schrieb:
Warum nopaste da einen Fehler bei dem die(.. anzeigt, ist mir übrigens schleierhaft..

mfg, ski
Naja, danke für Deine Hilfe, aber irgendwas muss wohl falsch sein, denn das Script versendet leider keine Email.
Man kann alles eintippen und die Taste drücken, die Eingabe wird gelöscht, aber es passiert nix mehr.
Habs eben mal ausprobiert, da hat im Formular die method gefehlt.

http://nopaste.php-q.net/183263

Natürlich musst du noch deine Mailadresse in die mail() Funktion schreiben. ;)
 
Zurück