Mega probleem, weet zelf ook niet wat
Oké oké, ik geef je gelijk. Alleen nu beetje gestrest omdat ik het toch gemaakt wil hebben, zodat ik gelijk een backup kan maken...
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
2
3
4
5
6
7
8
9
10
11
12
<?PHP
if (isset($_GET['actie']) && $_GET['actie'] == "profiel") // AND == &&
{
$query = mysql_query("SELECT * FROM leden WHERE id='".$_GET['id']."'");
$aantal = mysql_num_rows($query);
if($aantal == FALSE)
{
begintabel("Foutmelding");
}
}
?>
if (isset($_GET['actie']) && $_GET['actie'] == "profiel") // AND == &&
{
$query = mysql_query("SELECT * FROM leden WHERE id='".$_GET['id']."'");
$aantal = mysql_num_rows($query);
if($aantal == FALSE)
{
begintabel("Foutmelding");
}
}
?>
Zoals je ziet is dit al een stuk overzichtelijker, je zou trouwens ook eens op de PHP website kunnen kijken voor functies om je script veiliger te maken.
Zo kan je controleren of $_GET['id'] wel uit nummers bestaat: is_numeric() & mysql_real_escape_string()
Mysql_real_escape_string() voorkomt SQL injectie
Jeroen
Ik zal zeker nog het een en ander door gaan lezen. Ik denk ook dat ik als het allemaal weer werkt ga proberen om het inderdaad nog veiliger te maken. Ik heb nog wat mensen gemaild waarvan ik de template heb gevonden. Ik wacht hun reactie nog even af, dan kan ik in iedergeval die pagina terug zetten, zodat die weer werkt. Dan maak ik een mooie back-up, en in die tussentijd zal ik alweer wat meer kennis op gedaan hebben;)
Mvg, Bjorn
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
<?php
if(isset($_GET['actie']) && $_GET['actie'] == "profiel") {
if(isset($_GET['id'])) {
$query = "SELECT * FROM leden WHERE id = ".(int)$_GET['id']; // sql injection wordt voorkomen door (int) voor $_GET['id'] te zetten, hierdoor moet $_GET['id'] een int zijn
$result = mysql_query($query); // query uitvoeren
if($result) { //kijken of de query is gelukt
if(mysql_num_rows($result) > 0) { // kijken of er records zijn
// er is een record, profiel weergeven.
} else { // er zijn geen records
echo 'Profiel bestaat niet.';
}
} else { // query niet gelukt, weergeef foutmelding + de uitgevoerde query
echo mysql_error().' in query: '.$query;
}
} else { // er is geen id
echo 'Geen ID meegegeven.';
}
} else { // er is geen actie / de actie is niet "profiel"
echo 'Actie is niet profiel/bestaat niet.';
}
?>
if(isset($_GET['actie']) && $_GET['actie'] == "profiel") {
if(isset($_GET['id'])) {
$query = "SELECT * FROM leden WHERE id = ".(int)$_GET['id']; // sql injection wordt voorkomen door (int) voor $_GET['id'] te zetten, hierdoor moet $_GET['id'] een int zijn
$result = mysql_query($query); // query uitvoeren
if($result) { //kijken of de query is gelukt
if(mysql_num_rows($result) > 0) { // kijken of er records zijn
// er is een record, profiel weergeven.
} else { // er zijn geen records
echo 'Profiel bestaat niet.';
}
} else { // query niet gelukt, weergeef foutmelding + de uitgevoerde query
echo mysql_error().' in query: '.$query;
}
} else { // er is geen id
echo 'Geen ID meegegeven.';
}
} else { // er is geen actie / de actie is niet "profiel"
echo 'Actie is niet profiel/bestaat niet.';
}
?>
Mvg, Bjorn