Fout in MySQL code...

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Anne

Anne

13/02/2009 15:39:00
Quote Anchor link
Beste mensen,

Hieronder een klein stukje code, ziet iemand wat ik verkeerd doe (ik krijg een error)

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
WHERE
     branche = "'.($_POST['branche_zoek']).'"
    AND
     plaats = "'.($_POST['plaats_zoek']) .'"
 
PHP hulp

PHP hulp

23/11/2024 10:07:02
 
Pieter van Linschoten

Pieter van Linschoten

13/02/2009 15:43:00
Quote Anchor link
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!
 
Anne

Anne

13/02/2009 15:45:00
Quote Anchor link
Hoi Lapidi,
Bedankt voor de tip, ik moet inderdaad nog naar de beveiliging kijken. De fout die naar voren komt is:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
Parse error: syntax error, unexpected T_CONSTANT_ENCAPSED_STRING in /home/mijnsite.nl/www/zoek.php on line 148
 
Pieter van Linschoten

Pieter van Linschoten

13/02/2009 15:51:00
Quote Anchor link
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.
 
RvW Of toch niet

RvW Of toch niet

13/02/2009 15:53:00
Quote Anchor link
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!

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
 
Anne

Anne

13/02/2009 15:55:00
Quote Anchor link
dit is de hele query:
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
$sql = "
    SELECT
        naam,
        branche_id,
        logo,
        website,
        plaats
    FROM
        bedrijf
    WHERE
     branche = "'.($_POST['branche_zoek']).'"
    AND
     plaats = "'.($_POST['plaats_zoek']) .'"
     ";


En dit is regel 148:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
branche = "'.($_POST['branche_zoek']).'"
 
RvW Of toch niet

RvW Of toch niet

13/02/2009 15:58:00
Quote Anchor link
$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....
 
Pieter van Linschoten

Pieter van Linschoten

13/02/2009 15:58:00
Quote Anchor link
Je hebt de " en de ' omgewisseld.

verander
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
$sql = "
naar
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
$sql = '

en verander
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
";

naar
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
';
 
Frank -

Frank -

13/02/2009 16:04:00
Quote Anchor link
@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

Anne

13/02/2009 16:05:00
Quote Anchor link
Bedankt! Nu is die fout uit de wereld!
Echter werkt mijn zoeksysteempje nog steeds niet.
Dit is mijn 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
<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>&nbsp;</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...
 
Pieter van Linschoten

Pieter van Linschoten

13/02/2009 16:23:00
Quote Anchor link
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 :')
Gewijzigd op 01/01/1970 01:00:00 door Pieter van Linschoten
 
Jesper Diovo

Jesper Diovo

13/02/2009 17:49:00
Quote Anchor link
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 :')

Goed advies aan jezelf.
 
Anne

Anne

13/02/2009 17:59:00
Quote Anchor link
Bedankt xD
Inmiddels werkt het weer, dankzij u :)
 
Eddy E

Eddy E

13/02/2009 19:44:00
Quote Anchor link
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.
 
Anne

Anne

13/02/2009 19:51:00
Quote Anchor link
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!
 
- SanThe -

- SanThe -

13/02/2009 19:55:00
Quote Anchor link
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')
 
Anne

Anne

13/02/2009 19:59:00
Quote Anchor link
SanThe, heel erg bedankt! Hier kan ik wat mee!
 



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.