veldlengte checken dmv array

Status
Niet open voor verdere reacties.

stevebravo

Gebruiker
Lid geworden
16 jan 2010
Berichten
156
Ik heb een functie gemaakt en een procedure die de veldlengte van een textbox moet controleren..
ik heb daarvoor de volgende code gemaakt.

adduser.php

PHP:
<?php

if (isset($_POST["submit"]))

{
		$veldlengte = array('nieuwgebruikersnaam' => 30,'nieuwwachtwoord' => 30);
		$errors = controleer_lengte_velden($veldlengte);

}
?>

functie:
PHP:
<?php
function controleer_lengte_velden($lengte_array){
	$veld_errors = array();
		foreach($lengte_array as $veldnaam => $maxlengte )
			{
				if(strlen(trim($_POST[$veldnaam])) > $maxlengte)
				{
					$veld_errors[] = $veldnaam;
				}
			}
		return $veld_errors;
}
?>

als ik meer dan 30 karakters invult.. stopt deze hem nog steeds in de database..
waar doe ik iets verkeerd?

trouwens.. ik gebruik dit om de array op errors te checken...
PHP:
<?php if (!empty($errors)) { echo "er is een error"; } ?>

Ik merk dat hij de strlen alleen wel gebruikt.. het heeft iets te maken met de combinatie trim...
 
Laatst bewerkt door een moderator:
Ik betwijfel of ie de $_POST-variabelen wel kan benaderen.
Kwestie van debug-output gaan maken binnen de functie...
PHP:
<?php
function controleer_lengte_velden($lengte_array){
  echo '<pre>';
  $veld_errors = array();
  foreach($lengte_array as $veldnaam => $maxlengte ) {
    echo $veldnaam .' => '. $maxlengte .'<br />';
    echo $_POST[$veldnaam] .' > '. $maxlengte .'<br />';
    if(strlen(trim($_POST[$veldnaam])) > $maxlengte) {
      $veld_errors[] = $veldnaam;
    }
  }
  return $veld_errors;
  print_r($veld_errors);
  echo '</pre>';
}
?>
Daarnaast zou ik je aanraden dit te gebruiken om een formulier-zending te controleren:
PHP:
if($_SERVER['REQUEST_METHOD'] == "POST") {
  print_r($_POST);
} else {
 // Formuliertje
}
 
als ik trim weglaat doet de functie het gewoon..
het heeft iets met de toewijzing van trim in strle te maken..
 
Je echo't wel netjes een error, maar ik zie nergens dat je de database query overslaat in dat geval... dus zal die gewoon uitgevoerd worden.
 
En wat was dat kleins? :)

Dan heeft een ander er wellicht ook nog wat aan ;)
 
nou.. ik weet niet of de vraag al opgelost was op het moment dat ik de vraag stelde :D :D
het enige wat ik gewijzigd heb is een spatie ( strle en bij minlengte )
maar dat zal het wel niet geweest kunnen zijn..
Het punt is dat ik namelijk een functie in een functie had.. maar die functie had ik niet afgerond.. daarom zat deze functie te borken.. kan je het nog volgen? ;)
 
Ja hoor, je was dus een functie aan het declareren binnen een functie.

Dat gaat inderdaad niet werken, echter konden wij dat natuurlijk nooit weten.
Dit kwam in de gegeven code niet naar voren ;)
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan