met mail() een html pagina versturen
ik heb onlangs een mailing programma gemaakt dat bepaalde gegevens uit een MySQL bestand haalt en verstuurt naar bepaalde mensen en naar mezelf ter controle.
Nu zie ik dat hij meerdere lijnen alles goed verwerkt en dan plots laat hij een veld inhoud vallen of plaatst hij tekens zoals "<" of "<a" of " ' " enz in een veld samen met de goede inhoud. De volgende lijnen zijn dan weer volledig correct verwerkt.
Ik heb in de database gekeken of daar ergens iets niet goed ingevuld zou zijn, maar daar is alles ok.
In het programma lijkt ook alles ok. Want hij gebruikt steeds dezelfde script om de lijnen aan te maken en de ene keer gaat alles goed en daarna zijn er bepaalde afdrukken verkeerd.
Iemand een idee waar ik moet op letten of wat een programma kan verstoren?
Met vriendelijke groeten,
Marc
Gewijzigd op 22/12/2005 18:27:00 door Marc
kan je ff kijken naar Textarea
maar wij hebben geen script dus we kunnen ook niet zo veel.
htmlspecialchars() gebruiken.
@han
Hieronder het script
------------------------------------------------------------
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
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
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
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
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
<?php
$dag = date('d')-1;
$mnd = date('m');
$jr = date('Y');
$datum = $jr.'-'.$mnd.'-'.$dag.' 00:00:00';
$dag = date('d');
$server = "localhost";
$user = "";
$pass = "";
$database = "dossier";
/* connectie naar mysql */
$dbh = mysql_connect($server,$user,$pass);
/* connectie met de database */
mysql_select_db($database,$dbh) or die('Database niet beschikbaar '.mysql_error());
$requete_sql = "select * from bestand where datum > '".$datum."'";
/* het resultaat opbouwen */
$query_result = mysql_query($requete_sql,$dbh);
/* vind ie iets? */
if (mysql_num_rows($query_result) > 0)
{
echo "ter is iets gevonden<br>";
$requete_sql = "select email,baas from leden where naam <> '' order by naam";
/* het resultaat opbouwen */
$query_result = mysql_query($requete_sql,$dbh);
/* vind ie iets? */
if (mysql_num_rows($query_result) > 0)
{
/* en nu echot ie de info in de db die bij die rij hoort die gekozen is */
while($row = mysql_fetch_array($query_result))
{
$bs = $row["baas"];
$email = $row["email"];
$to = $email.",";
}
}
$subject = "Mail van $dag - $mnd - $jr";
$message = '
<html>
<head>
<title>Mail van $dag - $mnd - $jr </title>
</head>
<body bgcolor="#FFFFCC">
<p><img src="logo.gif" border="0" width="70" height="70"> <span></span><b><font color="green"><font style="font-size: 100pt">M</font><font size="4">ijn </font><font style="font-size: 100pt">E</font><font size="4">eigen </font><font style="font-size: 100pt">S</font><font size="4">ervice </font><font style="font-size: 100pt">S</font><font size="4">ite ®</font></font></b><marquee direction="up" scrollAmount="1" style="width:\'180\';height:\'90\'">
<center><font color="green" size="2"><blink>Mijn Eigen Service Site</blink> <font color="black">wenst u <blink>fijne eindejaarsfeesten</blink> <font color="red">en een <blink>voorspoedig Nieuwjaar</blink> toe</font></center>
</marquee>
</p>
<p>Voor verdere informatie kom naar onze <a href="mijn site" TARGET="_blank">site</a></p>
<table border=1>
<tr>
<th><font size=2>omschrijving</font></th><th><font size=2>Extra info</font></th><th><font size=2>model</font></th><th><font size=2>formaat</font></th><th><font size=2>Hoogte</font></th><th><font size=2>Breedte</font></th><th><font size=2>stuks</font></th><th><font size=2>verpakt</font></th><th><font size=2>€/stuk</font></th><th><font size=2>€/palet</font></th><th><font size=2>Quantum</font></th><th><font size=2>€/Quantum</font></th><th><font size=2>Leverancier</font></th>
</tr>
<tr>';
$requete_sql = "select bestand.datum,bestand.groep,bestand.kleur,bestand.stuks,bestand.verpakt,bestand.pic,bestand.quantum,bestand.prquant,bestand.lev,bestand.lot,bestand.cod,bestand.naam,bestand.sleutel,bestand.formaat,bestand.extra,bestand.hoogte,bestand.vorm,bestand.breedte,bestand.pr,bestand.prstuk,modelle.nederlands,modelle.frans,modelle.engels,modelle.row_id from bestand as bestand, modelle as modelle where bestand.datum >'".$datum."' and modelle.row_id = bestand.vorm order by lev,groep,formaat,hoogte,breedte,pr";
/* het resultaat opbouwen */
$query_result = mysql_query($requete_sql,$dbh);
/* vind ie iets? */
if (mysql_num_rows($query_result) > 0)
{
while($row = mysql_fetch_array($query_result))
{
$lev = $row["lev"];
$lot = $row["lot"];
$cod = $row["cod"];
$naam = $row["naam"];
$sleutel = $row["sleutel"];
$extra = $row["extra"];
$formaat = $row["formaat"];
$hoogte = $row["hoogte"];
$breedte = $row["breedte"];
$vorm = $row["vorm"];
$pr = $row["pr"];
$prstuk = $row["prstuk"];
$quantum = $row["quantum"];
$prquant = $row["prquant"];
$stuks = $row["stuks"];
$verpakt = $row["verpakt"];
$nl = $row["nederlands"];
$fr = $row["frans"];
$en = $row["engels"];
$pic = $row["pic"];
$pict = "min site/uploads/f".$row["kod"].".jpg";
$kleur = $row["kleur"];
$groep = $row["groep"];
if (substr($groep,1,1) <> "1")
{
if ($kleur > "0")
{
switch ($s05)
{
case "1" :
$nl = "<font color='green'><B>groen - </B></font>".$nl." || <font color='green'><B>vert - </B></font>".$fr." || <font color='green'><B>green - </B></font>".$en;
break;
case "2" :
$nl = "<font color='purple'><B>purper - </B></font>".$nl." || <font color='purple'><B>pourpre - </B></font>".$fr." || <font color='purple'><B>purple - </B></font>".$en;
break;
case "3" :
$nl = "<font color='red'><B>rood - </B></font>".$nl." || <font color='red'><B>rouge - </B></font>".$fr." || <font color='red'><B>red - </B></font>".$en;
break;
case "4" :
$nl = "<font color='blue'><B>blauw - </B></font>".$nl." || <font color='blue'><B>bleu - </B></font>".$fr." || <font color='blue'><B>blue - </B></font>".$en;
break;
case "5" :
$nl = "wit - ".$nl." || blanc - ".$fr." || white - ".$en;
break;
}
}
else
{
$nl = $nl." - ".$fr." - ".$en;
}
}
if ($pic === "X")
{
$message .= '<TD ALIGN=LEFT><B><font size=2><a href='.$pict.' TARGET="_blank">'.$naam.'</a></B></TD>';
$message .= '<TD ALIGN=RIGHT><B><font size=2><a href='.$pict.' TARGET="_blank">'.$extra.'</a></B></TD>';
$message .= '<TD ALIGN=LEFT><B><font size=2><a href='.$pict.' TARGET="_blank">'.$nl.'</a></B></TD>';
$message .= '<TD ALIGN=RIGHT><B><font size=2><a href='.$pict.' TARGET="_blank">'.$formaat.'</a></B></TD>';
$message .= '<TD ALIGN=RIGHT><B><font size=2><a href='.$pict.' TARGET="_blank">'.$hoogte.'</a></B></TD>';
$message .= '<TD ALIGN=RIGHT><B><font size=2><a href='.$pict.' TARGET="_blank">'.$breedte.'</a></B></TD>';
$message .= '<TD ALIGN=RIGHT><B><font size=2><a href='.$pict.' TARGET="_blank">'.$stuks.'</a></B></TD>';
$message .= '<TD ALIGN=RIGHT><B><font size=2><a href='.$pict.' TARGET="_blank">'.$verpakt.'</a></B></TD>';
$message .= '<TD ALIGN=RIGHT><B><font size=2><a href='.$pict.' TARGET="_blank">'.$prstuk.'</a></B></TD>';
$message .= '<TD ALIGN=RIGHT><B><font size=2><a href='.$pict.' TARGET="_blank">'.$pr.'</a></B></TD>';
$message .= '<TD ALIGN=RIGHT><B><font size=2><a href='.$pict.' TARGET="_blank">'.$quantum.' CC</a></B></TD>';
$message .= '<TD ALIGN=RIGHT><B><font size=2><a href='.$pict.' TARGET="_blank">'.$prquant.'</a></B></TD>';
$message .= '<TD ALIGN=RIGHT><B><font size=2><a href='.$pict.' TARGET="_blank">'.$lev.'</a></B></TD></tr>';
}
else
{
$message .= '<TD ALIGN=LEFT><B><font size=2>'.$naam.'</font></B></TD>';
$message .= '<TD ALIGN=RIGHT><B><font size=2>'.$extra.'</font></B></TD>';
$message .= '<TD ALIGN=LEFT><B><font size=2>'.$nl.'</font></B></TD>';
$message .= '<TD ALIGN=RIGHT><B><font size=2>'.$formaat.'</font></B></TD>';
$message .= '<TD ALIGN=RIGHT><B><font size=2>'.$hoogte.'</font></B></TD>';
$message .= '<TD ALIGN=RIGHT><B><font size=2>'.$breedte.'</font></B></TD>';
$message .= '<TD ALIGN=RIGHT><B><font size=2>'.$stuks.'</font></B></TD>';
$message .= '<TD ALIGN=RIGHT><B><font size=2>'.$verpakt.'</font></B></TD>';
$message .= '<TD ALIGN=RIGHT><B><font size=2>'.$prstuk.'</font></b></TD>';
$message .= '<TD ALIGN=RIGHT><B><font size=2>'.$pr.'</font></B></TD>';
$message .= '<TD ALIGN=RIGHT><B><font size=2>'.$quantum.' CC</font></B></TD>';
$message .= '<TD ALIGN=RIGHT><B><font size=2>'.$prquant.'</font></B></TD>';
$message .= '<TD ALIGN=RIGHT><B><font size=2>'.$lev.'</font></B></TD></tr>';
}
}
}
$message .= '
</table>
</body>
</html>
';
$headers = "MIME-Version: 1.0\r\n";
$headers = "Content-type: text/html; charset=iso-8859-1\r\n";
mail($to,$subject,$message,$headers);
echo "De updates zijn verzonden";
}
else
{
echo "Er waren geen updates te versturen";
}
?>
$dag = date('d')-1;
$mnd = date('m');
$jr = date('Y');
$datum = $jr.'-'.$mnd.'-'.$dag.' 00:00:00';
$dag = date('d');
$server = "localhost";
$user = "";
$pass = "";
$database = "dossier";
/* connectie naar mysql */
$dbh = mysql_connect($server,$user,$pass);
/* connectie met de database */
mysql_select_db($database,$dbh) or die('Database niet beschikbaar '.mysql_error());
$requete_sql = "select * from bestand where datum > '".$datum."'";
/* het resultaat opbouwen */
$query_result = mysql_query($requete_sql,$dbh);
/* vind ie iets? */
if (mysql_num_rows($query_result) > 0)
{
echo "ter is iets gevonden<br>";
$requete_sql = "select email,baas from leden where naam <> '' order by naam";
/* het resultaat opbouwen */
$query_result = mysql_query($requete_sql,$dbh);
/* vind ie iets? */
if (mysql_num_rows($query_result) > 0)
{
/* en nu echot ie de info in de db die bij die rij hoort die gekozen is */
while($row = mysql_fetch_array($query_result))
{
$bs = $row["baas"];
$email = $row["email"];
$to = $email.",";
}
}
$subject = "Mail van $dag - $mnd - $jr";
$message = '
<html>
<head>
<title>Mail van $dag - $mnd - $jr </title>
</head>
<body bgcolor="#FFFFCC">
<p><img src="logo.gif" border="0" width="70" height="70"> <span></span><b><font color="green"><font style="font-size: 100pt">M</font><font size="4">ijn </font><font style="font-size: 100pt">E</font><font size="4">eigen </font><font style="font-size: 100pt">S</font><font size="4">ervice </font><font style="font-size: 100pt">S</font><font size="4">ite ®</font></font></b><marquee direction="up" scrollAmount="1" style="width:\'180\';height:\'90\'">
<center><font color="green" size="2"><blink>Mijn Eigen Service Site</blink> <font color="black">wenst u <blink>fijne eindejaarsfeesten</blink> <font color="red">en een <blink>voorspoedig Nieuwjaar</blink> toe</font></center>
</marquee>
</p>
<p>Voor verdere informatie kom naar onze <a href="mijn site" TARGET="_blank">site</a></p>
<table border=1>
<tr>
<th><font size=2>omschrijving</font></th><th><font size=2>Extra info</font></th><th><font size=2>model</font></th><th><font size=2>formaat</font></th><th><font size=2>Hoogte</font></th><th><font size=2>Breedte</font></th><th><font size=2>stuks</font></th><th><font size=2>verpakt</font></th><th><font size=2>€/stuk</font></th><th><font size=2>€/palet</font></th><th><font size=2>Quantum</font></th><th><font size=2>€/Quantum</font></th><th><font size=2>Leverancier</font></th>
</tr>
<tr>';
$requete_sql = "select bestand.datum,bestand.groep,bestand.kleur,bestand.stuks,bestand.verpakt,bestand.pic,bestand.quantum,bestand.prquant,bestand.lev,bestand.lot,bestand.cod,bestand.naam,bestand.sleutel,bestand.formaat,bestand.extra,bestand.hoogte,bestand.vorm,bestand.breedte,bestand.pr,bestand.prstuk,modelle.nederlands,modelle.frans,modelle.engels,modelle.row_id from bestand as bestand, modelle as modelle where bestand.datum >'".$datum."' and modelle.row_id = bestand.vorm order by lev,groep,formaat,hoogte,breedte,pr";
/* het resultaat opbouwen */
$query_result = mysql_query($requete_sql,$dbh);
/* vind ie iets? */
if (mysql_num_rows($query_result) > 0)
{
while($row = mysql_fetch_array($query_result))
{
$lev = $row["lev"];
$lot = $row["lot"];
$cod = $row["cod"];
$naam = $row["naam"];
$sleutel = $row["sleutel"];
$extra = $row["extra"];
$formaat = $row["formaat"];
$hoogte = $row["hoogte"];
$breedte = $row["breedte"];
$vorm = $row["vorm"];
$pr = $row["pr"];
$prstuk = $row["prstuk"];
$quantum = $row["quantum"];
$prquant = $row["prquant"];
$stuks = $row["stuks"];
$verpakt = $row["verpakt"];
$nl = $row["nederlands"];
$fr = $row["frans"];
$en = $row["engels"];
$pic = $row["pic"];
$pict = "min site/uploads/f".$row["kod"].".jpg";
$kleur = $row["kleur"];
$groep = $row["groep"];
if (substr($groep,1,1) <> "1")
{
if ($kleur > "0")
{
switch ($s05)
{
case "1" :
$nl = "<font color='green'><B>groen - </B></font>".$nl." || <font color='green'><B>vert - </B></font>".$fr." || <font color='green'><B>green - </B></font>".$en;
break;
case "2" :
$nl = "<font color='purple'><B>purper - </B></font>".$nl." || <font color='purple'><B>pourpre - </B></font>".$fr." || <font color='purple'><B>purple - </B></font>".$en;
break;
case "3" :
$nl = "<font color='red'><B>rood - </B></font>".$nl." || <font color='red'><B>rouge - </B></font>".$fr." || <font color='red'><B>red - </B></font>".$en;
break;
case "4" :
$nl = "<font color='blue'><B>blauw - </B></font>".$nl." || <font color='blue'><B>bleu - </B></font>".$fr." || <font color='blue'><B>blue - </B></font>".$en;
break;
case "5" :
$nl = "wit - ".$nl." || blanc - ".$fr." || white - ".$en;
break;
}
}
else
{
$nl = $nl." - ".$fr." - ".$en;
}
}
if ($pic === "X")
{
$message .= '<TD ALIGN=LEFT><B><font size=2><a href='.$pict.' TARGET="_blank">'.$naam.'</a></B></TD>';
$message .= '<TD ALIGN=RIGHT><B><font size=2><a href='.$pict.' TARGET="_blank">'.$extra.'</a></B></TD>';
$message .= '<TD ALIGN=LEFT><B><font size=2><a href='.$pict.' TARGET="_blank">'.$nl.'</a></B></TD>';
$message .= '<TD ALIGN=RIGHT><B><font size=2><a href='.$pict.' TARGET="_blank">'.$formaat.'</a></B></TD>';
$message .= '<TD ALIGN=RIGHT><B><font size=2><a href='.$pict.' TARGET="_blank">'.$hoogte.'</a></B></TD>';
$message .= '<TD ALIGN=RIGHT><B><font size=2><a href='.$pict.' TARGET="_blank">'.$breedte.'</a></B></TD>';
$message .= '<TD ALIGN=RIGHT><B><font size=2><a href='.$pict.' TARGET="_blank">'.$stuks.'</a></B></TD>';
$message .= '<TD ALIGN=RIGHT><B><font size=2><a href='.$pict.' TARGET="_blank">'.$verpakt.'</a></B></TD>';
$message .= '<TD ALIGN=RIGHT><B><font size=2><a href='.$pict.' TARGET="_blank">'.$prstuk.'</a></B></TD>';
$message .= '<TD ALIGN=RIGHT><B><font size=2><a href='.$pict.' TARGET="_blank">'.$pr.'</a></B></TD>';
$message .= '<TD ALIGN=RIGHT><B><font size=2><a href='.$pict.' TARGET="_blank">'.$quantum.' CC</a></B></TD>';
$message .= '<TD ALIGN=RIGHT><B><font size=2><a href='.$pict.' TARGET="_blank">'.$prquant.'</a></B></TD>';
$message .= '<TD ALIGN=RIGHT><B><font size=2><a href='.$pict.' TARGET="_blank">'.$lev.'</a></B></TD></tr>';
}
else
{
$message .= '<TD ALIGN=LEFT><B><font size=2>'.$naam.'</font></B></TD>';
$message .= '<TD ALIGN=RIGHT><B><font size=2>'.$extra.'</font></B></TD>';
$message .= '<TD ALIGN=LEFT><B><font size=2>'.$nl.'</font></B></TD>';
$message .= '<TD ALIGN=RIGHT><B><font size=2>'.$formaat.'</font></B></TD>';
$message .= '<TD ALIGN=RIGHT><B><font size=2>'.$hoogte.'</font></B></TD>';
$message .= '<TD ALIGN=RIGHT><B><font size=2>'.$breedte.'</font></B></TD>';
$message .= '<TD ALIGN=RIGHT><B><font size=2>'.$stuks.'</font></B></TD>';
$message .= '<TD ALIGN=RIGHT><B><font size=2>'.$verpakt.'</font></B></TD>';
$message .= '<TD ALIGN=RIGHT><B><font size=2>'.$prstuk.'</font></b></TD>';
$message .= '<TD ALIGN=RIGHT><B><font size=2>'.$pr.'</font></B></TD>';
$message .= '<TD ALIGN=RIGHT><B><font size=2>'.$quantum.' CC</font></B></TD>';
$message .= '<TD ALIGN=RIGHT><B><font size=2>'.$prquant.'</font></B></TD>';
$message .= '<TD ALIGN=RIGHT><B><font size=2>'.$lev.'</font></B></TD></tr>';
}
}
}
$message .= '
</table>
</body>
</html>
';
$headers = "MIME-Version: 1.0\r\n";
$headers = "Content-type: text/html; charset=iso-8859-1\r\n";
mail($to,$subject,$message,$headers);
echo "De updates zijn verzonden";
}
else
{
echo "Er waren geen updates te versturen";
}
?>
------------------------------------------------------------
Tot binnen kort?
Met vriendelijke groeten,
Marc
voor de while of na de while?
Klik!
Staan veel voorbeelden bij om html mail te versturen.
Staan veel voorbeelden bij om html mail te versturen.
Gewijzigd op 22/12/2005 19:56:00 door Pim Vernooij
Code (php)
1
2
3
4
2
3
4
<?php
$headers = "MIME-Version: 1.0\r\n";
$headers = "Content-type: text/html; charset=iso-8859-1\r\n";
?>
$headers = "MIME-Version: 1.0\r\n";
$headers = "Content-type: text/html; charset=iso-8859-1\r\n";
?>
Moet de onderste van die twee niet .= zijn?
Na de tweede while.
Maar het eigenaardige is dat ie 2-3 lijnen goed doet en dan plots 1 lijn bijvoorbeeld een veld laat vallen of tekens plaatst zoals "<" of "<a" of " ' " samen met de goede tekst.
Dan weer een aantal lijnen goed doet en dan doet ie weer vreemd door bijvoorbeeld tekens te plaatsen zoals "<" of "<a" of " ' " bij de tekst in dat veld of terug een veld laat vallen.
Er is echt geen ritme in terug te vinden.
Ik snap het niet.
Tot binnen kort.
Met vriendelijke groeten,
Marc
Ik heb het daar vandaan gehaald
bedankt
@jan Koehoorn
Ge hebt gelijk ik corrigeer het onmiddelijk
Bedankt
Met vriendelijke groeten,
Marc
Gewijzigd op 22/12/2005 21:08:00 door Marc