Formmail - hurtig hjælp
HejJeg skal konvertere en formmail fra et windows-site (ASP) til et linux-site (PHP).
Jeg har kopieret det meste fra nogle supportsider hos udbyderen, men jeg har et problem.
Et par af felterne har mulighed for flere linier tekst, og alt hvad der bliver indtastet efter det første linieskift kommer ikke med i mailen.
Det har noget med funktionen sanitize at gøre, men da jeg ikke lige kan gennemskue hvad den gør kan jeg ikke fikse det.
Hvad skal der ændres for at hele teksten kommer med ? Og går ændringen ud over noget andet ?
Her er koden:
<?php
// Surftown formmail
// angiv modtagere af formmailen
// flere modtagere kan tilføjes som
// $modtagere[1] = "adresse@domain.dk"
// $modtagere[2] = "adresse2@domain.dk"
// osv.
$modtagere[0] = "";
//$modtagere[1] = "";
// succes og fejlsider
$succes = "succes.htm";
$fejl = "fejl.htm";
// standard tesktbokse er
// navn
// emailadresse
// emne
// besked
// disse skal være "name" på de forskellige tekstbokse på html-siden
// f.eks. <input type="text" name="navn"></input>
// lav liste over modtagere
$mail_modtagere = implode(",", $modtagere);
// klargør parametre
$navn = sanitize($_POST['navn']);
$emailadresse = "From: " . sanitize($_POST['emailadresse']);
$emne = "Besked fra " . $navn . ": " . sanitize($_POST['emne']);
$besked = $_POST['besked'];
// send mail
$mail_status = mail($mail_modtagere, $emne, $besked, $emailadresse);
if ($mail_status) {
header("Location: " . $succes);
} else {
header("Location: " . $fejl);
}
function sanitize($data) {
$safe_data = $data;
if ($pos = strpos($safe_data, "\n")) {
$safe_data = substr($safe_data, 0, $pos-1);
}
if ($pos = strpos($safe_data, "\r")) {
$safe_data = substr($safe_data, 0, $pos-1);
}
return $safe_data;
}
?>
