login  Naam:   Wachtwoord: 
Registreer je!
 Forum

Variabele bevat aanhalingstekens (Opgelost)

Offline Hideoshi - 26/01/2009 18:13
Avatar van HideoshiHTML interesse Ik zit met volgend probleem:
Ik heb een gastenboek, maar telkens als ik bv foto's (dus met een enkel aanhalingsteken) in mijn bericht typ wordt het bericht niet opgeslagen in de database. Hoe kan ik dit vermijden ?
Dit is de html code van het textvak:
  1. <textarea name="message" cols="50" rows="4"></textarea>


Dit is het stukje code dat het bericht opslaat in de database:
  1. $message = $_POST['message'];
  2. connect_db();
  3. $sql = "SELECT * FROM gastenboek";
  4. $result = mysql_query($sql);
  5. $aantal = mysql_num_rows($result);
  6. $aantal++;
  7. $sql = "INSERT INTO gastenboek (id, message) VALUES ('".$aantal."','".$message."')";

7 antwoorden

Gesponsorde links
Offline vinTage - 26/01/2009 18:15
Avatar van vinTage Nieuw lid addslashes gebruiken


  1. $message = addslashes($_POST['message']);
Offline Martijn - 26/01/2009 18:59
Avatar van Martijn Crew PHP beter nog:

  1. $message = htmlspecialchars($_POST['message']);
Offline vinTage - 26/01/2009 19:21
Avatar van vinTage Nieuw lid Data hoort zo puur mogelijk in de database.
In pma zelf bv leest: ik zeg \"hoi\"
makkelijker dan: ik zeg &quot;hoi&quot;

Daarnaast zijn het minder chars, dus minder "size"

Natuulijk zijn bovenstaande puntjes zowat te verwaarlozen, maar specialchars is imo dus zeker niet beter
Offline Martijn - 26/01/2009 19:47
Avatar van Martijn Crew PHP maar wel meteen voor andere tekens want nu kan ook <b> erin zetten enzo, en js ofzo
Offline vinTage - 26/01/2009 19:48
Avatar van vinTage Nieuw lid uitlezen met stripslashes(htmlentities...
Offline Gerard - 26/01/2009 21:03
Avatar van Gerard Ouwe rakker Bij het invoeren van gegevens in een database dien je gebruik te maken van PHP.net: mysql_real_escape_string. Deze php functie heeft de voorkeur boven PHP.net: addslashes omdat deze ook beschermd tegen een 0byte aanval en rekening houdt met de charset van de geopende database connectie.

vinTage heeft gelijk om te vermelden dat data zo puur mogelijk in de database moet. Zelfs als het HTML is dan dien je dit gewoon op die manier in de database in te voeren. Pas bij het verkrijgen van data uit de database dien je gebruik te maken van PHP.net: stripslashes en PHP.net: htmlentities/PHP.net: htmlspecialchars. Op deze manier kan je altijd in de toekomst overstappen op een HTML systeem. Maar de echte regel is dus dat data altijd zo schoon mogelijk in de database dient te staan.
Offline Hideoshi - 28/01/2009 10:32
Avatar van Hideoshi HTML interesse Ok bedankt, met de real_escape_string functie om op te slaan,
en stripslashes om terug uit te lezen werkt het perfect!!
Html in de tekst is niet nodig 

Bedankt !
Gesponsorde links
Dit onderwerp is gesloten.
Actieve forumberichten
© 2002-2024 Sitemasters.be - Regels - Laadtijd: 0.191s