Fout in script door upgrade naar PHP5
Het betreft een script waarbij je d.m.v. een link de checkboxen voor de emailadressen allemaal kunt aanvinken of uitvinken om vervolgens een bericht op te stellen en te versturen.
Kortom,
De link <a href='$PHP_SELF?select=0
en <a href='$PHP_SELF?select=1 werken niet meer dus er kan geen email worden verzonden.
Misschien dat iemand snel ziet welke functie niet meer wordt ondersteunt of dat php5 andere commando's gebruikt.
Code:
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
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
<?php
session_start();
echo "<body bgcolor=cccccc>";
include_once("connect.php");
$webmail = "[email protected]";
$webnaam = "www.internet.nl";
if ($_SESSION['groupid']==3) {
function verwijderemailadres($id){
mysql_query("DELETE FROM mailinglist WHERE id = {$id} ");
}
if ($_GET["verwijderemailadres"]<>""){
verwijderemailadres($_GET["verwijderemailadres"]);
}
if(empty($action)) {
if($select=="1") {
$check = "checked";
} elseif($select=="0") {
$check = "";
}
echo "
<form name='Newkaart' method='post' action='$PHP_SELF'>
<table bgColor='98cb00' width='600' border='0' cellpadding='0' cellspacing='0'>
<tr>
<td width='600' align='left' valign='top' colspan='3' class='admin'>Kies hieronder eerst de personen die je wilt mailen: <BR><BR></td>
</tr>";
$sql = mysql_query("SELECT * FROM mailinglist WHERE mail!='' ORDER BY mail ASC");
while($mailsql = mysql_fetch_array($sql)) {
$id = $mailsql["id"];
$email = $mailsql["mail"];
echo "
<tr>
<td width='100' valign='top' class='admin'> </td>
<td width='20'> </td>
<td width='480' class='admin'><a href=mailinglist.php?verwijderemailadres=".$mailsql['id']."><font color=red><B>Verwijder</B></font></a><input type='checkbox' name='array[$id]' value='$email' $check>$email</td>
</tr>";
}
echo "
<tr>
<td width='600' align='left' valign='top' colspan='3' class='wit'><a href='$PHP_SELF?select=1' class='congres'>Selecteer alle e-mail adressen</a> / <a href='$PHP_SELF?select=0' class='congres'>Deselecteer alle e-mail adressen</a></td>
</tr>
<tr>
<td width='600' align='left' valign='top' colspan='3' class='wit'> </td>
</tr>
<tr>
<td width='100' valign='top' class='admin'>Onderwerp:</td>
<td width='20'> </td>
<td width='480' class='admin'><input name='onderwerp' type='text' id='onderwerp' size='60' maxlength='255'></td>
</tr>
<tr>
<td width='100' valign='top' class='admin'>Bericht:</td>
<td width='20'> </td>
<td width='480' class='admin'><textarea name='bericht' cols='80' rows='25' class='text'></textarea></td>
</tr>
<tr>
<td width='600' colspan='3' align='center'><input name='verander_item' type='submit' id='verander_item' value='Versturen'><input name='reset' type='reset' id='reset' value='Terug'></td>
</tr>
<tr>
<td width='600' align='left' valign='top' colspan='3' class='wit'> </td>
</tr>
</table>
<input name='action' type='hidden' id='action' value='sendemail'>
</form>";
echo "
<tr>
<td width='600' align='left' valign='top' colspan='3' class='wit'> </td>
</tr>
<tr>
<td width='600' align='left' valign='top' colspan='3' class='wit'> <a href=index.php><B>Terug naar adminpanel</B></A></td>
</tr>";
echo "</table>";
} elseif($action=="sendemail") {
if(empty($onderwerp)) {
echo "Wilt u astublieft een onderwerp invoeren?";
} elseif(empty($bericht)) {
echo "Wilt u astublieft een bericht invoeren?";
} else {
foreach ($array as $email) {
echo "<a href=index.php><B>Terug naar adminpanel</B></A>";
if(mail($email,$onderwerp,$bericht, "From:$webnaam <$webmail>\n". "Reply-To:$webnaam <$webmail>\n")){
echo "$email [OK]<br>\n";
} else {
echo "$email [ERROR]<br>\n";
}
}
}
}
}
?>
session_start();
echo "<body bgcolor=cccccc>";
include_once("connect.php");
$webmail = "[email protected]";
$webnaam = "www.internet.nl";
if ($_SESSION['groupid']==3) {
function verwijderemailadres($id){
mysql_query("DELETE FROM mailinglist WHERE id = {$id} ");
}
if ($_GET["verwijderemailadres"]<>""){
verwijderemailadres($_GET["verwijderemailadres"]);
}
if(empty($action)) {
if($select=="1") {
$check = "checked";
} elseif($select=="0") {
$check = "";
}
echo "
<form name='Newkaart' method='post' action='$PHP_SELF'>
<table bgColor='98cb00' width='600' border='0' cellpadding='0' cellspacing='0'>
<tr>
<td width='600' align='left' valign='top' colspan='3' class='admin'>Kies hieronder eerst de personen die je wilt mailen: <BR><BR></td>
</tr>";
$sql = mysql_query("SELECT * FROM mailinglist WHERE mail!='' ORDER BY mail ASC");
while($mailsql = mysql_fetch_array($sql)) {
$id = $mailsql["id"];
$email = $mailsql["mail"];
echo "
<tr>
<td width='100' valign='top' class='admin'> </td>
<td width='20'> </td>
<td width='480' class='admin'><a href=mailinglist.php?verwijderemailadres=".$mailsql['id']."><font color=red><B>Verwijder</B></font></a><input type='checkbox' name='array[$id]' value='$email' $check>$email</td>
</tr>";
}
echo "
<tr>
<td width='600' align='left' valign='top' colspan='3' class='wit'><a href='$PHP_SELF?select=1' class='congres'>Selecteer alle e-mail adressen</a> / <a href='$PHP_SELF?select=0' class='congres'>Deselecteer alle e-mail adressen</a></td>
</tr>
<tr>
<td width='600' align='left' valign='top' colspan='3' class='wit'> </td>
</tr>
<tr>
<td width='100' valign='top' class='admin'>Onderwerp:</td>
<td width='20'> </td>
<td width='480' class='admin'><input name='onderwerp' type='text' id='onderwerp' size='60' maxlength='255'></td>
</tr>
<tr>
<td width='100' valign='top' class='admin'>Bericht:</td>
<td width='20'> </td>
<td width='480' class='admin'><textarea name='bericht' cols='80' rows='25' class='text'></textarea></td>
</tr>
<tr>
<td width='600' colspan='3' align='center'><input name='verander_item' type='submit' id='verander_item' value='Versturen'><input name='reset' type='reset' id='reset' value='Terug'></td>
</tr>
<tr>
<td width='600' align='left' valign='top' colspan='3' class='wit'> </td>
</tr>
</table>
<input name='action' type='hidden' id='action' value='sendemail'>
</form>";
echo "
<tr>
<td width='600' align='left' valign='top' colspan='3' class='wit'> </td>
</tr>
<tr>
<td width='600' align='left' valign='top' colspan='3' class='wit'> <a href=index.php><B>Terug naar adminpanel</B></A></td>
</tr>";
echo "</table>";
} elseif($action=="sendemail") {
if(empty($onderwerp)) {
echo "Wilt u astublieft een onderwerp invoeren?";
} elseif(empty($bericht)) {
echo "Wilt u astublieft een bericht invoeren?";
} else {
foreach ($array as $email) {
echo "<a href=index.php><B>Terug naar adminpanel</B></A>";
if(mail($email,$onderwerp,$bericht, "From:$webnaam <$webmail>\n". "Reply-To:$webnaam <$webmail>\n")){
echo "$email [OK]<br>\n";
} else {
echo "$email [ERROR]<br>\n";
}
}
}
}
}
?>
Code (php)
1
2
3
4
5
2
3
4
5
<?php
echo "
<form name='Newkaart' method='post' action='" . $_SERVER['PHP_SELF'] . "'>
...
?>
echo "
<form name='Newkaart' method='post' action='" . $_SERVER['PHP_SELF'] . "'>
...
?>
Het is trouwens beter (voldoet aan W3C standaard) om quotes te gebruiken in HTML, dus:
Niet Bumpen::
Gewijzigd op 01/01/1970 01:00:00 door Martijn B
Gebruik liever $_SERVER['SCRIPT_NAME'], aangezien deze het door de server aangeroepen path gebruikt, en niet, zoals $_SERVER['PHP_SELF'] doet, het path die de gebruiker heeft aangeroepen (dus zonder dat deze translated is).
CSS is overigens ook geen overbodige luxe...
Quote:
Fout in script door upgrade naar PHP5
Nee, de fout had je al in het script zitten en had een jaar of 6 geleden al aan het licht moeten komen. Dankzij het ontbreken van enig onderhoud en beheer op de server waar dit script al die tijd heeft gedraaid, is het niet eerder aan het licht gekomen. Nu je éindelijk met PHP 5 op een goed/beter geconfigureerde server werkt, blijkt dat jouw script zo lek als een mandje was.
Superglobals, google daar maar eens op.
Het probleem heeft dus helemaal niets met versie 5 te maken, maar met veiligheidslekken die nu eindelijk zijn gedicht.
En welke gebruikte superglobal zou dan in het script verkeerd staan?