PHP-Formular

  • Hallo alle,

    zunächst mal noch ein frohes Neues.


    Nun zu meinem Problem. Ich nutze ein PHP-Formular das an eine Email-Adresse gesendet wird. Leider erhalte ich deshalb auch jede Menge Spams. Die normale Email-Adresse habe ich via Javascript verschlüsselt. Kann ich diese Verschlüsselung auch irgendwie in diesem PHP-Formular nutzen oder geht das nur mit Captcha o. ä.? Nur noch als Anmerkung, die Verschlüsselung sowie auch das Formular habe ich nicht selbst konstruiert, sondern mit von helfenden Webseiten runtergeladen. HTML und CSS beherrsche ich ganz gut, aber bei den anderen Sprachen fehlt mir wohl der Verstand ;).


    Wäre nett wenn ihr mir da weiterhelfen könntet. Bei Bedarf kann ich euch auch die Codes angeben.


    Liebe Grüße Britta

  • Hey Britta,


    Du kannst bei deinem Kontaktformular auch Bot- sowie Spam-Schutzmechanismen einbauen. Geht relativ einfach.

    Ein Captcha ist auch möglich - ich finde ihn jedoch nicht so komfortabel. Es gibt auch bessere, benutzerfreundlichere Methoden.

    Ich und JR Cologne haben ein Tutorial zum Thema "Kontaktformular" hier erstellt. Ich verlinke dir dieses hier mal: Kontaktformular Tutorial. Wird dir sicher Informationen geben - der Code ist auch noch relativ gut. Wenn du dieses Formular nutzen solltest dann musst du einmal überprüfen ob du Bootstrap nutzen willst oder es mit reinem CSS designen willst. Beim PHP-Mailer müsstest du mal schauen ob es bereits eine neuere Version gibt.


    Steht deine E-Mail Adresse im HTML-Code? Dann aufjedenfall entfernen und dies über PHP machen.


    Gerne kannst du uns hier deinen Code mit uns teilen. Dann können wir dir besser helfen.


    Grüße,

    Stef

  • mit der Methode kann sehr viel Spam vermeiden

    http://www.1ngo.de/web/captcha-spam.html

    Deine Antwort sieht aus, wie von einem Spam-Bot geschrieben :D

    Diese Ironie :D


    Das Versteckte email Feld kann was bringen.


    Das mit der Zeit halte ich für Quark.

    Das erinnert mich an ein Forum, in dem man nur aller x Sekunden einen Beitrag posten konnte.


    Den Inhalt filtern und bei einem Treffer gar nicht erst zulassen (also Beitrag komplett abweisen)

    halte ich für schlecht.

    Der Benutzer ist genervt, und Du, als admin, musst das Script ständig anpassen und wirst mit Supportanfragen beballert =)


    Ich selbst würde das eher denen überlassen, die sich schon lange damit beschäftigt haben.

    Auf Anhieb wäre das für mich google recaptcha.

    Gibt natürlich auch andere.


    Aber nicht falsch verstehen - ich find es gut, wenn man es selbst mal versuchen|schreiben will.

    Das bildet und macht oft auch Spass =)

    ---

    BTW: hatte vor kurzem ein Video gesehen, bei dem es um AI spam ging.

    Durch machine learning human-like posten.

    Es ging darum, Beiträge so menschenähnlich wie möglich zu gestalten.

    Dabei musste der Inhalt noch nicht mal wirklich Sinn ergeben. Es ging einfach nur darum, einen echten Menschen dazu zu bringen,

    aus den Beitrag zu antworten.

    Und schon durch diese "echte" Antwort gewinnt der Originale Beitrag an Glaubwürdigkeit.

    War interessant. Finde das Video aber nicht mehr :/

  • Hallo,

    ganz lieben Dank für eure Antworten und Tips! Leider sind das alles Sachen die ich bereits probiert habe und irgendwann nicht weiter kam.

    Stef, euer Formular ist bestimmt super, habe ich auch probiert aber habe mich dann im "PHP-Wirrwarr" verrannt und gescheitert.

    basti1012 viel zu lesen, bietet aber leider auch nicht mehr den Schutz

    @cotton Zum Thema recaptcha, habe die neueste Version bei einer Seite eingesetzt, Spams ohne Ende!!! Verstehe ich zwar nicht, ist aber so passiert.


    Langer Rede kurzer Sinn. Hier gebe ich euch jetzt mal die Codes:

    Das ist das Javascript mit dem ich meine Mail-Adressen verschleiere, funktioniert einwandfrei!

    Code
    <script language="javascipt" type="text/javascript">
                            var part1 = "info";
                            var part2 = Math.pow(2, 6);
                            var part3 = String.fromCharCode(part2);
                            var part4 = "campingpark-humbodtsee.de";
                            var part5 = part1 + String.fromCharCode(part2) + part4;
                            document.write("<a href=" + "mai" + "lto" + ":" + part5 + ">" + part1 + part3 + part4 + "</a>");
    
                        </script>


    Und hier das PhP-Formular in das ich eigentlich auch so etwas "einbauen" möchte, denn hierüber kommen nach wie vor Spams rein (logischerweise):


    Zu guter Letzt noch der Html-Abschnitt auf den sich der o. g. Code bezieht:

    Und jetzt ihr. Haut mir die Codes um die Ohren *lol*....

    Ehrlich bin für jeden Tip zu haben, sofern ich ihn umsetzen kann. Das Script und den PHP-Code habe ich nicht selbst geschrieben, nur angepasst!


    LG

  • Zu deinen Javascript Code kann ich sagen das du das nicht mehr brauchst

    Code
    language="javascipt" type="text/javascript"

    und document.write() sollte auch nicht benutzt werden.


    Zum Php Code kann ich nur das sagen.

    1. Bitte nutze kein mail() , nur wenn du ahnung hast davon. Besser wäre einen Php mailer zu nutzen der alles kann was man brauch.

    Bei mail() muß man so viel beachten und einstellen damit auch wirklich alle mails ankommen. Der Php mailer kann das selbständig und das kann man als Anfänger auch einfach einstellen.


    2. Das @ im Php Code zu nutzen ist nicht gut, das unterdrückt die Fehler ausgabe die man gerade als Anfänger brauch um einen Fehlerfreien Code zu schreiben. Mach das Bitte nicht weil du da durch nicht wirklich lernst was und wie die Fehler verursacht werden


    Dein Html Code

    1. Warum das "&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;" ?

    Das macht deinen Coder unlesebar und ist nicht sinn der sache. Dafür gibt es margin oder andere Css einstellungen.

    2. " name="Schüler" " Sonderzeichen ,wo auch ä,Ü,Ö zugehöhren haben in id's ,class, und name nix zu suchen . Nutze lieber ae,oe,ue dafür.

  • basti1012 Danke, das mit dem Code habe ich vorhin auch gelesen, kann ich ja noch rausnehmen. Was sollte man denn statt document.write() benutzen?


    Zu Php 1.und 2. : das ist ein Code den ich mir aus dem Internet kopiert und mühselig (für mich) angepasst habe. mail() nutze ich nur weil es drin stand, ebenso das @. Und nur mal so angemerkt, wie soll ich eine Email-Addi ohne @ angeben? Ich komme mit dieser Code-Schreibung einfach nicht klar.

    Den Php-Mailer habe ich mir auch schon runtergeladen. Muss ich mich nochmal reinfitzeln.


    Html: Ja ich weiß... Der jenige für den ich die Seite gemacht habe wollte das die Sachen immer genau untereinander standen, werde ich bei Gelegenheit noch über Css ändern. War einfacher in dem Moment da das Formular Vorrang hatte. UUUps, das "ü" hab ich übersehen, wird auch noch geändert.


    Alles in allem Danke für die Anmerkungen. Aber die Lösung meines Problems mit den Spams ist damit nicht gelöst. Die Bots können sich durch diese Codes immer noch heiter die Email-Addis von der Seite ziehen und Ihre Mails senden (ausser die für die normale Emails w/JS).

    Naja muss ich ja dann wohl mit leben.

  • Mit @ meinte ich das vor den mail(), damit werden die Fehler ausgaben unterdrückt.

    In der Email Adresse muß das natürlich drinne bleiben.


    Methoden um Spam zu vermeiden gibt es reichlich.

    Zb, das versteckte Email Feld,.


    Du hast das ja jetzt so

    Code
    <input name="Email" type="email">

    Das versteht jeder Bot.


    Deswegen wäre es mit den verstecken Feld zb so

    Code
    <input name="Email" type="hidden">
    <input name="digitale_post" type="text">

    Wenn der Bot das Email Feld ausfüllen tut kannst du das im Php Code blocken.

    Da das Feld "hidden" ist kann ein Mensch das Feld nicht sehen, ein Bot aber schon weil er den Quelltext lesen tut.

    Neuere Bots werden die Methode aber auch schon kennen und das auch beachten.


    Beim Aufrufen des Kontaktformulares könntest du eine Countdown laufen lassen.

    Eine ernst gemeinte Email an dich wird bestimmt länger dauern als 5 Sekunden die zuschreiben,

    deswegen blockst du alles was schneller ist als 5 Sekunden oder so.

    Bots füllen das im Millisekunden aus.

    Diese Methode kennen viele Bots auch schon und kann deswegen auch nur nee geringe Anzahl von Spams blockieren.


    Dann gibt es noch ein Feld ,mit Fragen und Rechenaufgaben.

    Rechenaufgaben wie 5 + 3 kann mitlerweile auch jeder Bot lösen.

    Auch fragen wie "Welche Farbe hat ein Frosch " ,ist kein Hindernoss für den Bot.


    Ich benutze mitlerweile Fragen die einfach sind ,aber der Bot noch nicht verstehst.

    zb "Schreibe Hund ,mit doppel u"

    "Welche Farbe hat ein rotes Auto", usw.

    Es gibt bestimmt noch viele andere Ideen die Bots zu erkennen.


    document.write() kannst du mit innerHTML tauschen.

    Zb so

    Code
    <div id="ersatz"></div>
    <script>
           var part1 = "info";
           var part2 = Math.pow(2, 6);
           var part3 = String.fromCharCode(part2);
           var part4 = "campingpark-humbodtsee.de";
           var part5 = part1 + String.fromCharCode(part2) + part4;
           document.getElementById('ersatz').innerHTML="<a href=" + "mai" + "lto" + ":" + part5 + ">" + part1 + part3 + part4 + "</a>";
    </script>


    Was soll das den werden ?

    Code
    + "mai" + "lto" + ":

    irgendwie verstehe ich das nicht ganz

  • Was soll das den werden ? Code
    + "mai" + "lto" + ":

    irgendwie verstehe ich das nicht ganz

    Verschleierung, denk ich. Um bots auszutricksen. Damit die "mailto" nicht im Quellcode finden.


    Ich versteh das Vorhaben an sich nicht.

    Warum soll die Ziel-Email-Addresse in dem Quellcode stehen?

    Die mail wird doch dann per PHP vom Server verschickt, oder?

    Aber evtl verstehe ich das gerade falsch.

  • Ich habe noch nie ein "mailto" Link benutzt.

    Wenn ich da drauf klicke werde ich gefragt ob und mit welchen Email Programm ich weiter arbeiten möchte.


    Hat der Php Code von ihn da überhaupt noch irgendeine Funktion ?, oder habe ich da jetzt was falsch verstanden ?

  • Hat der Php Code von ihn da überhaupt noch irgendeine Funktion ?, oder habe ich da jetzt was falsch verstanden ?

    Ok, gut. Dann bin ich nicht verblödet :D


    Ne, macht keinen Sinn.

    Mit nem mailto Link wird ja der Browser|System angesprochen.


    @Phobie-PHP

    Du solltest eine <form> nutzen, die dann die Daten an ein PHP Script schickt.

    Und dieses PHP Script validiert die Daten und sendet die eigentliche eMail and Deine Addresse.

  • Hallo Leute,

    ich glaube ich komme hier leider nicht weiter. Ich habe keine Ahnung von PHP! Soll heißen ich kann es nicht selbst "programmieren"/schreiben, da ich die Grundkenntnisse nicht verstehe.


    cottton <form> habe ich verwendet, aber das dazugehörige PHP-Script ... s. o.


    Jetzt nochmal eine abschließende Frage: Können die Bots kein PHP lesen? Weil dort wird doch die Mail-Addi angegeben und dort ziehen sie sich die meiner Meinung dann auch raus. Aber wahrscheinlich verstehe ich das auch wieder falsch.


    Vielen Dank für eure Mühe!!!


    LG aus Niedersachsen

  • hast du das online ?

    Damit man mal sehen kann was du da genau benutzen tust.

    Dein mailto Link öffnet ein Email Programm was du auf deinen Pc benutzen tust.


    Dein ganzer Code aus deinen Beitrag #5 hätte dann überhaupt keine funktion.

    Du müßtest den mailto Link löschen und zb mit kontakt.php tauschen.

    Dann muß dein Code aus #5 da rein ( Der so aber auch nicht gut ist und auch noch berarbeitet werden muß ).


    Für den Anfang solltest du dir da https://www.kontaktformular.com/ ein Kontaktformular runterladen.

    Da wird auch ein Php mailer benutzt und auch ein Captcha und andere Einstellungen sind da noch möglich um Spams einzugrenzen

  • hast du das online ?

    Damit man mal sehen kann was du da genau benutzen tust.

    Dein mailto Link öffnet ein Email Programm was du auf deinen Pc benutzen tust.

    Ja habe ich. Den Link gebe ich Dir gerne über PN. Muss ja nicht alles hier preisgegeben werden. ;)

    Das mit dem externen Mail-Programm habe ich erst vor kurzem reingenommen, da zuviele Spams eingegangen sind.

  • Du hast ja einmal ein Formular wo man die Buchungsanfragen machen kann und weiter unten hast du einen "mailto" Link.


    Wo gehen die Buchungsanfragen den hin ? Da wo der mailto Link auch hingeht ( gleiche emailadresse ) ?

    Wenn es 2 verschiedene Adressen sind = > Wo gehen die Spams hin?


    Da der mailto Link als Kontaktadresse angegeben wird könnte man da auch ein Extra Formular machen für die Fragen.

    Dein Buchungsformular ist ja eigentlich was anderes.

  • Alles richtig. Die Spams gingen an die info@, aber immer nur über Kontakt (wo gar kein Formular war/ist). Über die Buchung kommen wohl nur vereinzelt welche, was ich gar nicht kapiere, da ja dort keine Addi angegeben ist (in html). scatello hatte mir ja vorhin mitgeteilt das die Bots kein PHP lesen können.

    Am Anfang hatte ich auch ein einfaches Kontaktformular auf der Seite, schön mit Recaptcha abgesichert. Da wurden die aber mit sovielen Spams torpediert das ich das nach 3 Tagen wieder rausgenommen habe.

  • Ich könnte mir vorstellen das Bots mit dem "mailto" Link einfacher klar kommen.

    Da ist ja kein Php Script hinter das Spams blocken tut usw.


    Über deine Buchunganfrage ist ein Php Script hinter ,wo man mehrere möglichkeiten hat Spams zu blocken.


    Ich bin mir nicht sicher , doch ich glaube das ein "mailto" Link ein Bot Magnet ist

Jetzt mitmachen!

Sie haben noch kein Benutzerkonto auf unserer Seite? Registrieren Sie sich kostenlos und nehmen Sie an unserer Community teil!