2017-07-07 6 views
0

Nachdem Echo angezeigt wird, wenn Sie auf "OK" klicken, es geht nur um die PHP-Datei, die nichts anzeigt (so dass ich am Ende mit einem leeren Bildschirm), passiert zweimal, wie kann ich beheben es?Php nach Echo angezeigt leeren Bildschirm

Nachdem das zweite Echo angezeigt wird, wenn Sie auf 'OK' klicken, muss es zurück zur Seite gehen, damit der Benutzer den reCAPTCHA ausführen kann. Jetzt geht es nur noch zur php-Datei, die nichts anzeigt ein leerer Bildschirm wieder)

<?php 
// grab recaptcha library 
require_once "recaptchalib.php"; 

// your secret key 
$secret = "secretkey"; 

// empty response 
$response = null; 

// check secret key 
$reCaptcha = new ReCaptcha($secret); 

// if submitted check response 
if ($_POST["g-recaptcha-response"]) { 
$response = $reCaptcha->verifyResponse(
    $_SERVER["REMOTE_ADDR"], 
    $_POST["g-recaptcha-response"] 
); 
} 

if ($response != null && $response->success) { 
if(isset($_POST['submit'])) { 
$to = "[email protected]"; 
$subject = "Voorstel ---.synology.me"; 
$suggest = $_POST['comment']; 

$body = " NL\n Suggestie: $suggest\n"; 

echo "<script>alert('Je voorstel is verstuurd, wij proberen dit zo snel mogelijk te verwezelijken!');</script>"; 
//after previous echo is displayed, when you click 'ok', it just goes to the php file which displays nothing (so I end up with a blank screen) 
$headers = "From: [email protected]" . "\r\n"; 
mail($to, $subject, $body, $headers); 
} else { 
echo "Er ging iets mis, probeer opnieuw of contacteer de administrator op [email protected]!"; 
} 

} else { 
echo "<script>alert('Vul de Captcha correct in!');</script>"; 
//after previous echo is displayed, when you click 'ok', it must go back to the page so the user can do the reCAPTCHA 
//now it just goes to the php file which displays nothing (so I end up with a blank screen) 
} 
?> 
+3

DO Ihre privaten Schlüssel nicht öffentlich auf –

+1

wiederum teilen error_reporting zu sehen, ob es – ThisGuyHasTwoThumbs

+0

einen fatalen Fehler zeigt hat die Seite fertig geladen und Sie geben dem Benutzer eine Javascript-Alarm, nachdem der Benutzer klickt 'ok' passiert sicher nichts, weil die Seite fertig geladen ist. – Harrie

Antwort

2

Stattdessen eine Warnung, wie wäre es mit einer Bestätigung, die die Seite umleitet?

<script> 
if(confirm('Vul de Captcha correct in!')){ 
    window.location.href = "yourpage.php"; 
} 
</script> 

Vergessen Sie nicht, sicherzustellen, dass Ihr Echo richtig formatiert ist.

echo "<script> 
    if(confirm('Vul de Captcha correct in!')){ 
     window.location.href = 'yourpage.php'; 
    } 
</script>"; 

Um den gleichen Effekt unabhängig von der Wahl zu haben, einfach mit der if-Anweisung dafür sorgen. In Ihrem letzten else-Anweisung

<script> 
    if(confirm('Vul de Captcha correct in!')){ 
     window.location.href = "yourpage.php"; 
    }else{ 
     window.location.href = "yourpage.php"; 
    } 
</script> 
+0

Parse-Fehler: Syntaxfehler, unerwartete 'yourpage' (T_STRING), erwartet ',' oder ';' in /volume1/web/JocanasNLsuggest.php auf Linie 42 Es gibt mir diesen Fehler. Wenn ich yourpage.php durch https://google.com/ ersetze, erhalte ich immer noch den gleichen Fehler. Mache ich etwas falsch? – Limoentaart

+0

müssen Sie nextline entfernen. wickle den gesamten Code in eine Zeile. – Th3

+0

Danke, es funktioniert jetzt! Wenn ich ok drücke, wird die Seite neu geladen, aber wenn ich cancel drücke, wird der php beendet und ich habe wieder einen weißen Bildschirm. Wie kann ich es so machen, wenn Sie auf Abbrechen drücken, tut es das gleiche wie in Ordnung. Oder gibt es eine Möglichkeit, den Abbrechen-Button verschwinden zu lassen? – Limoentaart