login  Naam:   Wachtwoord: 
Registreer je!
 Forum

Vreemde code's door beveiliging.

Offline finduilas - 18/10/2008 09:58
Avatar van finduilasPHP gevorderde Hallo,

Ik heb al vanalles geprobeerd. Maar hoe beveilig je nu best een contactformulier zonder dat é à enz omgezet in onbekende tekens?
Htmlentities?
mysql functies?
...?

Finduilas

4 antwoorden

Gesponsorde links
Offline nielsvdwal - 18/10/2008 11:21
Avatar van nielsvdwal PHP gevorderde bedoel je hoe je het in de database zet?

ik doe altijd htmlspecialchars() en addslashes().. en bij het eruit halen stripslashes().. werkt prima en nooit geen problemen..
Offline finduilas - 18/10/2008 12:16 (laatste wijziging 18/10/2008 12:17)
Avatar van finduilas PHP gevorderde nee, maar denk dat ik het hier ook kan gebruiken.

En welke functie gebruik je eerst?? htmspecialchars(addslashes()) ?
of ..?
Offline Martijn - 18/10/2008 12:23 (laatste wijziging 18/10/2008 12:25)
Avatar van Martijn Crew PHP ikzelf heb dit gemaakt (naja, toen ik nog een groentje was kreeg ik de basis ):
  1. function prep_char($string)
  2. { $string = trim($string);
  3. $string = htmlentities($string);
  4. $string = strip_tags($string);
  5. $string = stripslashes($string);
  6. $string = mysql_real_escape_string($string);
  7. return $string;}

en die houd de é en à enzo

edit: de stripslashes moet je hebben als je magic_quotes aan hebt 
Offline TomJansen - 21/10/2008 16:16
Avatar van TomJansen Nieuw lid effe afgezien van magic_quote/stripslashes:

in de database de collation (van database, tabel of kolom) goed zetten, b.v. utf8;
in de head van de html de juiste encoding specificeren met meta tag, eventueel ook in de headers van de http response.

dan voor het inserten: alleen mysql_real_escape_string() gebruiken;
en na het selecteren voor het tonen: alleen htmlspecialchars() gebruiken.

Dus niet htmlentities, hoewel dat ook kan werken. Als je een andere encoding dan latin1 gebruikt, moet je dat opgeven aan htmlentities: htmlentities($string, ENT_COMPAT, $encoding);
maar nog beter is htmlentities niet gebruiken, alleen htmlspecialchars gebruiken.

Misschien moet je bovendien na het connecten de query "set names='$encoding';" uitvoeren, ik weet eigenlijk niet of dat belangrijk is.
Gesponsorde links
Dit onderwerp is gesloten.
Actieve forumberichten
© 2002-2024 Sitemasters.be - Regels - Laadtijd: 0.18s