anoniem Geplaatst: 26 juni 2004 Delen Geplaatst: 26 juni 2004 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 ? Quote Link naar reactie
anoniem Geplaatst: 26 juni 2004 Auteur Delen Geplaatst: 26 juni 2004 Zie: http://forum.computertotaal.nl/phpBB2/viewtopic.php?p=802137 Quote Link naar reactie
anoniem Geplaatst: 26 juni 2004 Auteur Delen Geplaatst: 26 juni 2004 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... Quote Link naar reactie
anoniem Geplaatst: 27 juni 2004 Auteur Delen Geplaatst: 27 juni 2004 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 Quote Link naar reactie
anoniem Geplaatst: 28 juni 2004 Auteur Delen Geplaatst: 28 juni 2004 [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 Quote Link naar reactie
anoniem Geplaatst: 28 juni 2004 Auteur Delen Geplaatst: 28 juni 2004 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] Quote Link naar reactie
anoniem Geplaatst: 28 juni 2004 Auteur Delen Geplaatst: 28 juni 2004 @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 Link naar reactie
anoniem Geplaatst: 29 juni 2004 Auteur Delen Geplaatst: 29 juni 2004 Bedankt, het werkt nu voor zover ik kan nagaan :D . Ja, zelf ben ik net begonnen om php een beetje te leren kennen en ik snap ook nog niet veel van dat quote gedoe. De ene keer dit en dan weer dat...das toch wel wat anders in pascal ;) Quote Link naar reactie
anoniem Geplaatst: 29 juni 2004 Auteur Delen Geplaatst: 29 juni 2004 [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?? Quote Link naar reactie
anoniem Geplaatst: 1 juli 2004 Auteur Delen Geplaatst: 1 juli 2004 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] Quote Link naar reactie
Aanbevolen berichten
Om een reactie te plaatsen, moet je eerst inloggen