Ik heb een form op een website, probleem is nou, als ik hier een tekstje invul met een ; erin crasht hij als ik het wil opslaan in mijn mySQL database. Hoe voorkom ik dat? Iets met str_replace misschien?

Alvast bedankt!

Bas
Nee str_replace is hier niet de juiste weg om te kiezen. Krijg je iets van een foutmelding te zien waaruit we kunnen afleiden wat er fout gaat?
Ik vermoed dat je de tekst zonder enige bewerking/beveiliging wilt opslaan in de database.
Ik heb het nu inderdaad wel zonder beveiliging ja, omdat ik eigenlijk met een zeer simpel scriptje ben begonnen ;)
Sorry, mijn fout! Ik bedoelde het '-teken!

Error is:

Error: 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 ''asdasdasd'')' at line 1
INSERT INTO ....... en dan mysql_real_escape_string('de data uit het formulier')...
Ik krijg nog steeds dezelfde error...

Heb nu dit stukje code:


<?
// Connect to server and select database.
mysql_connect("$host", "$username", "$password")or die("cannot connect server ");
mysql_select_db("$db_name")or die("cannot select DB");

$sql="INSERT INTO ".$tbl_name." (titel, datum, auteur, nieuwtje)VALUES('".$titel."', '".$datum."', '".$auteur."', '".$nieuwtje."')";
mysql_real_escape_string($sql);
$result=mysql_query($sql) or die("Error: ".mysql_error());
?>
- Je past mysql_real_escape_string() op de verkeerde manier toe. Die functie gebruik je over een $_POST, $_GET of $_COOKIE-variabele, en NIET over je hele SQL. En dit gebruik je uitsluitend in je mysql_query.

- or die() is geen goede foutafhandeling: Jij gaat niet dood als je iets fout doet, dus een script ook niet. Gebruik gewoon nette if-else afhandelingen.

- Variabelen horen buiten quotes.

Reageren