timmie_loots
|
De bijdrage van DMM klopt niet helemaal. urlencode() zou alleen gebruikt moeten worden als de te verzenden data via de URL verzonden gaat worden (hence urlencode()).
'Vreemde tekens' kun je zonder problemen in de database opslaan mits alle character encodings overeenkomen (dus bijv. UTF-8 bij het ingeven in de browser, bij het verwerken in het script, bij het invoeren in de database en uiteindelijk weer het laten zien in de browser). Met een functie als PHP.net: mb_convert_encoding kun je zorgen dat dit altijd hetgeval is.
Een situatie waarin je bijvoorbeeld wel urlencode() wilt gebruiken is als je een HTTP POST-request wilt simuleren maar van te voren niet weet wat de waarden van de POST-variabelen zullen zijn (met andere woorden, die komen van de gebruiker). Een urlencode() op de door de gebruiker gegeven waarden zorgt dan dat HTTP-request goed overkomt. |
|
|
DMM
|
Toepassing van urlencode();
PHP.net: urlencode en PHP.net: urldecode kan gebruikt worden om een tekst die bestaat uit 'speciale tekens' (o.a. à-î-è-û) correct weer te geven. Bijdrage toegevoegd naar aanleiding van mijn vraagstelling op het forum.
Voorbeeld: neem nu dat je je site beheerdt d.m.v. een simpel CMS. Wanneer je op je CMS een pagina toevoegt, moet je het volgende doen:
$tekst = urlencode($_POST['tekst']);
Bij het selecteren van de gegevens uit de database doe je het volgende:
$query = mysql_query("SELECT * FROM tabel WHERE paginaid = '".$paginaid."' ") or die(mysql_error());
while($res = mysql_fetch_array($query) {
echo urldecode($res['tekst']):
}
David Roelandt |
|
|