error You have an error in your SQL syntax

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Maaike arentsen

maaike arentsen

01/11/2013 13:51:41
Quote Anchor link
Ik heb ooit een LOI opleiding gedaan en heb toen een website gemaakt voor een vriend van mij maar ben er nooit in verder gegaan. Nu werk ik alweer 6 jaar in de zorg en ben veel verleerd. Opeens geeft de website een error als je de informatie blokken aan wil passen. Ben er achter komen dat de error ontstaat zodra je in je informatie blok iets met de ' zet zoals het woord 's morgens.

You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'op de website van Home-Care Met groot enthousiasme presenteren wij u onze web' at line 1

waarbij is de ' heb gezet in de volgende lijn tekst" Welkom ' op de website van Home-Care"

hieronder zie je de codes die ik gebruik op de pagina om het in de database te zetten.
Ik zou super blij zijn als iemand weet waardoor die error komt en ik geen ' meer kan gebruiken in mn tekst blokken.

----------------------
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
<?
if (check_login()) {

$home = $_POST['home'];

if (isSet($_POST['submit_home'])){
 $query = "UPDATE homecare_text SET home ='" . $home . "' WHERE id = 1";
  mysql_query($query) or die(mysql_error());
 
 header ('Location: index.php?page=home');
}

$query = "SELECT * FROM homecare_text ORDER BY id DESC";
$fetch = mysql_query($query);
?>

<form name"home_text" method="POST" action="
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
<?= $_SERVER['REQUEST_URI']; ?>
">
<div align="left">
<table>
<tr>
<td>
Typ hier je home text<br>
<textarea cols="80" rows="20" name="home">
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
<?
$sql
= "SELECT home FROM homecare_text ORDER BY -id LIMIT 0, 1";
$resultaat = mysql_query($sql);
$aantal = mysql_num_rows($resultaat);  
  
while ($record = mysql_fetch_object($resultaat)) {  
echo "$record->home\n";
}

?>

</textarea>
</td>
</tr>
</table>
<input type="submit" value="Verzenden" name="submit_home">
<input type="reset" value="Wissen" name="reset">
<br>
</div>
</form>
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
<?
}
else {
echo ('Hiervoor moet je ingelogd zijn');
}

?>
Gewijzigd op 01/11/2013 15:13:10 door Maaike arentsen
 
PHP hulp

PHP hulp

17/11/2024 09:49:19
 
 - Diov  -

- Diov -

01/11/2013 13:57:24
Quote Anchor link
Hallo,

Eerst en vooral, wil je je titel van je vraag aanpassen?
Iedereen heeft hulp nodig op dit forum, verander je titel over het onderwerp van je probleem.

En de oplossing:
Gebruik mysql_real_escape_string() om je variabelen geen, in je query's.

Voorbeeld:
$query = "UPDATE homecare_text SET home ='" . $home . "' WHERE id = 1";

Moet dit worden:
$query = "UPDATE homecare_text SET home ='" . mysql_real_escape_string($home) . "' WHERE id = 1";

Waarom?
Als je een accentje (') invoert, dan wordt die beschouwd als een accent, en zal hij je query aanpassen.
Nu is je script vatbaar voor sql injectie

Diov
 
Maaike arentsen

maaike arentsen

01/11/2013 15:18:51
Quote Anchor link
geweldig, het is gelukt. Je hebt mijn weekend een stuk rustiger gemaakt.
 
- Ariën  -
Beheerder

- Ariën -

01/11/2013 15:28:30
Quote Anchor link
Maaike, ik wil je wel even vragen om je code alsnog tussen de juiste code-tags te plaatsen.
Alvast bedankt.
 



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.