Goede avond,


Ik zit met 2 dingen waar ik niet uit kom en hoop dat iemand mij kan helpen.
Ik maak gebruik van de mail functie en die ziet er zo uit

<?php
            $headers .= 'From:  ' . $firstname . ' <' . $emailaddress .'>' . " \r\n";
			$headers .= "MIME-Version: 1.0" . "\r\n";
			$headers .= "Content-type:text/html;charset=UTF-8" . "\r\n";
			$message = 'Voornaam: '.$firstname. '<br> Achternaam: '.$lastname.'<br> E-mailadres: '.$emailaddress;		
			$subject = "hier gaat het over";
			$to = "[email protected]";
			mail($to,$subject,$message,$headers);

?>


- Ik krijg het niet voor elkaar om zowel de naam als emailadres in de From header te stoppen.
- Ik krijg elke email 2x ik weet niet of dat te maken heeft met de fout in de From header?

De mail functie word geactiveerd d.m.v. een button
Vreemd, ik denk dat je hosting iets vaags draait, wat in de weg zit?

Probeer anders eens phpMailer.
- Ariën - op 28/09/2018 00:55:59
echo je $headers eens voor de grap.

Echo de output van je mail eens voor de gein inderdaad.

Yoeri Achterbergen op 28/09/2018 01:02:58
Heb een test gedaan en het blijkt dat het mis gaat met de < symbolen.

Sorry, maar als het hier al misgaat, zou je je dan moeten bezighouden met het handmatig bouwen van MIME-mail?

Als je bedoelt dat < informatie tussen punthaken > niet wordt weergegeven in een HTML-context dan is dat niet zo verwonderlijk? Maak een functie waarmee je data kunt dumpen en een die zich bedient van output escaping. Ook het niet veilig dumpen van data kan zorgen voor potentiële veiligheidslekken, bijvoorbeeld doordat je gewoon lappen JavaScript aan het uitdraaien en uitvoeren bent...

Om je toch wat op weg te helpen (maar dit is waarschijnlijk equivalent aan het uitdelen van handgranaat):
<?php
// voor output escaping in de HTML-context
function escape($in) {
    return htmlspecialchars($in, ENT_QUOTES, 'UTF-8');
}
// voor het veilig(er) dumpen van arbitraire data in de HTML-context
function dump($in) {
    if (is_array($in)) {
        $in = print_r($in, true);
    }
    echo '<pre>'.escape($in).'</pre>';
}
?>

En anders is het misschien inderdaad verstandiger om een library zoals phpMailer te gebruiken...

Reageren