Hoe ook al weer email form html website werkend krijgen?

Status
Niet open voor verdere reacties.
Waarom is je action nu weer aangepast?

Code:
<form id="contactform" method="post" action="/contact" enctype="multipart/form-data" role="form">

Niet verwonderlijk dat je geen mail krijgt. Het script wordt niet eens aangeroepen.
 
Laatst bewerkt:
die heb ik niet aangepast, die heb ik zo overgenomen.

contacatformulier in de index.php
PHP:
</div>
               <div class="col-lg-6 mb-5">
                <h3 class="tm-text-green tm-font-400">Contact ons</h3>
                <form id="contactform" method="post" action="/contact" enctype="multipart/form-data" role="form">
                 <form action="mailer.php" method="post" class="tm-contact-form">
                <div class="form-group row">
				<label class="col-md-3 col-xl-2 col-form-label" for="name">
				    Naam
				</label>
				<div class="col-md-9 col-xl-10">
				    <input id="name" name="name" type="text" class="form-control" placeholder="Uw naam...">
				</div>
			    </div>
			    <div class="form-group row">
				<label class="col-md-3 col-xl-2 col-form-label" for="email">
				    E-mail adres
				</label>
				<div class="col-md-9 col-xl-10">
				    <input id="email" name="email" type="text" class="form-control" placeholder="Uw e-mail adres">
				</div>
			    </div>
			    <div class="form-group row">
				<label class="col-md-3 col-xl-2 col-form-label" for="email">
				</div> 
                <div class="form-group row">
				<label class="col-md-3 col-xl-2 col-form-label" for="message">
				    Uw bericht
				</label>
				<div class="col-md-9 col-xl-10">
				    <textarea id="message" name="message" class="form-control" rows="6" placeholder="Uw bericht...."></textarea>
				</div>
			    </div>
			    <div class="clearfix">
				<div class="float-right">
				    <button type="submit" class="btn btn-primary g-recaptcha" data-sitekey="xxxxxx" data-callback='onSubmit' data-action='submit'>Verstuur</button>
				</div>
			    </div>
			</form>
 
Waarvandaan overgenomen? :confused:
Gisteren verwees het nog wel naar je mail-script.

Als je iets overneemt, controleer of het klopt.
Elk script werkt anders, en je kan niet zomaar alles kopiëren en plakken en hopen dat het werkt.

Je kan het vergelijken met een automotor van een Mazda, die kan je ook niet zomaar in een Renault auto plaatsen, ook dan moet je een hoop boutjes, moeren en techniek aanpassen.
 
uit post #11, van jou.

overigens begrijp ik dat nu het script mailer.php heet (zie de eerste berichten) ik dus
Code:
                <form id="contactform" method="post" action="/contact" enctype="multipart/form-data" role="form">
action="/contact" moet veranderen in mailer.

Dat heb ik nu gedaan en ik krijg geen mail binnen.
Had dat niet gemoeten dan zet ik het weer terug.
 
Het is echt logisch nadenken, en niet zomaar rücksichtslos aannames doen. ;)
Action is het bestand of pad dat naar het afhandelende script verwijst.
In dit geval is dat dus mailer.php

Als je dat gedaan hebt, dan zie je dat de URLbalk naar mailer.php verwijst, en dan wordt het mailscript uitgevoerd.
Krijg je geen mail binnen, zet de debug dan aan.
 
$mail->SMTPDebug = 2; // Debugging voor SMTP. 0 = uit, of 1,2 of 3 voor hogere debugging. 2 is gangbaar bij testen.

geen mail, geen error te lezen, pagina gaat naar example.nl/mailer
 
Laatst bewerkt door een moderator:
geen mail, geen error te lezen, pagina gaat naar example.nl/mailer

>>
https://www.example.nl/mailer
404

Ik zei net nog mailer.php

Als je een witte pagina ziet, met in de URLbalk mailer.php, dan zit je goed.
Zie je staan dat de mail verzonden is, dan zit je helemaal goed.
Zie je een lege witte pagina als je het formulier verstuurt, dan is je mail-script stuk.

Dus zorg er voor dat je script wordt aangeroepen vanuit de action.
Wat gebeurt er precies met de debug aan?
Wees a.u.b. zo gedetailleerd mogelijk.
 
Laatst bewerkt door een moderator:
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.
Omdat we post #100 gepasseerd zijn en femke nu (denk ik) aan het dwalen is leek het mij handig om een complete oplossing te posten. Soms werkt iets sneller door het voorgaande even apart te zetten en dan de basis (formulier, phpmailer, recaptcha) goed neer te zetten. Daarna kan het naar de 1-page pagina van femke worden gekopieerd.
 
>>
https://www.example.nl/mailer
404

Ik zei net nog mailer.php

Als je een witte pagina ziet, met in de URLbalk mailer.php, dan zit je goed.
Zie je staan dat de mail verzonden is, dan zit je helemaal goed.
Zie je een lege witte pagina als je het formulier verstuurt, dan is je mail-script stuk.

Dus zorg er voor dat je script wordt aangeroepen vanuit de action.
Wat gebeurt er precies met de debug aan?
Wees a.u.b. zo gedetailleerd mogelijk.

sorry, de link is test.example.nl/mailer

dat is wat ik te zien krijg als ik een mail verstuur.
Mijn fout van de link.

Edit: de witte pagina die ik nu krijg is met mailer.php erachter
En geen mail in mijn mailbox en geen error of wat dan ook
 
Laatst bewerkt door een moderator:
Je verwijst nu naar /mailer.php i.p.v. mailer.php

Dus je kijkt een map hogerop of mailer.php daarin staat?
Lijkt mij niet de bedoeling.

Als ik in je HTML kijk heb je nu opeens twee forms?
Code:
<form id="contact-form" method="post" action="/mailer.php" enctype="multipart/form-data" role="form">
<form action="mailer.php" method="post" class="tm-contact-form">
 
Laatst bewerkt:
dat had ik zelf ook gezien!
Dus eentje eruit gehaald (de originele is regels 2).

Je verwijst nu naar /mailer.php i.p.v. mailer.php

Dus je kijkt een map hogerop of mailer.php daarin staat?
Lijkt mij niet de bedoeling
verrek, inderdaad. Dat snap ik nog.
Maar hoe kan dat?
De map staat toch keurig bij index.php
zie elders screenshot
 
Geen idee hoe dat kan, ik heb geen inzicht in wat je allemaal precies aan het doen bent, eerlijk gezegd.
Je doet blijkbaar dingen die hier niet genoemd worden, en dat vind ik best storend aan het worden want zo kan ik echt lastig helpen.

- In je form-tag moet je een id="contactform" hebben staan
- Linken in je action naar mailer.php (zonder slash ervoor, en mét .php)

Als ik dit hier lokaal aanpas, dan kom ik netjes uit op mailer.php

Waarom ik daar dan een lege pagina krijg, begrijp ik ook niet.
Dus zet je debug eens aan! Ook je error reporting etc.

Ik vermoed dat je door het verhuizen van je mailer.php script naar een andere map niet het juiste pad naar phpmailer hebt.

Advies: ga niet tijdens het ontwikkelen alles steeds verhuizen. Zorg eerst dat het werkt, en ga dan verhuizen en de boel bijstellen.
 
Laatst bewerkt:
- In je form-tag moet je een id="contactform" hebben staan
- Linken in je action naar mailer.php (zonder slash ervoor, en mét .php)

Als ik dit hier lokaal aanpas, dan kom ik netjes uit op mailer.php

Waarom ik daar dan een lege pagina krijg, begrijp ik ook niet.

Dus zet je debug eens aan! Ook je error reporting etc.

Ik vermoed dat je door het verhuizen van je mailer.php script naar een andere map niet het juiste pad naar phpmailer hebt.

Advies: ga niet tijdens het ontwikkelen alles steeds verhuizen. Zorg eerst dat het werkt, en ga dan verhuizen en de boel bijstellen.

1. Debug staat aan! error report ook. // Foutafhandeling van PHP aanzetten. In productie deze onderste twee lijnen commentariseren met een // ervoor.
error_reporting(E_ALL);
ini_set('display_errors', 1);

2. <form id="contactform" method="post" action="mailer.php" enctype="multipart/form-data" role="form">

3. ik kom ook uit op mailer.php (zonder error witte pagina) maar nog wel op deze link https://test.example.nl/mailer.php

4. heb de map mailer.php NIET verhuist!
 
Laatst bewerkt door een moderator:
Wat is nu je voorbeeld-link? Want ik zie nog steeds twee form-tags boven elkaar staan waardoor de boel niet werkt.
En wat staat er nu in je mailer.php? Ik neem aan dat je mailer.php niet handmatig aanroept, en enkel via het formulier?
 
Laatst bewerkt:
Wat is nu je voorbeeld-link? Want ik zie nog steeds twee form-tags boven elkaar staan waardoor de boel niet werkt.
nee hoor, eentje is weg.
degene die er staat is:
Code:
  <form id="contactform" method="post" action="mailer.php" enctype="multipart/form-data" role="form">

ik zit net te kijken op internet (ik lees heus wel over zaken over php en zo) en kwam een topic tegen op het forum waar je beheerder bent. Diegene heeft hetzelfde, ook een witte pagina zonder errors.
en nee, mail komt niet in de spam box.
 
Dan is er *iets* fout in het script.
Check je error_log, of zet je error_reporting en display_errors aan als dat nog niet zo is.

Even voor de duidelijkheid: mailer.php kan je alleen aanroepen via het formulier. Als je dit handmatig aanroept, krijg je altijd een witte pagina, en dat hoort.
(je kan altijd nog een else-statement erbij bouwen met een leuke tekst, maar goed, net wat je wilt)
 
Laatst bewerkt:
Even voor de duidelijker. mailer.php kan je alleen aanroepen via het formulier. Als je dit handmatig aanroept, krijg je altijd een witte pagina.
ik vul het formulier in, ik klik op verzenden, en dan krijg ik een witte lege pagina met de url: ..............nl/mailer.php

error reporting staat aan.
error_reporting(E_ALL);
ini_set('display_errors', 1);
ini_set('log_errors', 1);
 
Dan ben ik benieuwd wat er mis is...
Ik zie in de debuggingtools van mijn browser dat die een 500 terug krijgt. En dat is dus een fout in het script.


Laat het script eens zien.
 
Laatst bewerkt:
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);
ini_set('log_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") {
  $response = $_POST["g-recaptcha-response"];
    $url = 'https://www.google.com/recaptcha/api/siteverify';
    $data = array(
    'secret' => 'keyxxxxx',
    '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
    }
}
    //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.provider.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 = 'test@example.nl'; // emailadres of emailnaam of emailcode ofzo
    $mail->Password = 'wachtwoord';
 
    // E-mail instellingen
    $mail->setFrom('test@example.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("test@example.nl" ,"Naam van 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';  
    }
 
}
?>
 
Laatst bewerkt door een moderator:
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan