Fout in MySQL code...
Beste mensen,
Hieronder een klein stukje code, ziet iemand wat ik verkeerd doe (ik krijg een error)
Hieronder een klein stukje code, ziet iemand wat ik verkeerd doe (ik krijg een error)
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!
Hoi Lapidi,
Bedankt voor de tip, ik moet inderdaad nog naar de beveiliging kijken. De fout die naar voren komt is:
Bedankt voor de tip, ik moet inderdaad nog naar de beveiliging kijken. De fout die naar voren komt is:
Dat betekend waarschijnlijk dat je ergens een puntje(.) bent vergeten om text met strings te verbinden.
Kan je ook bijvoorbeeld de hele query hier posten, of in ieder geval regel 148.
Kan je ook bijvoorbeeld de hele query hier posten, of in ieder geval regel 148.
'Lapidi:
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
dit is de hele query:
En dit is regel 148:
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:
$sql = "
SELECT
naam,
branche_id,
logo,
website,
plaats
FROM
bedrijf
WHERE
branche = '" . ($_POST['branche_zoek'])."'
AND
plaats = '".($_POST['plaats_zoek']) . "'
";
dat moet je sql zijn....
SELECT
naam,
branche_id,
logo,
website,
plaats
FROM
bedrijf
WHERE
branche = '" . ($_POST['branche_zoek'])."'
AND
plaats = '".($_POST['plaats_zoek']) . "'
";
dat moet je sql zijn....
Je hebt de " en de ' omgewisseld.
verander
naar
en verander
naar
verander
naar
en verander
naar
@Lapidi: Slecht advies, binnen de SQL hoor je enkele quotes ' te gebruiken en dus is het 100x eenvoudiger om buiten de SQL dubbele " quotes te gebruiken. Jij draait dit precies om...
@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.
@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.
Bedankt! Nu is die fout uit de wereld!
Echter werkt mijn zoeksysteempje nog steeds niet.
Dit is mijn code:
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...
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...
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 :')
Gewijzigd op 01/01/1970 01:00:00 door Pieter van Linschoten
'Lapidi:
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.
Bedankt xD
Inmiddels werkt het weer, dankzij u :)
Inmiddels werkt het weer, dankzij u :)
Maar in de code die we nu zien doe je het nog steeds fout.
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.
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.
Beste Eddy,
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!
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:
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!




