recaptcha werkte prima, nu niet meer

Status
Niet open voor verdere reacties.
Niet getest maar probeer dit eens. Het onderste stuk in mijn code vervangen door dit.
Vervang "info@abcdefghij.nl" door jouw emailadres.
Code:
// check the recaptcha response
if ($resp->isSuccess()) {

    $to       = "info@abcdefghij.nl";
    $subject  = "Bericht van website Beypilic";

    $msg  = "<html><body>";
    $msg .= "<div style=\"font-size: 14px; font-family: 'Segoe UI', Roboto, 'Helvetica Neue', Arial, sans-serif;\">";
    $msg .= "<div><strong>Naam:</strong> "       . strip_tags($naam)     . "</div>";
    $msg .= "<div><strong>Emailadres:</strong> " . strip_tags($email)    . "</div>";
    $msg .= "<div><strong>Telefoon:</strong> "   . strip_tags($telefoon) . "</div>";
    $msg .= "<div><br /><br /></div>";
    $msg .= "<div><strong>Bericht:</strong> "    . strip_tags($bericht)  . "</div>";
    $msg .= "<div><br /><br /></div>";
    $msg .= "<div><strong>Datum:</strong> "      . $datum                . "</div>";
    $msg .= "<div><strong>IP adres:</strong> "   . $ip                   . "</div>";
    $msg .= "</div>";
    $msg .= "</body></html>";

    $headers  = "From: " . strip_tags($email) . "\r\n";
    $headers .= "Reply-To: " . strip_tags($email) . "\r\n";
    $headers .= "MIME-Version: 1.0" . "\r\n";
    $headers .= "Content-Type: text/html; charset=ISO-8859-1" . "\r\n";

    mail($to, $subject, $msg, $headers);
    header('location:http://beypilic.nl/bedankt.html');
    
} else {
    echo '<h2>Verificatie mislukt</h2>';
    //header('location:http://beypilic.nl/mislukt.html');
}

Suc6. Have fun.

P.S. de functie mail(...) is niet de veiligste manier om mail te versturen.
 
Laatst bewerkt:
Op een nieuwe website werkt het weer niet

Hallo, daar ben ik weer.

Ik heb nu exact hetzelfde php bestand (wel met de juiste keys van google recaptcha) gebruikt en het zelfde formulier op een nieuwe website:

Het formulier staat hier: https://www.a-plusautos.nl/contact2.html


Als ik nu echter op de button verzend klik kom ik uit op deze pagina: https://www.a-plusautos.nl/post222.php

Er gaat dus weer iets mis met dit verhaal.

Ik hoop dat het iets simpels is.

gebruikte php script:

PHP:
<?php

if ($_SERVER['REQUEST_METHOD'] == 'POST') {

	// ---- recaptcha keys ------------------------------------
	$siteKey = "6LfFBeQZAAAAABTS2eewYX8RpGKCpb2oUXP5G5VB";
	$secret  = "xxx";
	// --------------------------------------------------------

	// directory without trailing slash
	$dir = str_replace('\\', '/', __DIR__);

	// initiate the autoloader
	require_once $dir . '/ReCaptcha/autoload.php';

	// sanitize field data
	function fnPostData ($field) {
		if (isset($_POST[$field])) return filter_var($_POST[$field], FILTER_SANITIZE_STRING);
		else return "";
	}

	// test only
	//echo '<h2>POST data</h2><code><pre>', var_export($_POST), '</pre></code>';

	// read user fields
	$naam     = fnPostData('naam');
	$email    = fnPostData('email');
	$telefoonnummer = fnPostData('telefoonnummer');
	$bericht  = fnPostData('bericht');

	// read recaptcha field
	$recapt = fnPostData('g-recaptcha-response');

	// date/time and ip
	$datum = strftime('%d/%m/%Y %H:%M', time());
	$ip = getenv('REMOTE_ADDR');

	if ($naam != '' && $email != '' && $bericht != '') {

		// create a recaptcha instance
		$recaptcha = new \ReCaptcha\ReCaptcha($secret);

		// use this alternative fsockopen() request method if file_get_contents() is locked.
		//$recaptcha = new \ReCaptcha\ReCaptcha($secret, new \ReCaptcha\RequestMethod\SocketPost());

		// make the call to verify the response and also pass the user ip
		$resp = $recaptcha->setExpectedHostname($_SERVER['SERVER_NAME'])
						  ->verify($_POST['g-recaptcha-response'], $_SERVER['REMOTE_ADDR']);

		// check the recaptcha response
		if ($resp->isSuccess()) {

			// message email body
			$msg = $naam.' met het e-mailadres '.$email.' en het IP '.$ip.' stuurde op '.$datum.' het volgende bericht:
			____________________________________
			naam: '.$naam.'
			email: '.$email.'
			telefoonnummer: '.$telefoonnummer.'
			bericht: '.$bericht.'
			------------------------------------';

			// test only
			//echo '<h2>Working</h2><code><pre>', var_export($resp), '</pre></code>';

			// mail to receiver and redirect to another page
			mail('robarnoe@live.nl', 'Bericht van website aplusautos', $msg, 'From: '.$email);
			header('location:https://www.a-plusautos.nl/bedankt.html');

		} else {
			echo '<h2>Verificatie mislukt</h2>';
			//header('location:http://a-plusautos.nl/mislukt.html');
		}

	}
}
 
Laatst bewerkt:
Ik krijg een 'error 500', dus bekijk je error_log eens.
En haal je secret even weg. :)
 
Moet je even zoeken of je een dergelijk bestand op je hosting vindt. Of misschien via het hosting-controlepaneel.

Elke server is anders, dus ik kan geen concreet antwoord geven. Welke gebruik je om je hostingpakket mee te beheren?
 
Laatst bewerkt:
Ik kan de tekst uit het errorlog niet kopieren dus ik heb er even een screenshot van gemaakt.
 

Bijlagen

  • Schermafbeelding 2020-11-17 om 19.04.03.png
    Schermafbeelding 2020-11-17 om 19.04.03.png
    194,1 KB · Weergaven: 22
Misschien moeten we even wachten

Mijn klant heeft nu de domeinnamen gehost bij neostrada.

Bij deze hostingpartij werkt blijkbaar een php script voor het verzenden van een contactformulier niet.

Ik heb mijn klant geadviseerd om over te stappen naar strato.

Daar weet ik zeker dat een normaal php script zoals ik dat altijd gebruik wel werkt.

Plus strato heeft gewoon een telefonische helpdesk voor als je vragen hebt.

Neostrada werkt met zon verschrikkelijk irritant ticketsysteem.

Als het goed is is over een paar dagen de verhuizing naar strato compleet.


Misschien eerst even kijken of het daar wel werkt?
 
Laatst bewerkt:
zo?

PHP:
<?php
error_reporting(E_ALL);
ini_set('display_errors',true);
?>

<?php

if ($_SERVER['REQUEST_METHOD'] == 'POST') {

	// ---- recaptcha keys ------------------------------------
	$siteKey = "6LfFBeQZAAAAABTS2eewYX8RpGKCpb2oUXP5G5VB";
	$secret  = "xx";
	// --------------------------------------------------------

	// directory without trailing slash
	$dir = str_replace('\\', '/', __DIR__);

	// initiate the autoloader
	require_once $dir . '/ReCaptcha/autoload.php';

	// sanitize field data
	function fnPostData ($field) {
		if (isset($_POST[$field])) return filter_var($_POST[$field], FILTER_SANITIZE_STRING);
		else return "";
	}

	// test only
	//echo '<h2>POST data</h2><code><pre>', var_export($_POST), '</pre></code>';

	// read user fields
	$naam     = fnPostData('naam');
	$email    = fnPostData('email');
	$telefoonnummer = fnPostData('telefoonnummer');
	$bericht  = fnPostData('bericht');

	// read recaptcha field
	$recapt = fnPostData('g-recaptcha-response');

	// date/time and ip
	$datum = strftime('%d/%m/%Y %H:%M', time());
	$ip = getenv('REMOTE_ADDR');

	if ($naam != '' && $email != '' && $bericht != '') {

		// create a recaptcha instance
		$recaptcha = new \ReCaptcha\ReCaptcha($secret);

		// use this alternative fsockopen() request method if file_get_contents() is locked.
		//$recaptcha = new \ReCaptcha\ReCaptcha($secret, new \ReCaptcha\RequestMethod\SocketPost());

		// make the call to verify the response and also pass the user ip
		$resp = $recaptcha->setExpectedHostname($_SERVER['SERVER_NAME'])
						  ->verify($_POST['g-recaptcha-response'], $_SERVER['REMOTE_ADDR']);

		// check the recaptcha response
		if ($resp->isSuccess()) {

			// message email body
			$msg = $naam.' met het e-mailadres '.$email.' en het IP '.$ip.' stuurde op '.$datum.' het volgende bericht:
			____________________________________
			naam: '.$naam.'
			email: '.$email.'
			telefoonnummer: '.$telefoonnummer.'
			bericht: '.$bericht.'
			------------------------------------';

			// test only
			//echo '<h2>Working</h2><code><pre>', var_export($resp), '</pre></code>';

			// mail to receiver and redirect to another page
			mail('robarnoe@live.nl', 'Bericht van website aplusautos', $msg, 'From: '.$email);
			header('location:https://www.a-plusautos.nl/bedankt.html');

		} else {
			echo '<h2>Verificatie mislukt</h2>';
			//header('location:http://a-plusautos.nl/mislukt.html');
		}

	}
}


Het script werkte bij mijn vorige website waar ik het heb gebruikt prima.
Toen had jij me ook geholpen ermee.

Ik heb behalve de keys van google niks aan het script veranderd.
 
Laatst bewerkt:
Zie mijn aangepaste post hierboven.
Haal ook even je secret uit je posts weg. Dat is net als je pincode. Mensen kunnen nu gebruik maken van jouw captcha beveiligingsinstellingen. Dat wil je liever niet.
 
Laatst bewerkt:
De secret key is weg.
pfffff.
het duurt altijd even bij mij voor ik iets doorheb.

Ik denk dat het misschien toch aan iets bij neostrada kan liggen.

Ik wacht heel even tot de domeinnaam en hosting verhuisd is naar strato en meld me dan weer als het niet werkt.

Tot zover bedankt.
 
Zie je geen errors dan via de genoemde stappen?
Bij een fatsoenlijke hosting zou dit niet zomaar mogen gebeuren.
 
Ik denk dat het misschien toch aan iets bij neostrada kan liggen.
Ik wacht heel even tot de domeinnaam en hosting verhuisd is naar strato en meld me dan weer als het niet werkt.
Dat denk ik niet, ik heb nog nooit van een provider gehoord die mail() niet ondersteunt.

Verhuizen kost meestal 0,5 tot 1,5 dag. Je kan in de verhuisperiode eenvoudig mailboxen overzetten van de oude naar de nieuwe provider. Hoe dit gaat vind je hier
 
Laatst bewerkt:
Laatst bewerkt door een moderator:
Mailen via een smtp server gebeurt ook met een php script en is veel veiliger en betrouwbaarden dan mail().
Op die manier begrijp ik hun advies wel.

Op internet vind je heel veel mail scripts die gebruik maken van de kant-en-klalre PHPMailer voor smtp.
Zelf heb ik vorig jaar op Helpmij een voorbeeld gezet (klik)

In dit script hoef je alleen maar het bestand "mailer-conf.php" in te vullen en dan alle bestanden uploaden.
Wel zal je de recaptcha er nog in moeten zetten maar je weet nu hoe dat gaat
 
Laatst bewerkt:
Als je PHPMailer gaat gebruiken dan zijn dit de instellingen

Neostrada

SMTP server: mail.JouwDomein.nl (JouwDomein.nl veranderen in jouw domeinnaam)
Username: JouwEmailAdres (bij de provider)
Password: *******
Poort: SSL/465 (of SSL/587)

Strato

SMTP server: smtp.strato.com
Username: JouwEmailAdres (bij de provider)
Password: *******
Poort: SSL/465
 
Laatst bewerkt:
Hier ben ik weer.

Ik heb zitten kijken naar dat php mailer maar daar ben ik wel even mee bezig om dat werkend te krijgen.
Ik wil dus eerst even kijken of ik toch met mijn huidige php script uit de voeten kan.

Het volgende snap ik niet:
hier staat mijn vorige gebruikte php script met recaptcha wat ik met behulp van jullie werkend heb gekregen: http://benbastiaansen.nl/contact.html
Net nog getest en de mail komt prima binnen nadat ik wat verkeerslichten had geselecteerd.

Nu heb ik even hier exact dezelfde pagina weggezet (let niet op de lay-out, het gaat alleen even om de werking van het formulier): https://a-plusautos.nl/contact3.html
Het formulier is hetzelfde, het php script is ook hetzelfde.

Het enige wat ik heb aangepast zijn de site en secret keys in het php script en de sitekey in de html pagina.


En het vreemde is dat deze het nu niet doet.
Dit zou toch niet moeten kunnen?
 
Dat denk ik niet, ik heb nog nooit van een provider gehoord die mail() niet ondersteunt.

Verhuizen kost meestal 0,5 tot 1,5 dag. Je kan in de verhuisperiode eenvoudig mailboxen overzetten van de oude naar de nieuwe provider. Hoe dit gaat vind je hier

of kijk hier als het een wordpress website is, dan is het zo gepiept. https://www.helpmij.nl/forum/showthread.php/956194-Website-overzetten-andere-hosting (antwoord #16)

ps. heb niet naar je website gekeken hoor, dus ik weet niet hoe je deze gemaakt hebt. Maar vond de tip wel handig voor als......je weet wel.
 
Laatst bewerkt:
Laatst bewerkt:
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan