Mail functie in php werkt niet
Het gaat over het versturen van een infoformulier.
Iedere keer ik het formulier invul staat er onderaan de website loading en er gebeurt niets.
De code in mijn contact.html is de volgende:
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
<form method="post" action="/php/contact.php" id="dotstheme-contact-form">
<div class="row">
<div class="col-sm-6">
<label for="naam">Naam</label>
<input type="text" name="naam" id="name" maxlength="80">
</div>
<div class="col-sm-6">
<label for="email">Email (<span class="required">*</span>)</label>
<input type="text" name="email" id="email" maxlength="80">
</div>
</div>
<label for="onderwerp">Onderwerp</label>
<input type="text" name="onderwerp" id="subject" maxlength="255">
<label for="bericht">Bericht (<span class="required">*</span>)</label>
<textarea name="bericht" id="message" rows="8"></textarea>
<input type="submit" name="submit" value="Verzend bericht">
<div class="data-status"></div> <!-- data submit status -->
<input type="hidden" name="v_error" id="v-error" value="Required" />
<input type="hidden" name="v_email" id="v-email" value="Enter a valid email" />
</form>
<div class="row">
<div class="col-sm-6">
<label for="naam">Naam</label>
<input type="text" name="naam" id="name" maxlength="80">
</div>
<div class="col-sm-6">
<label for="email">Email (<span class="required">*</span>)</label>
<input type="text" name="email" id="email" maxlength="80">
</div>
</div>
<label for="onderwerp">Onderwerp</label>
<input type="text" name="onderwerp" id="subject" maxlength="255">
<label for="bericht">Bericht (<span class="required">*</span>)</label>
<textarea name="bericht" id="message" rows="8"></textarea>
<input type="submit" name="submit" value="Verzend bericht">
<div class="data-status"></div> <!-- data submit status -->
<input type="hidden" name="v_error" id="v-error" value="Required" />
<input type="hidden" name="v_email" id="v-email" value="Enter a valid email" />
</form>
Mijn contatct.php bestand is het volgende:
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
<?php
// Information to be modified
$to_email = "mijn [email protected]"; // email address to which the form data will be sent
$subject = "Bericht via de website Domeinnaam website"; // subject of the email that is sent
$thanks_page = "contact.html"; // path to the thank you page following successful form submission
$contact_page = "contact.html"; // path to the HTML contact page where the form appears
$nam = strip_tags($_POST["naam"]);
$ema = strip_tags($_POST["email"]);
$pho = strip_tags($_POST["onderwerp"]);
$com = strip_tags($_POST["bericht"]);
$headers = 'MIME-Version: 1.0' . "\r\n";
$headers .= 'Content-type: text/html; charset=iso-8859-1' . "\r\n";
$headers .= 'From: <' .$ema. '>' . "\r\n";
$headers .= "Reply-To: ".$ema."\r\n";
$email_body =
"<strong>Van: </strong>" . $nam . "<br />
<strong>Email: </strong>" . $ema . "<br />
<strong>Onderwerp: </strong>" . $pho . "<br />
<strong>Bericht: </strong>" . $com;
// Assuming there's no error, send the email and redirect to Thank You page
if( mail($to_email, $subject, $email_body, $headers, '-f info@domeinnaam') ) {
$msg_array = array( 'status' => 'true', 'data' => 'Uw bericht werd verzonden!' );
echo json_encode($msg_array);
} else {
$msg_array = array( 'status' => 'true', 'data' => 'Uw bericht werd niet verzonden. Probeer later opnieuw.' );
echo json_encode($msg_array);
}
?>
// Information to be modified
$to_email = "mijn [email protected]"; // email address to which the form data will be sent
$subject = "Bericht via de website Domeinnaam website"; // subject of the email that is sent
$thanks_page = "contact.html"; // path to the thank you page following successful form submission
$contact_page = "contact.html"; // path to the HTML contact page where the form appears
$nam = strip_tags($_POST["naam"]);
$ema = strip_tags($_POST["email"]);
$pho = strip_tags($_POST["onderwerp"]);
$com = strip_tags($_POST["bericht"]);
$headers = 'MIME-Version: 1.0' . "\r\n";
$headers .= 'Content-type: text/html; charset=iso-8859-1' . "\r\n";
$headers .= 'From: <' .$ema. '>' . "\r\n";
$headers .= "Reply-To: ".$ema."\r\n";
$email_body =
"<strong>Van: </strong>" . $nam . "<br />
<strong>Email: </strong>" . $ema . "<br />
<strong>Onderwerp: </strong>" . $pho . "<br />
<strong>Bericht: </strong>" . $com;
// Assuming there's no error, send the email and redirect to Thank You page
if( mail($to_email, $subject, $email_body, $headers, '-f info@domeinnaam') ) {
$msg_array = array( 'status' => 'true', 'data' => 'Uw bericht werd verzonden!' );
echo json_encode($msg_array);
} else {
$msg_array = array( 'status' => 'true', 'data' => 'Uw bericht werd niet verzonden. Probeer later opnieuw.' );
echo json_encode($msg_array);
}
?>
Weet er iemand wat ik verkeerd doe of wat fout is.
Heb er al een hele tijd ziiten zoeken maar ik vind het maar niet.
Alvast heel erg bedankt
- Ariën -:
Gelieve in het vervolg bij code de [code][/code]-tags gebruiken.
Hier kan je meer lezen over de mogelijke opmaakcodes.
Alvast bedankt!
Hier kan je meer lezen over de mogelijke opmaakcodes.
Alvast bedankt!
Gewijzigd op 11/05/2017 18:29:58 door - Ariën -
Ik zou dan eerst eens kijken in de Network-tab van je browser, en kijk eens wat er gebeurt op /php/contact.php. Ik vermoed dat hier een fout zit, en dat het script daarop vastloopt.
Het zal dan bij de hosting liggen?
Kan ik dat zelf wijzigen? Ben nogal een leek in die dingen.
Is het script op zich goed?
Ik vermoed van wel maar ben nog maar een beginner in PHP en niet 100% zeker
Heel erg bedankt
En heb je al in de Network-tab gekeken van je browser, wat er gebeurt als je een bericht verstuurt?
Geef anders eens een link van je website.
Ik geraak er niet echt uit. Meestak werk ik in drupal en heb ik geen problemen. Maar nj krijg ik echt geen mail verzonden.
Bedankt voor de hulp
Ik zie het al: Je script roept process-contact.php aan, en die bestaat niet (404).
<form method="post" action="/php/contact.php.
Of is dit daar niet wat ik moet wijzigen?
Bedankt voor de hulp
Kijk eens naar je Javascript, of hernoem die php-file eens.
Echt raar, heb dit eigenlijk nog nooit voor had.
Hij roept nog steeds process-contact.php aan die niet bestaat. Dus hernoem je contact.php dus eventjes.
En upload het gewijzigde bestand :p.
mijn php bestand noemt process-contact.php en zit nu in root map van de site.
Mijn html bestand contact.html verwijst als volgt :
<form method="post" action="/process-contact.php" id="dotstheme-contact-form">
En toch blijft loading staan?
Maar ik zie nu wel het document binnen komen via mijn mail.
Toch super bedankt voor jullie reacties
Gewijzigd op 16/05/2017 17:44:48 door Vincent Fourni
Uiteindelijk is het toch gelukt.