Ankündigung

Einklappen
Keine Ankündigung bisher.

Formular mit Captcha-Überprüfung

Einklappen

Neue Werbung 2019

Einklappen
X
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • Formular mit Captcha-Überprüfung

    Hallo,

    mein Formular funktioniert.
    Ich möchte nur folgendes verändern, da habe ich Probleme:

    wenn der Captcha-Eingabe falsch ist, möchte ich dass auf der gleichen Seite ein Fenster aufgeht - mit einer Fehlermeldung. Siehe Anhang
    Das läuft sicher über ein JS.

    Danke für die Hilfe

    hubert
    Angehängte Dateien


  • #2
    Äh ja? Hier hilft dir so sicher keiner. Kein Code nur ein unscharfes Bild. Und was hast du schon probiert und gemacht.
    Außerdem rate ich dir von Captchas ab. Die stören die meisten User mehr als die Bots.
    Current Projects: http://www.welten-buch.de, http://neu.zooadoo.de

    Kommentar


    • #3
      Du hast recht, aber die Geschäftsleitung möchte es so.

      Das Bild ist jetzt größer.

      Danke

      Kommentar


      • #4
        poste deinen Code mal ins Forum und häng ihn nicht als Bild an.
        zweitens hast du immer noch nicht gesagt, was du alles schon probiert hast.
        Wenn du jemanden suchst, der dir das programmiert, bist du in diesem Bereich falsch, Stichwort Scriptbörse.
        Current Projects: http://www.welten-buch.de, http://neu.zooadoo.de

        Kommentar


        • #5
          ich habe noch nichts probiert. Ich habe wenig Ahnung!
          Soll ich abei Javascript nachschauen oder??
          Danke

          Code:
          $ngcvalidation = file_get_contents(str_replace(" ", "", "http://www.kostenloses-captcha.de/validation.php?ngid=".$_POST['ngidtransfer']."&secr=".$_POST['SecR']."&secb=".$_POST['SecB']."&secg=".$_POST['SecG'].""));
          //$ngcvalidation bekommt den String "true" zugewiesen, wenn die Sicherheitseingabe korrekt war
          //$ngcvalidation bekommt den String "false" zugewiesen, wenn die Sicherheitseingabe inkorrekt war
          if ($ngcvalidation == "false") {
          // Reaktion der Website, falls der Code falsch war
          header ("location: http://www.example.de/captcha/html/fehler.html");
          } else {
          // weiterleitung auf die erfolg-seite ...
          header ("location: http://www.example.de/captcha/html/erfolg.html");
          $empfaenger= 'info@example.de';
          $email= 'Katalogbestellung@example.de.de';
          $subject= 'Katalogbestellung aus dem KWI-Shop';
          $subject2= 'Anfrage an Kunze & Co. Nachf.';
          $message= 'Nachrichten an '.$empfaenger.' von '.$email.":\n\n";
          foreach($_POST as $name=> $value) {
          $message.= "$name:$value\n";

          Kommentar


          • #6
            Benutze bitte hier im Forum example.com und keine eigenen Domains.
            Desweiteren sei die Frage erlaubt, warum man Dich damit beauftragt, wenn Du selber sagst, daß Du Dich nicht auskennst?
            Competence-Center -> Enjoy the Informatrix
            PHProcks!Einsteiger freundliche TutorialsPreComposed Packages

            Kommentar


            • #7
              Das ist doch egal.
              Kannst du mir einen Hinweis geben oder nicht?

              Danke

              Kommentar


              • #8
                Das ist doch egal.
                Kannst du mir einen Hinweis geben oder nicht?
                Na mit so einer Einstellung wird du hier sicher weit kommen.

                Bitte die Code-Tags hier benutzen, das kann man oben so nicht vernünftig erkennen.

                Du kannst ja deiner GL mal das hier zeigen:

                * Captchas sind Blödsinn - Alternativen gegen Spam

                * Spam bekämpfen – aber richtig! Anregungen zur Abwehr von Spam ohne grafische Captchas.

                * http://jspit.de/?page=antispam
                Debugging: Finde DEINE Fehler selbst! | Gegen Probleme beim E-Mail-Versand | Sicheres Passwort-Hashing | Includes niemals ohne __DIR__
                PHP.de Wissenssammlung | Kein Support per PN

                Kommentar


                • #9
                  hier mal ein komplettes funktionierendes Captcha-Beispiel!
                  Vielleicht hilft dir das weiter....

                  index.html

                  PHP-Code:
                  <html>
                   <
                  head>
                    <
                  title>CAPTCHA-Test</title>
                   </
                  head>
                  <
                  body>
                  <
                  H3>CAPTCHA-Test</H3>
                  <
                  form action="check.php" method="post">
                   <
                  img src="captcha.php" width="70" height="25" alt="" style="vertical-align: middle;">
                   <
                  input type="text" name="captcha" size="6">
                   <
                  input name="submit" type="submit" value="los">
                  </
                  form>
                  </
                  body>
                  </
                  html
                  captcha.php

                  PHP-Code:
                  <?php
                  ## CAPTCHA ##

                  // Session starten
                  session_start();

                  // Größe des Bildes
                  $size_x 70;
                  $size_y 25;

                  // Erzeuge eine Zufallszahl
                  $zufallszahl mt_rand("100000""999999");

                  // Zufallszahl der Session-Variablen übergeben
                  $_SESSION["captcha_code"] = $zufallszahl;

                  // Erstelle das Bild mit der angegebenen Größe!
                  $bild imageCreate($size_x$size_y);

                  // Erstelle einen weißen Hintergrund
                  imageColorAllocate($bild255255255);

                  // Zufallsfarbe (RGB) erstellen
                  $farbe1 mt_rand("0""175");
                  $farbe2 mt_rand("0""175");
                  $farbe3 mt_rand("0""175");

                  // Verteile die Farben
                  $rahmen imageColorAllocate($bild000); // Rahmenfarbe
                  $farbe  imageColorAllocate($bild$farbe1$farbe2$farbe3); // Textfarbe

                  // Hole die Zahlen der Punkte zum Zeichnen
                  $alle_punkte = ($size_x $size_y)/15;

                  // Zeichne viele Punkte mit der selben Farbe des Textes
                  for ($zaehler 0$zaehler $alle_punkte$zaehler++) {

                   
                  // Erzeuge die Zufallspositionen der Punkte
                   
                  $pos_x mt_rand("0"$size_x);
                   
                  $pos_y mt_rand("0"$size_y);

                   
                  // Zeichne die Punkte
                   
                  imageSetPixel($bild$pos_x$pos_y$farbe);
                  };

                  // Zeichne den Rahmen
                  imageRectangle($bild00$size_x-1$size_y-1$rahmen);

                  // Koordinaten der Position von der Zufallszahl
                  $pos_x 8// links
                  $pos_y 5// oben

                  // Zeichne die Zufallszahl
                  imageString($bild5$pos_x$pos_y$zufallszahl$farbe);

                  // Sende "browser header"
                  header("Content-Type: image/png");

                  // Sende das Bild zum Browser
                  echo imagePNG($bild);

                  // Lösche das Bild
                  imageDestroy($bild);
                  ?>
                  check.php

                  PHP-Code:
                  <?php
                  // Session starten
                  session_start();
                  ?>
                  <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
                  <html>
                   <head>
                    <title></title>
                   </head>
                  <body>

                  <?php
                  // Captcha überprüfen
                  if (($_SESSION["captcha_code"] !=0) AND ($_POST["captcha"] == $_SESSION["captcha_code"])) {
                    echo 
                  "Richtig";
                  }
                  else {
                   echo 
                  "Falsch";
                  }

                  // Session löschen
                  unset($_SESSION['captcha_code']);
                  ?>

                   - <a href="index.php">Noch einmal!</a>

                  </body>
                  </html>

                  Kommentar


                  • #10
                    Man sollte einfach jedem raten keine Captchas mehr zu nutzen, aus Gründen der barrierefreiheit und weil die meisten Bots ohnehin noch mehr Captchas erkennen, als ein User.
                    Es gibt viel bessere, wirksamere und für den Nutzer unsichtbare methoden, um sich gegen Bots zu schützen.
                    Current Projects: http://www.welten-buch.de, http://neu.zooadoo.de

                    Kommentar


                    • #11
                      Zitat von Geromel Beitrag anzeigen
                      Man sollte einfach jedem raten keine Captchas mehr zu nutzen, aus Gründen der barrierefreiheit und weil die meisten Bots ohnehin noch mehr Captchas erkennen, als ein User.
                      Es gibt viel bessere, wirksamere und für den Nutzer unsichtbare methoden, um sich gegen Bots zu schützen.
                      da kann ich Dir nur beipflichten!

                      wer wissen will, was man statt Captchas so alles machen kann, dem empfehle ich dringend mal folgendes zu lesen:

                      http://www.cwcity.de/tutorials/view/...aptcha-ohne-JS

                      Kommentar


                      • #12
                        oder liest sich die Links in Beitrag #8 durch.
                        Debugging: Finde DEINE Fehler selbst! | Gegen Probleme beim E-Mail-Versand | Sicheres Passwort-Hashing | Includes niemals ohne __DIR__
                        PHP.de Wissenssammlung | Kein Support per PN

                        Kommentar


                        • #13
                          Ich finde den Link grad nicht wieder, aber ich habe sehr gute Erfahrungen mit folgender Technik gemacht:

                          Bei Anforderung des Formulars wird ein Timestamp erstellt ( unglaublich aber wahr ).
                          Nach dem Absenden des Formulars wird der Timestamp nicht einfach nur verglichen, sondern die Wahrscheinlichkeit, ob die Formularfelder für einen normal sterblichen in der Zeit ausfüllbar waren.

                          Dazu addiere ich aus jedem Eingabe-Feld ( text, password und textarea ) die Anzahl der Zeichen und einen Toleranzwert jeweils für den Wechsel in das nächste Feld.
                          Die Summe der im Formular eingegeben Zeichen teile ich durch eine mittlere Anzahl an Anschlägen pro Minute und rechne die so erhalte Anzahl der Minuten in Sekunden um.

                          Nun kann ich anhand der tatsächlich benötigten Zeit und der berechneten notwendigen Zeit entscheiden, ob es für eine menschliche Person möglich war, das Formular in der Zeitspanne abzusenden.

                          Die Variablen in der Formel sind einstellbar, so daß ich bei Bedarf das ganze verschärfen bzw. lockern kann.

                          Natürlich kommen auch andere hier bereits genannte Methoden zum Einsatz, aber diese hat aus meiner Erfahrung einen sehr guten prozentualen Anteil am Spam-Schutz meiner Formulare.
                          Competence-Center -> Enjoy the Informatrix
                          PHProcks!Einsteiger freundliche TutorialsPreComposed Packages

                          Kommentar


                          • #14
                            @Arne: Und wenn ich extrem schnell bin?

                            Kommentar


                            • #15
                              ...haste Pech!

                              EDIT:
                              ...aber vielleicht bastel ich noch ein Rennkarotten-Modus ein für Dich
                              Competence-Center -> Enjoy the Informatrix
                              PHProcks!Einsteiger freundliche TutorialsPreComposed Packages

                              Kommentar

                              Lädt...
                              X