Fout in script door upgrade naar PHP5

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Martijn

Martijn

06/10/2008 19:20:00
Quote Anchor link
Een werkend mailformulier werkt niet meer omdat er een upgrade heeft plaatsgevonden van de php-versie op de webserver naar php5. Voorheen werkte het script wel.

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)
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
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:&nbsp;&nbsp;&nbsp;<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'>&nbsp;</td>
      <td width='20'>&nbsp;</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'>&nbsp;</td>
    </tr>
    <tr>
      <td width='100' valign='top' class='admin'>Onderwerp:</td>
      <td width='20'>&nbsp;</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'>&nbsp;</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'>&nbsp;</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'>&nbsp;</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";
}
}
}
}
}

?>
 
PHP hulp

PHP hulp

17/11/2024 14:27:18
 
Martijn B

Martijn B

06/10/2008 19:42:00
Quote Anchor link
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
<?php
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:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
<form name="formNaam" method="post">



Niet Bumpen::
Twee of meer keer achter elkaar in een topic posten heet bumpen. Bumpen is pas na 24 uur toegestaan en kan een reden zijn voor de admins en moderators om een topic te sluiten. Gebruik indien nodig de Afbeelding knop om je tekst aan te passen.

SanThe.
Gewijzigd op 01/01/1970 01:00:00 door Martijn B
 
Lasse

Lasse

06/10/2008 23:19:00
Quote Anchor link
$_SERVER['PHP_SELF'] is gevoelig voor url-XSS. Niet gebruiken dus.
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).
 
Martijn B

Martijn B

07/10/2008 09:51:00
Quote Anchor link
@SanThe:

Er zijn meer Martijn's in de wereld.
Gewijzigd op 01/01/1970 01:00:00 door Martijn B
 
Jelle Posthuma

Jelle Posthuma

07/10/2008 10:04:00
Quote Anchor link
CSS is overigens ook geen overbodige luxe...
 
Frank -

Frank -

07/10/2008 10:21:00
Quote Anchor link
Offtopic:
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.
 
Martijn

Martijn

07/10/2008 12:14:00
Quote Anchor link
En welke gebruikte superglobal zou dan in het script verkeerd staan?
 



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.