Hoe ook al weer email form html website werkend krijgen?

Status
Niet open voor verdere reacties.
Dat is GEEN code van mij... :confused:

Zoek gewoon naar: Pad naar PHPmailer is, want deze debug zit niet in PHPmailer, en is er met de hand ingebouwd.

En nou niet steeds codes door elkaar van anderen husselen, want dan ben ik er eerlijk gezegd wel klaar mee.
Op die manier kan ik echt niet makkelijk helpen als het script steeds weer veranderd met codes van iemand anders.

eh, dat staat in de index.php
dus niet in een script mailer.php van jou inderdaad. Jouw script is gewoon zoals je het hebt aangegeven. Daar heb ik niets aan veranderd.
 
Dan heb je blijkbaar meer dingen aangepast, want hier werkt het prima.

Zet in ieder geval je foutafhandeling weer aan, anders blijf je naar witte pagina's kijken.
 
Heb nu de recaptcha, ik krijg een keurig vierkantje, maar versturen doet het formulier niet.
heb de foutmelding ook weer aangezet, maar ik krijg niets
 
Sowieso moet je wel mail krijgen, en moet het formulier verder wel werken.
Zet anders zowel de error_reporting en display_errors aan, en ook de debug van PHPmailer eens aan, en houd die liever aan totdat alles goed werkt.

Om welke foutmeldingen gaat het?
En laat eens zien wat je script nu is waarmee je de mail wegstuurt?

Als het naar behoren blijft werken (mail wordt verstuurd, je krijgt bevestiging en debug terug) kunnen we de controle van ReCaptcha in het mail-script inbouwen.
 
Laatst bewerkt:
Nee, ik krijg echt geen mail. Er gebeurt niets.
Zet anders zowel de error_reporting en display_errors aan, en ook de debug van PHPmailer eens aan, en houd die liever aan totdat alles goed werkt.
staat aan.
debug op 2.


goed, de hele website is nu weg...
Ik ga het anders doen, ben het nu zat.
Sorry guys, ik krijg er echt hartkloppingen van.

ps. website weer terug.

Wat heb ik nu:
Mailer.php

PHP:
<?php
// Foutafhandeling van PHP aanzetten. In productie deze onderste twee lijnen commentariseren met een // ervoor.
error_reporting(E_ALL);
ini_set('display_errors', 1);
 
//Import the PHPMailer class into the global namespace
use PHPMailer\PHPMailer\PHPMailer;
use PHPMailer\PHPMailer\SMTP;
use PHPMailer\PHPMailer\Exception;
 
// bestanden
// $dir = str_replace('\\', '/', dirname(__FILE__) . '/PHPMailer/src');
// echo "Pad naar PHPmailer is: " . $dir;
 
// laad de benodige bestanden in
require $dir . '/Exception.php';
require $dir . '/PHPMailer.php';
require $dir . '/SMTP.php';
 
// Tijdzone instellen
date_default_timezone_set('Europe/Amsterdam');
 
if ($_SERVER['REQUEST_METHOD'] == "POST") {
 
    //Create a new PHPMailer instance
    $mail = new PHPMailer();
 
    //Tell PHPMailer to use SMTP
    $mail->isSMTP();
 
    $mail->SMTPDebug = 2; // Debugging voor SMTP. 0 = uit, of 1,2 of 3 voor hogere debugging. 2 is gangbaar bij testen.
    $mail->Host = 'mail.antagonist.nl'; // bijvoorbeeld 'mail.ziggo.nl'
    $mail->SMTPSecure = 'ssl'; // 'ssl' of 'tls'
    $mail->Port = 465; // 465 (bij ssl) of 587 (bij tls)
    $mail->SMTPAuth = true;
  
    //SMTP Authenticatie
    $mail->Username = 'info@sxxxxxxx.nl'; // emailadres of emailnaam of emailcode ofzo
    $mail->Password = 'xxxxxxxx';
 
    // E-mail instellingen
    $mail->setFrom('info@sdxxxxxxn.nl', ''); // Stel de afzender in, dit moet een bestaande afzender zijn.
    $mail->addReplyTo($_POST['contact_email'], $_POST['contact_name']); // Stel een Reply-To adres in
    $mail->AddAddress("info@sdexxxxxxxn.nl" ,"Naam Bedrijf");
    $mail->Subject = 'Aanvraag informatie'; // Stel hier het onderwerp in
    $mail->Body = $_POST['contact_message']; // Stel hier de body van de mail in.

    // Verzend het bericht.
    if (!$mail->send()){
        echo 'Mailer Error: ' . $mail->ErrorInfo;
    } else {
        echo 'Bericht is verzonden';
    }
 
}
?>


Index:
Code:
<!DOCTYPE html>
<html lang="nl">
 
<head>
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1">
 
<title>De titel van de pagina</title>
<meta name="description" content="renovatie, opruiming, oplevering, bouwopruiming, glasbewerking">
<meta name="keywords" content="renovatie, mutatie, schoonmaak en oplevering, bouwopruiming en glasbewerking">
<meta name="copyright" content="copyright 2021, Naam Bedrijf">
 
<link rel="stylesheet" href="https://fonts.googleapis.com/css?family=Open+Sans:300,400">
<link rel="stylesheet" href="css/bootstrap.min.css">
<link rel="stylesheet" href="css/templatemo-style.css">
 
<script src='https://www.google.com/recaptcha/api.js'></script>
<script>
   function onSubmit(token) {
     document.getElementById("contactform").submit();
   }
</script>
</head>
<body>

<div class="container">
<div class="row tm-section-mt">

<div class="col-lg-6">
...
</div>
<div class="col-lg-6 mb-5">
    <h3 class="tm-text-green tm-font-400">Contact ons</h3>
    <form action="contact.php" method="post" class="tm-contact-form">
        <div class="row">
            <div class="form-group col-xl-6">
                <input type="text" id="contact_name" name="contact_name" class="form-control" placeholder="Naam..." required/>
            </div>
            <div class="form-group col-xl-6">
                <input type="email" id="contact_email" name="contact_email" class="form-control" placeholder="Email..." required/>
            </div>
        </div>
        <div class="form-group">
            <textarea id="contact_message" name="contact_message" class="form-control" rows="6" placeholder="Uw bericht..." required></textarea>
        </div>
        <div class="clearfix">
            <div class="float-right">
                <button type="submit" class="btn btn-primary g-recaptcha" data-sitekey="xxxxxxxvx" data-callback='onSubmit' data-action='submit'>Verstuur</button>
            </div>
        </div>
    </form>
</div>

</div>
<!-- .row -->
</div>
<!-- .container -->

<script src="js/jquery.min.js"></script>
<script src="js/templatemo-script.js"></script>

</body>
</html>
 
Laatst bewerkt door een moderator:
Laat de code dan eens zien, zoals ik vroeg?
 
Laatst bewerkt:
ps. moet alleen deze nog ergens zetten:

PHP:
<?php
if ($_SERVER['REQUEST_METHOD'] == "POST") {
    $response = $_POST["g-recaptcha-response"];
    $url = 'https://www.google.com/recaptcha/api/siteverify';
    $data = array(
    'secret' => 'JOUW_PRIVATE_KEY',
    'response' => $_POST["g-recaptcha-response"]
    );
    $options = array(
    'http' => array(
        'method' => 'POST',
        'content' => http_build_query($data)
    )
    );
    $context = stream_context_create($options);
    $verify = file_get_contents($url, false, $context);
    $captcha = json_decode($verify);
    if ($captcha->success == false || $captcha->score <= 0.5) {
       echo "Sorry! Je bent gedetecteerd als een robot. Stuur maar een mail!";
    } else {
       echo "Je inzending is goedgekeurd";
      // stuur hier een mail
    }
}
?>
 
Laat de code dan eens zien, zoals ik vroeg?
ik geef je de code toch? Van de mailer.php

meer heb ik toch niet dan alleen de index.php en de mailer.php
 

Bijlagen

  • Screenshot 2021-09-07 at 14-21-04 s213 webhostingserver nl DirectAdmin 1 62 7.png
    Screenshot 2021-09-07 at 14-21-04 s213 webhostingserver nl DirectAdmin 1 62 7.png
    12,7 KB · Weergaven: 18
Je verwijst in je action naar contact.php, maar hierboven noem je het opeens mailer.php?
Dan heb je opeens dus een heel ander script.

Ik denk eerder dat je behoorlijk in de war raakt omdat je dus tig verschillende soorten versies in dezelfde map hebt staan.
Zorg gewoon voor overzicht, en gooi de scripts waarmee je niet werkt in een andere map met de naam "verouderd" of iets dergelijk.

Mijn script die je net liet zien kan echt geen leeg scherm tonen als je het via het formulier aanroept.
Alleen bij een directe aanroep naar contact.php gebeurt dat, maar dat is ook niet de bedoeling. ;)
 
Laatst bewerkt:
ah, dat is een foutje inderdaad. Ik had dat wel veranderd, maar omdat ik wat terug gezet heb, is dat niet mee veranderd. Ik ga het veranderen en kijken wat het oplevert.

Geen mail.
Zal ik die recaptcha er weer uithalen? En dan kijken?
 
Laatst bewerkt:
Wat meldt de PHPmailer debug dan?
Het formulier springt wel over naar contact.php als je het formulier invult?
Heb je iets aan het script aangepast, en hoe ziet je script er nu uit?

Wat mij opvalt: De ene keer werkt het wel, en de andere keer opeens niet.
Er moet steeds iets veranderen waardoor het niet meer werkt. Het kan niet zomaar gebeuren..
 
Laatst bewerkt:
als ik op verstuur klik, gebeurt er niets. De pagina blijft staan, ik krijg geen mail.
Nada noppes.
ook geen witte pagina met een error, echt helemaal niets.

(heb contact veranderd in mailer.php)
 
Heb je iets aan het script aangepast, en hoe ziet je script er nu uit?

Wat mij opvalt: De ene keer werkt het wel, en de andere keer opeens niet.
Er moet steeds iets veranderen waardoor het niet meer werkt. Het kan niet zomaar gebeuren..
 
klopt, had recaptcha erin gezet, lees mijn berichten terug.
Dan doet het niets meer, dus dat ga ik er weer uithalen.

oké, dat is eruit gehaald.
Nu weer verzonden en krijg ik dit:

Warning: Undefined variable $dir in /..../..../domains/example.nl/public_html/test/mailer.php on line 16

Warning: require(/Exception.php): Failed to open stream: No such file or directory in /..../..../domains/naambedrijf.nl/public_html/test/mailer.php on line 16

Fatal error: Uncaught Error: Failed opening required '/Exception.php' (include_path='.:/opt/alt/php80/usr/share/pear:/opt/alt/php80/usr/share/php:/usr/share/pear:/usr/share/php') in /..../..../domains/naambedrijf.nl/public_html/test/mailer.php:16 Stack trace: #0 {main} thrown in /..../..../domains/naambedrijf.nl/public_html/test/mailer.php on line 16

Line 16: require $dir . '/Exception.php';

Nou, daar heb ik helemaal niet aangezeten.
Het is een dinges zonder einde dit.
 
Laatst bewerkt door een moderator:
Kloppen de paden wel?
 
Bericht is verzonden, zag een foutje.

2021-09-07 13:38:50 SERVER -> CLIENT: 221 s213.webhostingserver.nl closing connection
Bericht is verzonden

Nou, hè, ik krijg ook de mail binnen.

Dit is nu voor elkaar.
 
Als je de HTML code in je formulier hebt ingebouwd, en je ReCaptcha icoontje zichtbaar is, kan je de volgende stap uitvoeren om ReCaptcha in te bouwen:

Voeg NA deze code.......:
Code:
if ($_SERVER['REQUEST_METHOD'] == "POST") {

......... Dit neer:
(Vergeet niet je secret key!)
Code:
    $response = $_POST["g-recaptcha-response"];
    $url = 'https://www.google.com/recaptcha/api/siteverify';
    $data = array(
	'secret' => 'HIER JE SECRET KEY',
	'response' => $_POST["g-recaptcha-response"]
    );
    $options = array(
	'http' => array(
	    'method' => 'POST',
	    'content' => http_build_query($data)
	)
    );
    $context = stream_context_create($options);
    $verify = file_get_contents($url, false, $context);
    $captcha = json_decode($verify);

    // debugging om te kijken of het werkt.
    echo "<pre>".print_r($captcha,true)."</pre>";

Dit deel zorgt er voor dat er een aanroep wordt gedaan bij de ReCapchta systemen.
Als het goed is moet je dan iets als 'success' zien. Klopt dat?

Als dat zo is, dan kunnen we aan de hand van die status een controle inbouwen.
 
Laatst bewerkt:
alles gedaan wat je zegt, html en code plus de verzendbutton recaptcha, maar met een test mail krijg ik geen mail.
en er gebeurt niets op de website. https://test.example.nl/

uiteraard keys ingevuld.

ps. dus zonder die recaptcha doet het formulier het wel, met niet.

Edit: ben iets verder.
Nu doet het formulier het wel, althans, ik klik op de verzenden, daarna krijg ik het idee dat het verzonden wordt, de pagina wordt ververst.
\(de url is dan https://test.example.nl/contact)
Maar ik krijg nog geen mail binnen.

we zijn er bijna denk ik.
 
Laatst bewerkt door een moderator:
Ververst? Het script staat toch in contact.php?
 
Laatst bewerkt:
Ik hoop niet dat het nu verwarrend wordt voor haar nu ik haar stapje voor stapje er doorheen loods terwijl ik al op 80% van de route zit.

Ik snap je bereidwilligheid, maar ik hoop dat ze de opdracht nog overziet.
 
Laatst bewerkt:
Status
Niet open voor verdere reacties.
Steun Ons

Nieuwste berichten

Terug
Bovenaan Onderaan