online 1
gast (50)

/ Forum / Skripte(PHP,ASP,Perl...)

Skripte(PHP,ASP,Perl...)Skripte(PHP,ASP,Perl...)

Fragevon Nadine80 vom 27.05.2020, 13:16 Options

Frage zur Erweiterung eines PHP-Kontaktformulares

Hallo zusammen,
folgendes Script (s.u.) schickt die Inhalte eines Kontaktformulares an den Webmaster (hier: webmaster@domain.de). Doch wie kriege ich es hin, dass der Absender eine Kopie der eMail erhält.
Leider habe ich von PHP bisher fast gar keine Ahnung und bin auf Hilfe angewiesen.
Wäre super, wenn mir jemand helfen könnte.

Vielen Dank und LG

Nadine

Hier der bisherige Code:


<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
 <head>
  <title>Kontaktformular</title>
  <link href="templates/bridge/stylesheet.css" rel="stylesheet" type="text/css">
 </head>
<body style="background-color:transparent">

<div style="text-align: left">

<?php
if ($_POST) {
$nachname = $_POST['nachname'];
$betreff = $_POST['betreff'];
$nachricht = $_POST['nachricht'];
$email = $_POST['email'];

 # Ihre E-Mail-Adresse
 $an ="webmaster@domain.de";

 # Diese Nachricht wird an Ihre E-Mail-Adresse gesendet
 $text = "Hallo,\nSie haben eine neue Nachricht von $nachname erhalten:\n\n
====\n $nachricht\n====\n\nSie können $nachname über $email erreichen.";
 @mail($an, $betreff, $text, "From: " . $email);
echo "<p>Ihre Nachricht wurde erfolgreich versendet.</p>";
echo "<p><a href=\"".$_SERVER['PHP_SELF']."?from_name=$from_name&from_mail=$from_mail\">Zurück zu »Kontakt</a></p>";
}
else { ?>

<script type="text/javascript">
function eingaben_ueberpruefen(){
 var mail = document.Formular.email.value;
 if (document.Formular.nachname.value.length < 1) {
  alert("Bitte geben Sie Ihren Namen ein.")
  document.Formular.nachname.focus();
  return false;
 }

 else if (mail.length < 10 || mail.indexOf ('@',0) == -1 || mail.indexOf ('.',0) == -1) {
  alert("Bitte geben Sie eine gültige E-Mail-Adresse ein.")
  document.Formular.email.select();
  return false;
 }

 else if (document.Formular.betreff.value.length < 1) {
  alert("Bitte geben Sie einen Betreff ein.")
  document.Formular.betreff.focus();
  return false;
 }

 else if (document.Formular.nachricht.value.length < 1) {
  alert("Bitte geben Sie eine Nachricht ein.")
  document.Formular.nachricht.focus();
  return false;
 }

 else
 return true;
}
</script>

<form name="Formular" method="post" action="<?php echo $_SERVER['PHP_SELF']; ?>"
 onSubmit="return eingaben_ueberpruefen();">
 <table cellPadding="1" cellSpacing="1" border="0" width="450">
  <tr>
   <td>Name:</td>
   <td><input type="text" name="nachname" size="25" maxlength="100"></td>
  </tr>

  <tr>
   <td>E-Mail:</td>
   <td align="left"><input type="text" name="email" size="25" maxlength="100"></td>
  </tr>
  
  <tr>
   <td>Betreff:</td>
   <td><input type="text" name="betreff" size="25" maxlength="100"></td>
  </tr>
  
  <tr>
   <td valign="top">Nachricht:</td>
   <td><textarea name="nachricht" cols="40" rows="3"></textarea></td>
   </tr>

  <tr>
  <td>
  </td>
   <td>
	 <input type="submit" value="Absenden">
   </td>
  </tr>
 </table>
</form>

<?php 
}
?>

</div>

</body>
</html> 



Antwort schreiben

Antwort 1 von son_quatsch vom 27.05.2020, 15:09 Options

Zitat:
@mail($an, $betreff, $text, "From: " . $email);

ersetzen mit
Zitat:
@mail($an, $betreff, $text, "From: " . $email. "\r\nCc: ". $email);

Aber das Skript ist sehr banal gestrickt und bedarf viel Liebe und Zuwendung, damit mal was professionelles draus wird ;-)

Antwort 2 von DeluxeStyle vom 27.05.2020, 15:23 Options

vor allem kann das Skript sehr gut als Spamschleuder verwendet werden
Da solltest du dringend was anderes einbauen

Antwort 3 von Nadine80 vom 27.05.2020, 19:09 Options

Hallo,
vielen Dank für eure Hilfe! Wer mir wohl ein besseres Script suchen müssen. Spam will ich natürlich nicht haben.
LG Nadine

Antwort 4 von katy vom 27.05.2020, 19:19 Options

Hallo Nadine,

die große Gefahr ist nicht, dass du zugespamt wirst - das Risiko besteht nun mal bei Formularen.

Die große Gefahr ist, dass jemand einfach dein Formular x-mal aufruft (sowas lässt sich automatisieren), unter "E-Mail" alle möglichen Adressen einträgt und diese Menschen so mit deinem Formmailer-Absender zuspamt. Dass du jeweils eine Kopie erhältst spielt dabei keine Rolle.

Such dir lieber einen Formmailer, der dir erlaubt eine Antwortseite anzugeben, auf der dann sowas steht wie "Danke, Nachricht erfolgreich abgeschickt". Damit kann dann wenigstens niemand Unsinn treiben. Dieser von SelfHTML bietet sowas.

katy

Antwort 5 von son_quatsch vom 28.05.2020, 12:51 Options

Zitat:
der dir erlaubt eine Antwortseite anzugeben, auf der dann sowas steht wie "Danke, Nachricht erfolgreich abgeschickt". Damit kann dann wenigstens niemand Unsinn treiben
Huhu katy,

jetzt muss ich meinem Benutzernamen wieder alle Ehre machen ;-) Warum sollte eine Antwortseite ein Hindernis darstellen? Selbst für "von Hand"-Eintipper ist das keine Hürde - die gehen dann einfach nochmal eine Seite zurück und machen weiter...

Und abgesehen davon kann man sich ein einfaches Skript für die Eingabeaufforderung schreiben, das gleich den kompletten POST-Aufruf plus Zieladress-URL erledigt (z.B. mit wget). Und da braucht man gewiss keine Antwortseite (auswerten).

Sinnvoll wäre, etwas eigenes einzubauen, wie bsp.weise eine menschlich verständliche Frage ("Gib eine dreistellige Zahl mit ein") und das dann zu prüfen.

Aber hü wie hott ist das Skript auch dahingehend "ungeeignet", als dass dank vieler fehlender Mail-Header noch lange nicht jede Mail ankommen wird. AOL ist ein guter Kandidat, der PHP-generierte Mails gerne abweist (und damit noch nichtmal in den Spam-Ordner des Nutzers legt).

Antwort 6 von katy vom 28.05.2020, 19:56 Options

Hallo son_quatsch,

sorry, falls ich mich für dich nicht verständlich ausgedrückt haben sollte.

Also nochmals ganz langsam:

Nadines Konzept sieht vor, die Eingaben per E-Mail an sich und zusätzlich als Bestätigung an die eingegebene Mail-Adresse zu senden.

Dadurch kann jedeR Müll-Mails an bestimmte Adressaten abschicken, indem er deren Mail-Adresse ins Eingabefeld setzt.

Hätte ich also deine Mailadresse und wollte ich dir Spam senden, könnte ich einfach Nadines Kontaktformular aufrufen, dort deine Mailadresse eintragen, den Spam ins Nachrichtenfeld setzen und auf Absenden klicken. Siehe da, du erhältst die Spam-Mail (Nadine bekommt sie auch, aber das ist mir dann egal) mit Nadines Absender.

Es dreht sich also nicht darum Nadine zuzuspammen sondern alle, deren Adresse bekannt ist. Mit anderen Worten: Nadines Kontaktformular wird zur Spamschleuder.

Ich hoffe das war nun verständlicher.

Und ich hoffe du verstehst jetzt, warum eine Antwort-Seite sinnvoller ist als eine Antwort-Mail.

katy

Antwort 7 von son_quatsch vom 29.05.2020, 09:20 Options

Zitat:
Nadines Konzept sieht vor, die Eingaben per E-Mail an sich und zusätzlich als Bestätigung an die eingegebene Mail-Adresse zu senden.
Ja, das habe ich verstanden. Daher habe ich ihr auch eine entsprechend erweiterte Skriptzeile gezeigt.

Zitat:
Dadurch kann jedeR Müll-Mails an bestimmte Adressaten abschicken, indem er deren Mail-Adresse ins Eingabefeld setzt.
Auch klar. Setzt irgendeine E-Mail-Adresse des Opfers als Absender ein. Und Nadine bekommt die eigentliche E-Mail, wohingegen das Opfer die Kopie erhält.

Zitat:
Hätte ich also deine Mailadresse und wollte ich dir Spam senden, könnte ich einfach Nadines Kontaktformular aufrufen, dort deine Mailadresse eintragen, den Spam ins Nachrichtenfeld setzen und auf Absenden klicken. Siehe da, du erhältst die Spam-Mail (Nadine bekommt sie auch, aber das ist mir dann egal) mit Nadines Absender.
Huch, da war ich vorhin schon zu schnell mit Kapieren. Aber warum Nadine als Absender? Sie ist doch der Empfänger :-) Der Absender wird meine eigene Adresse sein.

Zitat:
Es dreht sich also nicht darum Nadine zuzuspammen sondern alle, deren Adresse bekannt ist. Mit anderen Worten: Nadines Kontaktformular wird zur Spamschleuder.
Auch alles klar, wie bei fast allen solchen Kontaktformularen, die sich nicht hinreichend die Benutzereingaben filtern.

Zitat:
Ich hoffe das war nun verständlicher.
Nein, genauso verständlich war es mir von Anfang an.

Zitat:
Und ich hoffe du verstehst jetzt, warum eine Antwort-Seite sinnvoller ist als eine Antwort-Mail.
Nein, immernoch nicht. Oder du meinst statt "Vielen Dank" etwas anderes mit "Antwortseite". Die Antwortseite dient doch nur "Normal"nutzern, spielt aber für Spammer keine Rolle.

Der Fehler liegt doch darin, dass auch eine Kopie an eine nicht vorhersagbare Adresse verschickt wird. Ohne Kopie würde nur Nadine (wenn überhaupt) Spam bekommen, weil hier lediglich der Absender variabel ist.

Antwort 8 von guest42 vom 29.05.2020, 18:19 Options

Zitat:
Der Fehler liegt doch darin, dass auch eine Kopie an eine nicht vorhersagbare Adresse verschickt wird.
na, da meint ihr ja dasselbe und niemand braucht sich aufzuregen. Fazit: niemals solchen Quatsch ins Netz setzen um nicht zu riskieren vom Serveradmin gesperrt zu werden.

Antwort 9 von nafasi3 vom 19.06.2021, 15:29 Options

Not Found
The requested URL /seiten/formmail-php4 was not found on this server.

Hallo, wenn man mein Kontaktformular ausfüllt, kommt obige Meldung. Was stimmt hier nicht?
Danke für eure Hilfe.

Ähnliche Themen

hi frage wegen html und php und css
Night  03.01.2007 - 137 Hits - 1 Antwort

Erweiterung für Thunderbird gesucht
itzbitz  22.01.2007 - 75 Hits - 5 Antworten

Gibt es eine pcmcia oder USB Grafikkarte für Notebooks?
Domspatz  18.11.2007 - 73 Hits - 1 Antwort

RAM Erweiterung
Flasche  29.12.2007 - 117 Hits - 1 Antwort

Hinweis

Diese Frage ist schon etwas älter, Sie können daher nicht mehr auf sie antworten. Sollte Ihre Frage noch nicht gelöst sein, stellen Sie einfach eine neue Frage im Forum..

Neue Einträge

Version: supportware 1.9.150 / 10.06.2022, Startzeit:Mon Jan 26 01:23:17 2026