De vraag is wat je daarna precies doet?
Het feit dat je in je query een \ voor de apostrof ziet is juist. Maar die zou je nooit in je output mogen zien.
Ook die \r\n zou je niet mogen zien.
Dus wat doe je nog meer? Ergens lijkt daar iets fout te gaan.
Link gekopieerd
Deze waarde worden in een html mail verstuurt. Daarbij gebruik ik dan '.$message.'.
Link gekopieerd
mysqli_real_escape_string gebruik je om data op te slaan in een database. Niet om mails te versturen.
Link gekopieerd
- Ariën -
19-01-2023 17:12
gewijzigd op 19-01-2023 17:12
Zoals ik zei: Vertel eens meer over wat je doet. Hoe meer regels met uitleg, code en context, hoe beter we kunnen helpen.
Link gekopieerd
Dit is wat ik heb aan code:
<?php
if(!empty($_POST['name']) && !empty($_POST['email'])){
$name = mysqli_real_escape_string($conn, $_POST['name']);
$email = mysqli_real_escape_string($conn, $_POST['email']);
$message = mysqli_real_escape_string($conn, $_POST['message']);
// Onderwerp van je bericht
$subject = 'Je aanvraag is goed ontvangen! Aanvraag: #'.$aanvraag_id.'';
// Een korte benaming voor jouw website
$website_naam = 'Het Sprekersburo';
// Jouw eigen geldige emailadres
$eigen_emailadres = '[email protected] ';
// Een geldig emailadres of helemaal leeg laten
$naam_verzender = $name;
// Het geldige emailadres van de afzender
$email_verzender = $email;
// Een geldig emailadres of helemaal leeg laten
$bcc_emailadres = '[email protected] ';
// Een geldig emailadres voor errors
$error_emailadres = '[email protected] ';
// TO
$to = '[email protected] ';
// De headers samenstellen
$headers = 'From: ' . $naam_verzender . ' <' . $email_verzender . '>' . "\r\n";
$headers .= 'Reply-To: ' . $naam_verzender . ' <' . $email_verzender . '>' . "\r\n";
$headers .= 'Return-Path: Mail-Error <' . $error_emailadres . '>' . "\r\n";
$headers .= 'Bcc: ' . $naam_verzender . ' <' . $email_verzender . '>' . "\r\n";
/*
$headers .= ($bcc_emailadres != '') ? 'Bcc: ' . $bcc_emailadres . PHP_EOL : ' . "\r\n";
*/
// To send HTML mail, the Content-type header must be set
$headers .= 'MIME-Version: 1.0' . "\r\n";
$headers .= "Content-type: text/html; charset=utf-8\r\n";
$headers .= "Content-Transfer-Encoding: 8bit\r\n";
$headers .= 'X-Priority: Normal' . "\r\n";
$body = '<!DOCTYPE html>
<html lang="en" xmlns="http://www.w3.org/1999/xhtml" xmlns:o="urn:schemas-microsoft-com:office:office">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width,initial-scale=1">
<meta name="x-apple-disable-message-reformatting">
<title></title>
<!--[if mso]>
<noscript>
<xml>
<o:OfficeDocumentSettings>
<o:PixelsPerInch>96</o:PixelsPerInch>
</o:OfficeDocumentSettings>
</xml>
</noscript>
<![endif]-->
<style>
table, td, div, h1, p, a {font-family: Tahoma, Verdana, Segoe, sans-serif; font-size: 14px;line-height: 22px; color: #000000;}
</style>
</head>
<body>
<p>Naam: '.$name.'<br />
E-mailadres: '.$email.'<br />
Bericht: '.$message.'</p>
</body>
</html>';
// Send email to Admin
@mail($to, $subject, $body, $headers);
?>
Link gekopieerd
Ivo P
19-01-2023 21:21
gewijzigd op 20-01-2023 09:33
in plaats van mysqli_real_escape_srring() had je htmlspecialchars() moeten gebruiken.
en je moet natuurlijk een controle inbouwen of het opgegeven emailadres wel iets bevat dat lijkt op een emailadres.
[size=xsmall]Toevoeging op 19/01/2023 21:25:12: [/size]
en het fromadres moet iets zijn dat bij jouw website hoort. Dat is de afzender. Replyto klopt wel.
[size=xsmall]Toevoeging op 20/01/2023 09:32:59: [/size]
bovenaan kun je gebruiken:
<?php
$name = filter_input(INPUT_POST, 'name');
$email = filter_input(INPUT_POST, 'email', FILTER_SANITIZE_EMAIL);
$message = filter_input(INPUT_POST, 'message');
?>
Daarmee weet je zeker dan $email alleen maar 1 mailadres bevat (of niets). En dat daar vooral niet 400 adressen om te spammen. en zeker geen extra emailheaders.
Een controle " if($email) " is op zijn plaats uiteraard, aangezien je anders geen mail kunt versturen.
Onderaan in je mailbericht moet je nog volgende aanpassen:
<?php
$body = '.....
<p>Naam: '. htmlspecialchars($name).'<br />
E-mailadres: '.htmlspecialchars($email).'<br />
Bericht: '. nl2br(htmlspecialchars($message)).'</p>
....';
?>
Link gekopieerd