Ergebnis 1 bis 7 von 7
  1. #1
    Luke144 ist offline Jungspund
    registriert
    20-07-2017
    Beiträge
    14

    Lightbulb Google reCAPTCHA v2: JSON Objektabfrage in PHP funkt nicht

    Hallo Leute,

    ich kämpfe seit Tagen mit der Einbindung des Google reCAPTCHA v2 in mein Webformular.
    An sich keine große Sache, würde man meinen.
    Ich habe alles lt. standardisierter Anleitung von Google in mein Formular eingebunden.
    Alle Schritte erscheinen logisch u. plausibel.
    Das Google API liefert folgende Werte zurück:
    https://developers.google.com/recapt...fy#api-request

    Dennoch klappt meine Abfrage des JSON-Objektes in php nicht.
    Entweder bin ich zu blöde od. ich habe etwas übersehen/mißverstanden

    Meine contact.php:
    PHP-Code:
    <?php
    function tohtml($text){
        
    $text=str_replace('ä','&auml;',$text);
        
    $text=str_replace('Ä','&Auml;',$text);
        
    $text=str_replace('ö','&ouml;',$text);
        
    $text=str_replace('Ö','&Ouml;',$text);
        
    $text=str_replace('ü','&uuml;',$text);
        
    $text=str_replace('Ü','&Uuml;',$text);
        
    $text=str_replace('ß','&szlig;',$text);    
        return 
    $text;
    }

    function 
    form_kfwert($kfwert){
        
    $kffehler=form_kfpruef();
        if(isset(
    $_POST['kfsend']) && empty($kffehler)){
            return 
    "";
        }
        else{
            return 
    $kfwert;
        }
    }

    function 
    form_kfpruef(){
        if(empty(
    $_POST['kfmail'])) $kffehler[] = "Email";
        if(empty(
    $_POST['kfnachr'])) $kffehler[] = "Nachricht";
        return 
    $kffehler
    }

    function 
    form_kfcaptcha(){
        
    $secretkey 'xxxxxxxxxx';
        
    $antwortJSON file_get_contents('https://www.google.com/recaptcha/api/siteverify?secret='.$secretkey.'&response='.$_POST['g-recaptcha-response']);
        
    $antwortDatenkf json_decode($antwortJSON); 
        
        if(
    $antwortDatenkf->success) {    //###diese Abfrage funktioniert leider nicht###
            
    $kffehlercap="true";  
        }
        else{
            
    $kffehlercap="false";
        }
        return 
    $kffehlercap;
        }                              
    //###-----------------------------------------###

    function form_kfsend($kfmailadresse){
        
    $kfmailinhalt='
    <html>
    Kontaktformular: Nachricht eingegangen am '
    .date("d.m.y, H:i"time()).' Uhr
    <br />
    <br />
    <table>
    <tr>
    <td width="100" height="30">Vorname:</td>
    <td>'
    .tohtml($_POST['kfvname']).'</td>
    </tr>
    <tr>
    <td width="100" height="30">Nachname:</td>
    <td>'
    .tohtml($_POST['kfnname']).'</td>
    </tr>
    <tr>
    <td width="100" height="30">Telefon:</td>
    <td>'
    .$_POST['kftel'].'</td>
    </tr>
    <tr>
    <td width="100" height="30">Email: </td>
    <td>'
    .tohtml($_POST['kfmail']).'</td>
    </tr>
    <tr>
    <td width="100" height="30">Betreff: </td>
    <td>'
    .tohtml($_POST['kfbetr']).'</td>
    </tr>
    <tr>
    <td width="100" height="30">Nachricht: </td>
    <td>'
    .tohtml($_POST['kfnachr']).'</td>
    </tr>
    </table>
    </html>'
    ;

        
    $kfextra "From: ".$kfmailadresse."\n";
          
    $kfextra .= "Content-Type: text/html\n Content-Transfer-Encoding: 8bit\n";
        
    mail($kfmailadresse'Nachricht Kontaktformular'$kfmailinhalt$kfextra);
    }

    if(isset(
    $_POST['kfsend'])){
        
    $kffehler=form_kfpruef();
        
    $kffehlercap=form_kfcaptcha();
        if(empty(
    $kffehler) && ($kffehlercap == "true")){
            
    form_kfsend('mail@mail.net');
            
    $kfhinweis="Vielen Dank für Ihre Nachricht.<br /><br />";
            
    $kfhinweis2=$kffehlercap;
        }
        else{
            
    $kfhinweis="Bitte füllen Sie alle mit * gekennzeichneten Felder aus und lösen Sie das CAPTCHA.";
            
    $kfhinweis2=$kffehlercap;
        }
    }

    ?>


    <script type="text/javascript" src='https://www.google.com/recaptcha/api.js'>
    function see(formfeld) {
        formfeld.setAttribute("class", "form_see");
    }
    function hide(formfeld) {
        formfeld.setAttribute("class", "form_hide");
    }
    </script>

    <div style="margin-left:30px;">
      <h2>Hinterlassen Sie eine Nachricht</h2></div>
    <br />

    <table cellpadding="3" border="0" align="center">
        <form method="post" target="_self">
          <tr>
            <td colspan="4" height="40" align="center"><div style="margin-left:100px;"><b>K O N T A K T F O R M U L A R</b></div></td>
          </tr>
          <tr>
            <td width="100">Vorname</td>
            <td width="150"><input type="text" name="kfvname" class="form_hide" style="width:100%; height:17px;" onFocus="see(this)" onBlur="hide(this)" value="<?php echo form_kfwert($_POST['kfvname']); ?>" /></td>
            <td width="130" align="right">Nachname</td>
            <td width="144"><input type="text" name="kfnname" class="form_hide" style="width:100%; height:17px;" onFocus="see(this)" onBlur="hide(this)" value="<?php echo form_kfwert($_POST['kfnname']); ?>" /></td>
          </tr>
          <tr>
            <td width="100">eMail*</td>
            <td width="150"><input type="text" name="kfmail" class="form_hide" style="width:100%; height:17px;" onFocus="see(this)" onBlur="hide(this)" value="<?php echo form_kfwert($_POST['kfmail']); ?>" /></td>
            <td width="130" align="right">Telefon</td>
            <td width="144"><input type="text" name="kftel" class="form_hide" style="width:100%; height:17px;" onFocus="see(this)" onBlur="hide(this)" value="<?php echo form_kfwert($_POST['kftel']); ?>" /></td>
          </tr>
          <tr>
            <td width="100">Betreff</td>
            <td colspan="3"><div><input type="text" name="kfbetr" class="form_hide" style="width:100%; height:17px;" onFocus="see(this)" onBlur="hide(this)" value="<?php echo form_kfwert($_POST['kfbetr']); ?>" /></td>
          </tr>
          <tr>
            <td width="100" height="160" valign="top">Nachricht*</td>
            <td colspan="3"><textarea class="textarea-box" name="kfnachr" cols="8" rows="10"><?php echo form_kfwert($_POST['kfnachr']); ?></textarea></td>
          </tr>
          <tr>
            <td height="66">&nbsp;</td>
            <td>&nbsp;</td>
            <td colspan="2" align="right"><div class="g-recaptcha" data-sitekey="xxxxxxxxxx"></div></td>
          <tr>
            <td width="100" height="35">&nbsp;</td>
            <td>&nbsp;</td>
            <td colspan="2" align="right"><button type="submit" class="form_see" name="kfsend">Nachricht absenden</button></td>
      </form>
      <tr>
          <td height="20" colspan="4" align="right"><div style="color:#ff7800; font-weight:bold;"><?php if(isset($kfhinweis)) echo $kfhinweis$kfhinweis2;?></div></td>
      </tr>
    </table>
    <br />
    Könnt ihr mir da weiterhelfen?
    Ich bin leider ratlos...

    Gruß Luke
    Geändert von Luke144 (17-05-2018 um 11:56 Uhr)

  2. #2
    Avatar von mikdoe
    mikdoe ist offline Administrator
    registriert
    01-05-2010
    Beiträge
    7.591

    AW: Google reCAPTCHA v2: JSON Objekt in PHP abfragen funkt nicht

    Welche Fehlermeldung hast du denn in der Console?
    Das deutsche Javascript Forum http://forum.jswelt.de http://forum.jswelt.de/images/logoJsWeltForumV4_32x22.png
    Sorry wenn ich manchmal ohne Hallo und nur klein schreibe! Dann bin ich nicht unfreundlich sondern mit nervigem kleinem Touch Tablet zugange

  3. #3
    Luke144 ist offline Jungspund
    registriert
    20-07-2017
    Beiträge
    14

    AW: Google reCAPTCHA v2: JSON Objekt in PHP abfragen funkt nicht

    Hmm, also ich lade das file stets direkt via ftp auf den webserver hoch.
    Dreamweaver zeigt mir weder einen lokalen Syntaxfehler, noch kommt ein Fehler im Browser.

  4. #4
    Avatar von mikdoe
    mikdoe ist offline Administrator
    registriert
    01-05-2010
    Beiträge
    7.591

    AW: Google reCAPTCHA v2: JSON Objekt in PHP abfragen funkt nicht

    Dann heißt es debuggen Zeile für Zeile. Zumindest wüsste ich von hier aus ohne den zugehörigen Server auf Anhieb nicht, was ich dazu sagen sollte.
    Das deutsche Javascript Forum http://forum.jswelt.de http://forum.jswelt.de/images/logoJsWeltForumV4_32x22.png
    Sorry wenn ich manchmal ohne Hallo und nur klein schreibe! Dann bin ich nicht unfreundlich sondern mit nervigem kleinem Touch Tablet zugange

  5. #5
    Avatar von kkapsner
    kkapsner ist offline Super Moderator
    registriert
    28-03-2008
    Beiträge
    17.634

    AW: Google reCAPTCHA v2: JSON Objekt in PHP abfragen funkt nicht

    Mach' mal ein var_dump($antwortDatenkf); und var_dump($antwortJSON);.

  6. #6
    Luke144 ist offline Jungspund
    registriert
    20-07-2017
    Beiträge
    14

    AW: Google reCAPTCHA v2: JSON Objekt in PHP abfragen funkt nicht

    Die echo-Ausgabe beider Variablen lautet:

    var_dump($antwortJSON); NULL
    var_dump($antwortDatenkf); NULL


    D.h. es gibt bereits an dieser Stelle ein Problem:
    PHP-Code:
    $antwortJSON file_get_contents('https://www.google.com/recaptcha/api/siteverify?secret='.$secretkey.'&response='.$_POST['g-recaptcha-response']); 
    Egal, ob ich das Captcha löse (grünes Häkchen) oder nicht: Das Google API liefert (zumindest für php) den Wert NULL
    ???
    Geändert von Luke144 (Gestern um 14:26 Uhr)

  7. #7
    Avatar von kkapsner
    kkapsner ist offline Super Moderator
    registriert
    28-03-2008
    Beiträge
    17.634

    AW: Google reCAPTCHA v2: JSON Objekt in PHP abfragen funkt nicht

    Funktioniert denn der Link, wenn du ihn im Browser eingibst?
    Es kann natürlich auch sein, dass file_get_contents() auf deinem Server für URLs deaktiviert ist (https://secure.php.net/manual/en/fil...llow-url-fopen). Schon mal curl probiert?

Ähnliche Themen

  1. Google Maps Übergabe JSON funktioniert nicht
    Von seppwert im Forum JavaScript
    Antworten: 5
    Letzter Beitrag: 25-08-2013, 22:47
  2. [JSON] - Objekt in Datei speichern
    Von MatzeWagner im Forum JavaScript
    Antworten: 5
    Letzter Beitrag: 19-11-2012, 00:17
  3. AJAX und JSON - ein Array Object der JSON laden nicht alle
    Von kleene-chris85 im Forum JavaScript
    Antworten: 1
    Letzter Beitrag: 24-07-2012, 00:57
  4. JSON Objekt zu Javascript-Array?
    Von Veyrne im Forum JavaScript
    Antworten: 4
    Letzter Beitrag: 14-10-2011, 14:59
  5. Array in Json-Objekt einfügen
    Von freakyBOi im Forum JavaScript
    Antworten: 4
    Letzter Beitrag: 29-05-2011, 20:31

Lesezeichen

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •