Ga naar inhoud

PHP - invoervelden controleren


Aanbevolen berichten

Hallo, Een tijdje terug heb ik wat geëxperimenteerd met php. Nu had ik een inlog scriptje gemaakt enzo, maar daar liep ik tegen 2 grote manco's aan. Je kunt namelijk velden leeg laten, wat natuurlijk niet de bedoeling is en je kunt html gebruiken...iets wat helemaal niet de bedoeling is ! :lol: . Nu heb ik al tijden gezocht naar een oplossing die niet al te ingewikkeld is. Ik dacht dat ik met addslashes kon voorkomen dat mensen html code gingen invoeren, maar dat heeft niet het gewenste effect. Wat zijn handige mannieren in php om te controleren dat de input-velden niet leeg zijn en niet uit html-code bestaan ?
Link naar reactie
Oei, die had ik niet gezien :oops: . Dat is idd wel een handigheidje, gewoon de lengte van de string controleren. Hoe kan ik echter voorkomen dat er html en dergelijke worden ingevoerd ? Moet ik daar controleren op tekens als de '<' en '>' of is er in php een functie die daar mee afrekent ? Nu kunnen ze namelijk html invoeren en bij het inlogveld zouden ze een sql query kunnen maken. Dat heb ik nu tijdelijk gefixt door geen spatie toe te staan, maar dat is toch niet zo elegant...
Link naar reactie
Probeer dit eens: [code:1:cb89f14a12] <?php reset($_POST); while ( list($field, $value) = each($_POST) ) { if ( empty($value) ) { print "Het veld '" . $field . "' is leeg!<br>"; } // Hier halen we alle html tags uit de $value $_POST[$field] = strip_tags($value); $HTTP_POST_VARS[$field] = strip_tags($value); } ?> [/code:1:cb89f14a12] Vic
Link naar reactie
[quote:0ac12d9ec9="bvvelde"]en bij het inlogveld zouden ze een sql query kunnen maken.[/quote:0ac12d9ec9] wel dat hangt er vanaf. als je op deze manier user input in queries behandeld: [code:1:0ac12d9ec9]$sql = "SELECT * FROM users WHERE username = '".$username."'";[/code:1:0ac12d9ec9] waarin username de userinput is, als met trim en vanalles behandeld en er voor zorgt dat alle quotes worden escaped in de userinput ben je al een stuk veiliger. ik meen dat magic quotes gpc standaard aan staat en dus alle quotes uit $_POST en $_GET escaped maar om zeker te zijn kun je een functie zoals deze gebruiken: http://www.php.net/get-magic-quotes-gpc#36478
Link naar reactie
Mijn 'opschoonfunctie' <met dank aan Annie>[code:1:21620f4938] function opschonen($variabel) { $variabel = trim($variabel); //spaties verwijderen rechts en links $variabel = quotemeta($variabel); //quotes omzetten $variabel = addslashes($variabel); //slashes toevoegen $variabel = htmlspecialchars($variabel); //html filteren return $variabel; }[/code:1:21620f4938]
Link naar reactie
[quote:6dbc40a001="Jakobvk"]@johnny: correct me if im wrong maar als magic quotes gpc aan staat en de gebruiker als invoer iets met quotes invoerd wordt t dubbel ge-escaped... magic quotes in PHP zijn een vrij irritant en hopelijk doen ze er nog eens een keer wat aan :([/quote:6dbc40a001]Je bedoelt dat PHP automatisch " toevoegd? Maar staat dat standaard ook aan??
Link naar reactie
neen dat PHP met magic quotes gpc, die zeker weten aan stond toen ik laats php herinstalleerde, automatisch een " veranderd in \" [quote:f33c75865b]magic_quotes_gpc boolean Sets the magic_quotes state for GPC (Get/Post/Cookie) operations. When magic_quotes are on, all ' (single-quote), " (double quote), \ (backslash) and NUL's are [b:f33c75865b]escaped with a backslash automatically.[/b:f33c75865b] [/quote:f33c75865b]
Link naar reactie

Om een reactie te plaatsen, moet je eerst inloggen

Gast
Reageer op dit topic

×   Geplakt als verrijkte tekst.   Herstel opmaak

  Er zijn maximaal 75 emoji toegestaan.

×   Je link werd automatisch ingevoegd.   Tonen als normale link

×   Je vorige inhoud werd hersteld.   Leeg de tekstverwerker

×   Je kunt afbeeldingen niet direct plakken. Upload of voeg afbeeldingen vanaf een URL in

×
×
  • Nieuwe aanmaken...