undefined Index [recaptcha]

  • Hallo,
    Ich habe ein Problem mit reCaptcha, weil ich öfters gelesen habe, dass dieser Fehler ein alleiniges PHP Problem sei, poste ich es auch hier und nicht in dem offiziellem Forum.
    Also, ich benutze reCaptcha mit 2 Formularen auf einer Website (http://i-koch-ferienwohnung.de) einmal in dem Buchen & dem Kontakt Formular.
    Benutzen tue ich es nach den Vorgaben der offiziellen Seite.
    In meiner Lokalen Testumgebung (XAMPP) funktioniert alles hervorragend, doch seitdem die Seite nun auf einem T-Online Server liegt nicht mehr.
    Auf dem Server wird eine cgi_error.txt Datei erzeugt, in der steht:
    "Undefined index: recaptcha_response_field in /home/www/includes/anfrageF.php on line 8"
    Mein Script sieht an dieser Stelle wie folgt aus.

    PHP
    if(isset($_POST['submit'])) {
    require_once('recaptchalib.php');
    $privatekey = "{key}";
    $resp = recaptcha_check_answer ($privatekey,
    						$_SERVER['REMOTE_ADDR'],
    $_POST['recaptcha_challenge_field'],
    						$_POST['recaptcha_response_field']);
    if (!$resp->is_valid) { //On reCapatcha fail
    echo "{ausgabe}"

    Wenn weiter Fragen bestehen, fragt ruhig,
    ansonsten wäre ich sehr dankbar für Hilfestellung.
    Liebe Grüße, TwistaaR.

  • Ich hab zwar keinen Plan von recaptcha, aber die Fehlermeldung ist eindeutig:
    Das Post-Formular das die if-Bedingung aufruft hat kein Feld mit Namen 'recaptcha_response_field'.
    Daher existiert im POST-Array dieser Index nicht.

    "Programming today is a race between software engineers
    striving to build bigger and better idiot-proof programs,
    and the universe trying to build bigger and better idiots.
    So far, the universe is winning."
    Rick Cook

  • Das Post-Formular das die if-Bedingung aufruft hat kein Feld mit Namen 'recaptcha_response_field'.


    Hätte ich auch vermutet, aber im HTML-Code gibt es dieses Feld.
    Ich würde mal nach

    PHP
    if(isset($_POST['submit'])){


    diese Zeile einbauen.

    PHP
    print_r($_POST);


    Merkwürdig ist das und google liefert auch einige Ergebnisse mit diesem Problem. In erster Linie beim Hersteller nachsehen, ob es da Infos gibt, ansonsten ein anderes Captcha-Script verwenden.

  • Danke für die Antwort.
    So was hatte ich auch schon gelesen, aber ich finde dafür keine Erklärung, denn auf meiner Lokalem Testumgebung funktionierte alles soweit.
    Das Script auf der Formularseite müsste meines Wissens nach richtig eingefügt sein.

    PHP
    <?php
          require_once('../includes/recaptchalib.php');
          $publickey = "{publicKey}";
          echo recaptcha_get_html($publickey);
        ?>


    Auch ist das Feld 'recaptcha_response_field' im HTML Quelltext zu finden.

    HTML
    <noscript> 
      		<iframe src="http://www.google.com/recaptcha/api/noscript?k=6LdRTrsSAAAAAKQM_fVHqc9f4KzphumPVV-4wfNH" height="300" width="500" frameborder="0"></iframe><br/> 
      		<textarea name="recaptcha_challenge_field" rows="3" cols="40"></textarea> 
      		<input type="hidden" name="recaptcha_response_field" value="manual_challenge"/> 
    	</noscript></div>
  • Ja, es gibt einiges bei Google darüber zu finden, habe mir alle 3 Suchergebnisseiten durchgeschaut & gründlich gelesen, doch kam es nie zu einem, für mich passendem, Ergebnis.

    Ich habe

    PHP
    print_r($_POST);

    eingebaut in das Script:

    PHP
    if(isset($_POST['submit'])) {
    print_r($_POST);
    require_once('recaptchalib.php');
    $privatekey = "{key}";
    $resp = recaptcha_check_answer ($privatekey,
    							$_SERVER['REMOTE_ADDR'],
    							$_POST['recaptcha_challenge_field'],
    							$_POST['recaptcha_response_field']);
    if (!$resp->is_valid) { //On reCapatcha fail

    Doch behoben hat es leider nicht's. Nach Abschicken des Formulars erscheint weiterhin ohne verzögerung ein nur weißes Dokument ohne jeglichen Quelltext.

    Wenn benötigt kann das das Formular auch verwendet werden, um evtl. mehr Einsicht zu gewinnen.

    Danke für die Antworten bis hier hin.
    ps. Was gibt es denn noch für Captcha-Scripts zu empfehlen`?

  • Danke für die Antwort.
    Auch ist das Feld 'recaptcha_response_field' im HTML Quelltext zu finden.

    HTML
    <noscript> 
              <iframe src="http://www.google.com/recaptcha/api/noscript?k=6LdRTrsSAAAAAKQM_fVHqc9f4KzphumPVV-4wfNH" height="300" width="500" frameborder="0"></iframe><br/> 
              <textarea name="recaptcha_challenge_field" rows="3" cols="40"></textarea> 
              <input type="hidden" name="recaptcha_response_field" value="manual_challenge"/> 
        </noscript></div>


    Öhm, aber da ist es ja nur im <noscript>-Bereich, d.h. das Feld gibt es nur wenn JavaScript deaktiviert ist.
    Hast du das mit deaktiviertem Javascript getestet? Und kannst du davon ausgehen, dass alle Besucher Javascript deaktiviert haben?

    [edit] Auf der verlinkten Seite sehe ich Captchas jetzt ehrlich gesagt auch gar nicht als nötig an. Ein per CSS verstecktes Formular-Feld mit einem Namen wie z.B. "email" (also ein Feldname der von Bots garantiert ausgefüllt wird) sollte vollkommen reichen. Kein Grund Besucher mit Captchas zu quälen. Auf der Seite die das Formular verarbeitet wird dann einfach geprüft ob das Feld ausgefüllt wurde, wenn ja war es ein Bot (normale Besucher einer Website füllen i.d.R. keine versteckten Formularfelder aus).
    Gegen Refresh-Scherzbolde dann noch die IP in der Session speichern und maximal 2-3 Formularversendungen pro Stunde und IP erlauben, fertig.
    Besucher werden es dir danken.
    Auf Webseiten die ich bisher gemacht habe hat diese Prozedur bisher immer locker ausgereicht.

    [edit2] Brauchbarer Link zu dem Thema: http://www.1ngo.de/web/captcha-spam.html

    (Ja, ich verabscheue Captchas zutiefst und rate jedem dazu, sie wirklich erst dann zu verwenden, wenn alle anderen Optionen versagt haben und man immer noch mit Spam zugebombt wird. 90%+ der Captchas die man im Netz findet sind meiner Meinung nach überflüssig, und für mich persönlich oft ein Grund eine Seite nicht mehr zu besuchen.)

    "Programming today is a race between software engineers
    striving to build bigger and better idiot-proof programs,
    and the universe trying to build bigger and better idiots.
    So far, the universe is winning."
    Rick Cook

    2 Mal editiert, zuletzt von SinnlosS (24. Juli 2010 um 17:47)

  • Guten Abend,
    vielen Dank für deinen weiteren Post SinnlosS, er hat mich in gewisser Weise weitergebracht, besser gesagt "aufgeklärt".
    Ich werde mich deiner Methode annehmen & für die Nächsten Tage, in denen ich verhindert bin zu arbeiten, die reCaptcha - Abfrage komplett herausnehmen, damit eine Buchung bzw. Kontaktmöglichkeit möglich ist.
    Den von dir geschriebenen Link werde ich mir auch annehmen.

    &Wenn es dann evtl. ganz schlimm kommt, kann man ja die IP Adresse via .htaccess endgültig von der Site verbannen.

    Danke, für die Antworten, ich werde diesen Thread als erledigt markieren.
    Liebe Grüße, TwistaaR.