Hallo,

ik heb een PHP script ingebouwd in een pagina waarbij een mail wordt verstuurd wanneer alle gegevens zijn ingevuld.
Bij het klikken op de "Registreer" knop wordt er een controle functie aangesproken (controleren) en indien deze geen fouten vindt, dient het php script uitgevoerd te worden.
Nu merk ik dat van zodra de pagina wordt geladen het php script reeds uitgevoerd wordt. Hoe kan dit? Hoe kan ik dit voorkomen?

function controleren() {
var xcontrole = 0;
var mededeling = "";
var xnaam = document.form1.Naam.value;
if (xnaam == "") {
mededeling = mededeling + "- Graag je naam invullen.\n" ;
xcontrole = 1;
}
var xnaam = document.form1.Voornaam.value;
if (xnaam == "") {
mededeling = mededeling + "- Graag je voornaam invullen.\n" ;
xcontrole = 1;
}
var xnaam = document.form1.Adres.value;
if (xnaam == "") {
mededeling = mededeling + "- Graag je adres invullen.\n" ;
xcontrole = 1;
}
var xnaam = document.form1.Woonplaats.value;
if (xnaam == "") {
mededeling = mededeling + "- Graag je woonplaats invullen.\n" ;
xcontrole = 1;
}
var xnaam = document.form1.Land.value;
if (xnaam == "") {
mededeling = mededeling + "- Graag je land invullen.\n" ;
xcontrole = 1;
}
var xnaam = document.form1.Email.value;
if (xnaam == "") {
mededeling = mededeling + "- Graag je e-mail invullen.\n" ;
xcontrole = 1;
}

if (xcontrole == 1){
alert (mededeling);
}
else
{

<?php
$message = "nieuwe Nederlandstalige donateur";
use PHPMailer\PHPMailer\PHPMailer;
use PHPMailer\PHPMailer\src\Exception;

require 'PHPMailer\PHPMailer\src\Exception.php';
require 'PHPMailer\PHPMailer\src\PHPMailer.php';
require 'PHPMailer\PHPMailer\src\SMTP.php';

$mail = new PHPMailer();
$mail->IsSMTP();
$mail->Host = "smtp.mijnhostingpartner.nl";
$mail->SMTPAuth = true;
....
PHP wordt als eerste door de server uitgevoerd, en daarna wordt Javascript door de browser uitgevoerd. Beiden hebben geen weet van elkaar.

En bovendien is enkel validatie in Javascript niet voldoende, want iemand kan Javascript ook gewoon uitschakelen. Je zult allereerst de validatie in PHP moeten uitvoeren, en als die uiteindelijk gepasseerd wordt dan kan je de mail eruit sturen. In het formulier kan je uiteraard optioneel nog validatie in Javascript uitvoeren.

Reageren