Fout in MySQL code...
Hieronder een klein stukje code, ziet iemand wat ik verkeerd doe (ik krijg een error)
Bovendien is het LEVENSGEVAARLIJK voor je database om $_POST[] direct in de Query te verwerken. Controleer ze eerst! Addslashes en noem het maar op!
Bedankt voor de tip, ik moet inderdaad nog naar de beveiliging kijken. De fout die naar voren komt is:
Kan je ook bijvoorbeeld de hele query hier posten, of in ieder geval regel 148.
Lapidi schreef op 13.02.2009 15:43:
Welke error krijg je? Dan is het misschien duidelijker wat er fout gaat.
Bovendien is het LEVENSGEVAARLIJK voor je database om $_POST[] direct in de Query te verwerken. Controleer ze eerst! Addslashes en noem het maar op!
Bovendien is het LEVENSGEVAARLIJK voor je database om $_POST[] direct in de Query te verwerken. Controleer ze eerst! Addslashes en noem het maar op!
niet als je de inhoud er voor hebt gecontroleerd...
hij is gewoon en var net als elke andere var ...
nou denk ik overigens niet dat het hier gebeurt laat eens en stuk relevante code zien.
Gewijzigd op 01/01/1970 01:00:00 door RvW Of toch niet
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
2
3
4
5
6
7
8
9
10
11
12
13
14
$sql = "
SELECT
naam,
branche_id,
logo,
website,
plaats
FROM
bedrijf
WHERE
branche = "'.($_POST['branche_zoek']).'"
AND
plaats = "'.($_POST['plaats_zoek']) .'"
";
SELECT
naam,
branche_id,
logo,
website,
plaats
FROM
bedrijf
WHERE
branche = "'.($_POST['branche_zoek']).'"
AND
plaats = "'.($_POST['plaats_zoek']) .'"
";
En dit is regel 148:
SELECT
naam,
branche_id,
logo,
website,
plaats
FROM
bedrijf
WHERE
branche = '" . ($_POST['branche_zoek'])."'
AND
plaats = '".($_POST['plaats_zoek']) . "'
";
dat moet je sql zijn....
verander
naar
en verander
naar
@Anne: Zorg voor beveiliging! Nu smeek je om te worden gehackt, gebruik mysql_real_escape_string() om data veilig in de query te zetten. Beveiliging bouw je direct in, nooit achteraf omdat dit altijd fout gaat.
Echter werkt mijn zoeksysteempje nog steeds niet.
Dit is mijn 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
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
<form method="post" action="zoek.php" enctype="multipart/form-data">
<table border="0" width="155" align="center">
<tr>
<td class="zoek" width="20">Branche:</td>
<td><input type="text" size="10" name="branche_zoek" value="" id="zoekbalk"></td>
</tr>
<tr>
<td class="zoek" width="20">Plaats:</td>
<td><input type="text" size="10" name="plaats_zoek" value="" id="zoekbalk"></td>
</tr>
<tr>
<td> </td>
<td><input type="submit" value="Zoeken"></td>
</tr>
</table>
</form>
</td>
<td width="542" id="tekst" valign="top">
<div style="overflow: auto; height: 450px; width: 100%; padding-left: 20px; padding-top: 20px;">
<?php
$sql = '
SELECT
naam,
branche_id,
logo,
website,
plaats
FROM
bedrijf
WHERE
branche_id = "'.($_POST['branche_zoek']).'"
';
if(!$res = mysql_query($sql))
{
trigger_error(mysql_error().'<br />In query: '.$sql);
}
elseif(mysql_num_rows($res) == 0)
{
echo 'Er zijn geen bedrijven gevonden die voldoen aan uw zoekopdracht.';
}
else
{
echo 'De volgende bedrijven voldoen aan uw zoekopdracht:<br><table border="0" cellspacing="10" width="100%">';
$teller = 1;
while($row = mysql_fetch_assoc($res))
{
if($teller == 1) echo '<tr>';
echo '<td style="border: 0px solid #AAAAAA;" width="147" align="center" valign="middle"><a href="'.$row['website'].'" target="'.$row['venster'].'"><img src="logo/'.$row['logo'].'" alt="'.$row['naam'].'" border="0" align="" /></a></td>';
if($teller == 3) { echo '</tr>'; $teller = 0; }
$teller++;
}
echo '</table>';
}
?>
<table border="0" width="155" align="center">
<tr>
<td class="zoek" width="20">Branche:</td>
<td><input type="text" size="10" name="branche_zoek" value="" id="zoekbalk"></td>
</tr>
<tr>
<td class="zoek" width="20">Plaats:</td>
<td><input type="text" size="10" name="plaats_zoek" value="" id="zoekbalk"></td>
</tr>
<tr>
<td> </td>
<td><input type="submit" value="Zoeken"></td>
</tr>
</table>
</form>
</td>
<td width="542" id="tekst" valign="top">
<div style="overflow: auto; height: 450px; width: 100%; padding-left: 20px; padding-top: 20px;">
<?php
$sql = '
SELECT
naam,
branche_id,
logo,
website,
plaats
FROM
bedrijf
WHERE
branche_id = "'.($_POST['branche_zoek']).'"
';
if(!$res = mysql_query($sql))
{
trigger_error(mysql_error().'<br />In query: '.$sql);
}
elseif(mysql_num_rows($res) == 0)
{
echo 'Er zijn geen bedrijven gevonden die voldoen aan uw zoekopdracht.';
}
else
{
echo 'De volgende bedrijven voldoen aan uw zoekopdracht:<br><table border="0" cellspacing="10" width="100%">';
$teller = 1;
while($row = mysql_fetch_assoc($res))
{
if($teller == 1) echo '<tr>';
echo '<td style="border: 0px solid #AAAAAA;" width="147" align="center" valign="middle"><a href="'.$row['website'].'" target="'.$row['venster'].'"><img src="logo/'.$row['logo'].'" alt="'.$row['naam'].'" border="0" align="" /></a></td>';
if($teller == 3) { echo '</tr>'; $teller = 0; }
$teller++;
}
echo '</table>';
}
?>
Ik krijg nu niet de melding ''Er zijn geen bedrijven gevonden die voldoen aan uw zoekopdracht.' maar ik krijg ook de afbeeldingen niet te zien...
Ik zal even niks adviseren, na al mijn slechte adviezen vandaag :')
Gewijzigd op 01/01/1970 01:00:00 door Pieter van Linschoten
Lapidi schreef op 13.02.2009 16:23:
Je mist het gedeelte dat er gekeken wordt of het form wel verzonden is?
Ik zal even niks adviseren, na al mijn slechte adviezen vandaag :')
Ik zal even niks adviseren, na al mijn slechte adviezen vandaag :')
Goed advies aan jezelf.
Inmiddels werkt het weer, dankzij u :)
Je hebt je $sql tussen enkele quotes (en bij SQL-strings doen we dat niet).
Je controleert niet of er gepost is (of wel).
Je beveiligt je input ($_POST) niet.
Bedankt voor je reactie. De enkele quotes heb ik vervangen door dubbele, dus die fout is al uit de wereld. Ook de $_POST heb ik beveiligd met een mysql_real_escape_string.
Ik hegrijp alleen niet echt hoe ik kan controleren of er gepost is.. zou je daar misschien een voorbeeldje van kunnen geven??
Alvast bedankt!
Anne schreef op 13.02.2009 19:51:
Ik hegrijp alleen niet echt hoe ik kan controleren of er gepost is
if($_SERVER['REQUEST_METHOD'] == 'POST')
SanThe, heel erg bedankt! Hier kan ik wat mee!