login  Naam:   Wachtwoord: 
Registreer je!
 Forum

strings

Offline lau - 26/06/2006 20:40
Avatar van lauHTML interesse Ik raak een beetje van in de war.
Wanneer gebruik je wat als je een woord bv: ca'sw"e/w hebt die je in een database wilt stoppen dmv toevoegen.
Moet je bij het toevoegen htmlentities(); gebruiken dus:
  1. htmlentities($_POST['woord'])
of moet je een andere functie gebruiken? En bij het weergeven van dat woord moeten ook die quotes en slashes te zien zijn. Moet je dan ook bij het weergeven
  1. htmlentities($obj->woord)
gebruiken of ook een andere?
En zelfde vraag bij bewerken... moet je bij het ophalen van dat woord ook
  1. value="'.htmlentities($obj->woord).'"
gebruiken of een andere?

3 antwoorden

Gesponsorde links
Offline Rifke - 26/06/2006 20:43
Avatar van Rifke Nieuw lid voor in de database (text wordt zo zuiver mogelijk in de database opgeslaan!):
  1. <?php
  2. //gwn de string opslaan...
  3. $string = $_POST['string'];
  4.  
  5. // we kijken als magic quotes aan/uit staat in php_ini
  6. $string = addslashes($string);
  7. }
  8.  
  9. // nu je query
  10. ?>

Offline Gerard - 26/06/2006 20:45
Avatar van Gerard Ouwe rakker Het beste is om gegevens in de database te stoppen zoals ze zijn. Dit dus zonder ze te converten naar html values of wat dan ook. De functies die je kan gebruiken om problemen te voorkomen met " en ' in je query zijn PHP.net: addslashes en PHP.net: mysql_real_escape_string.

Wanneer je dan de gegevens uit de database haalt kan je ervoor kiezen om htmlentities/htmlspecialchars erover te gieten om te zorgen dat men geen html kan uitvoeren op bv een profiel. Wanneer je echter die dingen in een <input> wilt zetten dan kan je ervoor kiezen om het niet te converten naar html zodat ze geen gekke tekens hoeven te editen.

Vergeet natuurlijk niet even stripslashes() eroverheen te gooien om te zorgen dat die extra toegevoegde slashes in de database (die om de " en ' te 'escapen') weer worden verwijderd.

Let ook even op de magic_quotes setting van die server. Die kan het beïnvloeden of slashes automatisch al toegevoegd worden bij bv POST values. Op die manier zou het kunnen zijn dat je dubbele slashes toevoegd aan een entry in je database zodat je data bij elke wijziging een extra \ krijgt, dat is natuurlijk niet wat we willen.

Ik hoop dat het zo duidelijk is 
Offline Richard - 26/06/2006 22:11
Avatar van Richard Crew algemeen
Citaat:
Vergeet natuurlijk niet even stripslashes() eroverheen te gooien om te zorgen dat die extra toegevoegde slashes in de database (die om de " en ' te 'escapen') weer worden verwijderd.


waarvoor zou dit nodig zijn? die worden niet meegegeven terug. of je moet magic_quotes_runtime aan hebben staan...
Gesponsorde links
Dit onderwerp is gesloten.
Actieve forumberichten
© 2002-2024 Sitemasters.be - Regels - Laadtijd: 0.224s