Probleem met een door php-formulier gegenereed e-mailbericht

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Kasia

Kasia

05/01/2007 15:41:00
Quote Anchor link
Ben een no-no met een probleem: de input van een simpel php-formulier hoort te worden gemaild in vorm van html. De ontvanger (met Outlook Express als e-mailclient) krijgt een compleet gesloopt html-bericht, waarbij volledige broncode wordt weergegeven. Ik heb al diverse php-kenners om hulp gevraagd, maar die zien niets vreemds in php zelf, dat schijnt in orde te zijn. Heb ook al getest met diverse e-mailclients en diverse e-mailadressen, sommige geven ene keurig tabelletje weer, zoals het hoort, andere weer niet. Iemand een idee hoe dit op te lossen? Het lijkt een combinatie van factoren, maar ik zie het gewoon niet!

Het formulier is te vinden op: http://www.hanslaurentius.nl/contact/reserveren.php
Ik plak hieronder de inhoud van een e-mailbericht en daaronder de php-code:

Content-type: text/html; charset=iso-8859-1
X-Spam-Checker-Version: SpamAssassin 3.0.6 (2005-12-07) on qball4.qball.nl
X-Spam-Level: *
X-Spam-Status: No, score=1.2 required=7.0 tests=AWL,HTML_MESSAGE,
MIME_HTML_ONLY,NO_RELAYS autolearn=no version=3.0.6
X-Antivirus: AVG for E-mail 7.5.432 [268.16.0/610]


<html>
<head>
<META http-equiv=Content-Type content='html; charset=iso-8859-1'>
<title>Reservering via website</title>
</head>
<body link='#000000' vlink='#000000' alink='#000000'>
<table width='400' border='0' cellspacing='2' cellpadding='2'>
<tr align='left' valign='top'>
<td bgcolor='#ffffff'><b>Verzenddatum</b></td>
<td bgcolor='#ffffff'>2007-01-03</td>
</tr>
<tr align='left' valign='top'>
<td bgcolor='#ffffff'><b>Geslacht</b></td>
<td bgcolor='#ffffff'>Mevrouw</td>
</tr>
<tr align='left' valign='top'>
<td bgcolor='#ffffff'><b>Naam</b></td>
<td bgcolor='#ffffff'>bla</td>
</tr>
<tr align='left' valign='top'>
<td bgcolor='#ffffff'><b>Adres</b></td>
<td bgcolor='#ffffff'>bla</td>
</tr>
<tr align='left' valign='top'>
<td bgcolor='#ffffff'><b>Postcode en woonplaats</b></td>
<td bgcolor='#ffffff'>bla</td>
</tr>
<tr align='left' valign='top'>
<td bgcolor='#ffffff'><b>Telefoonnummer</b></td>
<td bgcolor='#ffffff'>bla</td>
</tr>
<tr align='left' valign='top'>
<td bgcolor='#ffffff'><b>E-mail</b></td>
<td bgcolor='#ffffff'>bla</td>
</tr>
<tr align='left' valign='top'>
<td bgcolor='#ffffff'><b>Voorwaarden</b></td>
<td bgcolor='#ffffff'>Akkoord</td>
</tr><tr align='left' valign='top'>
<td bgcolor='#ffffff'><b>Soort bijeenkomst</b></td>
<td bgcolor='#ffffff'>bla</td>
</tr>
<tr align='left' valign='top'>
<td bgcolor='#ffffff'><b>Aantal deelnemers</b></td>
<td bgcolor='#ffffff'>2 personen</td>
</tr>
<tr align='left' valign='top'>
<td bgcolor=#ffffff><b>Vragen of opmerkingen</b></td>
<td bgcolor=#ffffff>geen</td>
</tr>
</table>
</body>
</html>

En nu de code:

Code (php)
PHP script in nieuw venster Selecteer het PHP script
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
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
<?php
// deze file wordt geinclude in reserveren.php dus niet er wordt niet naar deze file geredirect.

//Locatie van bevestigingspagina

header("Location: verstuurd.html");

//het E-Mail adres waar het heengestuurd moet worden
$emaillocatie = "bla";                

//informatie die van de verzender word opgevraagd
$ipaddress=$_SERVER['REMOTE_ADDR'];
$browser=$_SERVER['HTTP_USER_AGENT'];

//de E-Mail client vertellen dat het om html gaat
$header="From: ".$_POST['naam']." <".$_POST['email']." >\r\n";
$header .= "MIME-Version: 1.0\r\n";
$header .= "Content-type: text/html; charset=iso-8859-1\r\n";

//kleur van de eerste kolom
$Cc1="#ffffff";
$Cc2="#ffffff";

//de tabel

$inhoud="
<html>
<head>
<META http-equiv=Content-Type content='html; charset=iso-8859-1'>
<title>Reservering via website</title>
</head>
<body link='#000000' vlink='#000000' alink='#000000'>
<table width='400' border='0' cellspacing='2' cellpadding='2'>
<tr align='left' valign='top'>
    <td bgcolor='$Cc1'><b>Verzenddatum</b></td>
    <td bgcolor='$Cc2'>"
.date("Y-m-d")."</td>
</tr>
<tr align='left' valign='top'>
    <td bgcolor='$Cc1'><b>Geslacht</b></td>
    <td bgcolor='$Cc2'>"
.$_POST['geslacht']."</td>
</tr>
<tr align='left' valign='top'>
    <td bgcolor='$Cc1'><b>Naam</b></td>
    <td bgcolor='$Cc2'>"
.$_POST['naam']."</td>
</tr>
<tr align='left' valign='top'>
    <td bgcolor='$Cc1'><b>Adres</b></td>
    <td bgcolor='$Cc2'>"
.$_POST['adres']."</td>
</tr>
<tr align='left' valign='top'>
    <td bgcolor='$Cc1'><b>Postcode en woonplaats</b></td>
    <td bgcolor='$Cc2'>"
.$_POST['plaats']."</td>
</tr>
<tr align='left' valign='top'>
    <td bgcolor='$Cc1'><b>Telefoonnummer</b></td>
    <td bgcolor='$Cc2'>"
.$_POST['telefoon']."</td>
</tr>
<tr align='left' valign='top'>
    <td bgcolor='$Cc1'><b>E-mail</b></td>
    <td bgcolor='$Cc2'>"
.$_POST['email']."</td>
</tr>
<tr align='left' valign='top'>
    <td bgcolor='$Cc1'><b>Voorwaarden</b></td>
    <td bgcolor='$Cc2'>Akkoord</td>
</tr>"
;


foreach ($ar1 as $rij) {
   $inhoud.=
   "<tr align='left' valign='top'>
       <td bgcolor='$Cc1'><b>Soort bijeenkomst</b></td>
       <td bgcolor='$Cc2'>$rij[0]</td>
   </tr>
   <tr align='left' valign='top'>
       <td bgcolor='$Cc1'><b>Aantal deelnemers</b></td>
       <td bgcolor='$Cc2'>$rij[1]</td>
   </tr>"
;
}


$inhoud.="
<tr align='left' valign='top'>
    <td bgcolor=$Cc1><b>Vragen of opmerkingen</b></td>
    <td bgcolor=$Cc2>"
.$_POST['opmerking']."</td>
</tr>
</table>
</body>
</html>
"
;

//hier word het mailtje verzonden
mail("$emaillocatie","Reservering via website","$inhoud","$header");

/* echo $header;
echo "<br><br>";
echo $inhoud;  
*/

//beeindig sessie:

session_destroy();
?>
 
PHP hulp

PHP hulp

22/11/2024 07:18:17
 
Martijn Wieringa

Martijn Wieringa

05/01/2007 15:57:00
Quote Anchor link
Ik heb het zelfde probleem gehad..
Het probleem zit um in de \r\n.

Deze moet je vervangen voor enkel '\n',

Note: sommige mail-verwerkings-programma's zien \r\n (1 enter) als \n\n (2 enters),
en een lege regel in je header, wordt gezien als het eindpunt van je header!


Ps:
De regel "From: " . $_POST['naam'] . " <" . $_POST['email'] . ">" baart me veel zorgen

Controleer of de quotes en enters bij de userinput goed worden afgevangen, om spampogingen te voorkomen. Zie ook:

http://www.phphulp.nl/php/tutorials/10/340/
Gewijzigd op 01/01/1970 01:00:00 door Martijn Wieringa
 
Kasia

Kasia

05/01/2007 18:22:00
Quote Anchor link
Thanx, Pholeron! Het lijkt erop dat het inderdaad de oplossing van het probleem is. Ik ga nog even uitvoerig testen en zeker de tutorial lezen... Spam moet ik niet hebben, bedankt voor opmerkzaamheid.
K.
 



Overzicht Reageren

 
 

Om de gebruiksvriendelijkheid van onze website en diensten te optimaliseren maken wij gebruik van cookies. Deze cookies gebruiken wij voor functionaliteiten, analytische gegevens en marketing doeleinden. U vindt meer informatie in onze privacy statement.