Wer hilft einem Anfänger?
Chrix
- perl
Es ist frustrierend, wenn man monatelang an einer Website arbeitet und auch noch einen Formmailer (mit mailto im HTML-Quellcode) einbaut, um dann bloss SPAM zu kriegen.
Deshalb möchte ich im Quellcode nun ein CGI-Skript eingeben. So würde ich ja auch Meldungen von Personen erhalten, die kein E-Mail-Client haben.Ich glaube, dass mein Host Perl-Scripts unterstützt.
Aber die E-Mail-Adresse muss ja dennoch im HTML eingeben, oder? Kann man diese überhaupt vor "Spionen" schützen? Ich habe gelesen, dass man diese im ASCII verschlüsseln kann?
Und vor allem ganz allgemein: Ich glaubte zu verstehen, dass dann unter Umständen mein cgi-bin-Verzeichnis meine Site oder sogar den ganzen Server gefährden kann...
Kann mir jemand etwas helfen? Für Anregungen und Tipps danke ich herzlich!
hi
Aber die E-Mail-Adresse muss ja dennoch im HTML eingeben, oder? Kann man diese überhaupt vor "Spionen" schützen? Ich habe gelesen, dass man diese im ASCII verschlüsseln kann?
ja das geht, obwohl man hier nihct von verschlüsseln reden kann. das wäre etwas übertrieben. bachteil an der sache, das wird nicht mehr lange so gehen hat man mir gesagt. ich machs derzeit auch so. aber ein prof hat gemeint, das wird bald nichts mehr helfen :-(
Kann mir jemand etwas helfen? Für Anregungen und Tipps danke ich herzlich!
Einen Tipp hätt ich. Verwend eine PHP Script, wo du ein Eingabeformular hast, welches du dann per PHP und über deinen eigenen Mailanbieter die selber eine Mail schickst sozusagen. Vorteil, alle können übers Internet eine Mail schicken, ohne einen Acount zu haben und kein Spamer wird deine Mailadresse zu sehen bekommen. Nachteil. wenn derjenige, der dir eine mail schickt keinen absender angibt, weißt nicht von wem sie is :-) falls du in die richtung weiter gehen willst, könnt ich dir ein paar codeschnipsel senden, die hilfreich sind
Vielen Dank Dieter!
Ich wäre an den Codeschnipsel interessiert, aber könnte mir vorstellen, dass PHP für mich eine Klasse zu hoch ist. Bis vor wenigen Tagen konnte ich ja noch stolz auf meine "Form action = "mailto"" sein...Damit du mich nicht überschätzt!!! Aber es hört sich nach einer guten Lösung an.
Ist das Prinzip ähnlich wie bei CGI? D.h. im HTML wird auf eine Datei verwiesen, die sich in einem anderen Verzeichnis befindet und dann das Ganze ausführt?
Was ist dann wichtig? Das niemand diesen PHP- oder CGI-Script hacken kann, um meine Adresse zu missbrauchen?
Nochmals muchos gracias!
Ich wäre an den Codeschnipsel interessiert, aber könnte mir vorstellen, dass PHP für mich eine Klasse zu hoch ist. Bis vor wenigen Tagen konnte ich ja noch stolz auf meine "Form action = "mailto"" sein...Damit du mich nicht überschätzt!!! Aber es hört sich nach einer guten Lösung an.
keine angst. php ist leicht zu lernen und nicht wirklich kompliziert, solange du nicht objektorientiert progarmmieren willst oder so ;-)
Ist das Prinzip ähnlich wie bei CGI? D.h. im HTML wird auf eine Datei verwiesen, die sich in einem anderen Verzeichnis befindet und dann das Ganze ausführt?
du hast ein paar eingabefelder und einen senden butto. wenn du den drückst wird das entsprechende php script, welches du geschrieben hast ausgeführt. diesem übergibst du beim klicken übrigens die daten, die du eingegeben hast.
Was ist dann wichtig? Das niemand diesen PHP- oder CGI-Script hacken kann, um meine Adresse zu missbrauchen?
no, das gute an php seiten ist, dass die erstmal nicht unbedingt von spamern durchgeschaut werden. und dann kannst du noch z.B. um ganz auf nummer sicher zu gehen drei variablen anlegen. in der ersten steht der erste teil der mailadresse, in der zweiten der zweite teil und in der dritten fügst du sie dann zusammen. das macht er aber erst, wenn du das php script ausführst. so kann der spamer dann die mailadresse nicht mehr erkennen :-)
code kommt gleich
Danke für den Mut! Ich werde es mal so versuchen...Das wird, glaub ich, eine lange Nacht!!! :)
Vielen Dank für Deine Unterstützung!
wie gut kennst dich denn mit formularen aus?
wie gut kennst dich denn mit formularen aus?
Na ja, einigermassen gut. Bis ich eben auf dieses Mailto-Problem gestossen bin und es nachbessern wollte.
wenn du willst schick ich dir morgen ein fertiges und funktionieredndes formular und php script. ich habs aber am server liegen und müsst rauf gehen, weil mein netzwerk grad net geht :-(
hast eine mailadresse? dann schick ichs dir
wenn nicht, kannst auch auf selfphp nach mail suchen, die grundsätzlichen sache zm mail versenden. aber dann musst auch schauen, dasst mitn formular anschließend das richtige script aufrufst und die daten mitübergibst.
sonst, wie gsagt, kann ich dir morgen am vormittag ein fertiges schicken
Lieber Dieter
Ich danke dir für die Unterstützung und würde mich auf dein formular freuen.
Du kannst es mir gerne an dieser Adresse schicken: c.hauser(AT)dplanet.ch !
Gruss,
Chrix
Hallo Chrix.
Deshalb möchte ich im Quellcode nun ein CGI-Skript eingeben. So würde ich ja auch Meldungen von Personen erhalten, die kein E-Mail-Client haben.Ich glaube, dass mein Host Perl-Scripts unterstützt.
Es gibt dazu mehrere Artikel, die dir weiter helfen dürfte:
Für Perl:
http://aktuell.de.selfhtml.org/tippstricks/cgiperl/form-mail/index.htm
http://aktuell.de.selfhtml.org/artikel/cgiperl/cgi-lib/index.htm
Für PHP:
http://aktuell.de.selfhtml.org/tippstricks/php/form-mail/index.htm
Das wichtigst, was du bei der Umsetzung des Formmailers in Perl beachten musst ist, dass du die E-Mail des Empfängers im Script hardcodieren musst. Wie das geht, steht ganz unten im ersten verlinkten Artikel.
Viel Spaß beim Basteln.
Freundschaft!
Siechfred
Hallo Siechfred,
Ich werde mich gleich noch weiter ins Thema einlesen!Vielen Dank, ich finde es ganz nett wie Ihr alle in diesem Forum hilfsbereit seit.
Was heisst "hardcodieren"? Das Dritte den Script nicht ändern können? Oder liege ich da ganz falsch...
Es sei denn, ich wollte mich allem vorab bedanken!
Ciao,
Chrix
Hallo Chrix.
Was heisst "hardcodieren"?
Du darfst die E-Mail nicht über eine Formulareingabe definieren, denn sonst besteht die Gefahr des Missbrauchs deines Formmailers durch Spammer. Vielmehr musst du sie direkt im Script deklarieren ("hardcodieren"). Also statt
$mailto = CGI::param('mailto');
das
$mailto = 'adresse@provider.tld';
Freundschaft!
Siechfred
Hey Siechfred,
Danke schön!!! Was bedeutet eigentlich ".tld"?
Muss ich also im Formular selbst nur auf die .../formmail.pl verweisen und bei name="mailto" dann bei value="" einfach in Anführungszeichen leer stehen lassen?
Wäre es dann korrekt, wenn die Adresse im Script bspw. so eingegeben wird?
$mailto = 'adresse@meinedomain.de.tld';
Ich meine, zwischen Domain und .tld kommt doch bestimmt die Top-Level-Domain, oder?
Danke dir noch und Freundschaft!!!
Chrix
Hallo Chrix.
Was bedeutet eigentlich ".tld"?
TLD = Top-Level-Domain", also z.B. "de". In meinem Beispiel ersetzt du das "tld" durch die Topleveldomain deines Providers, so dass nach dem "@" z.B. "gmx.de" stehen muss.
Muss ich also im Formular selbst nur auf die .../formmail.pl verweisen und bei name="mailto" dann bei value="" einfach in Anführungszeichen leer stehen lassen?
Das Formularfeld "mailto" kannst du dann ganz weg lassen, denn es wird nicht mehr gebraucht. Und als Methode solltest du POST verwenden. Btw, gib dem Script besser einen anderen Namen, es gibt nette Zeitgenossen, welche das Internet regelmäßig nach "cgi-bin/formmail.pl" abgrasen. Vermeide am Besten generell den String "form" und/oder "mail" im Scriptnamen. Übrigens solltest du unbedingt die dem Script übergebenen Werte auf Gültigkeit prüfen, und zwar unabhängig, ob du bei Perl bleibst oder etwas anderes verwendest.
Wäre es dann korrekt, wenn die Adresse im Script bspw. so eingegeben wird?
$mailto = 'adresse@meinedomain.de.tld';
Ja, wenn du ".tld" noch weglässt (war nur als Beispiel gedacht, s.o.). Btw, wenn du dich in diesem Zusammenhang näher mit Perl beschäftigen möchtest, ich habe mal vor einiger Zeit ein Formmail-Script geschrieben: http://www.siechfreds-welt.de/selftest/beispiel.txt, sicher nicht perfekt, aber für ein paar Anregungen sicher gut.
Freundschaft!
Siechfred
Hallo Siechfred,
Ich danke Dir für die Antwort und die guten Tipps!
MfG