Databashantering‎ > ‎php‎ > ‎

Kontrollera längden på input med en funktion

Istället för att skriva mängder av if-satser för att kontrollera längden på texten som man får från ett formulär kan man skiva en generell funktion för att utföra detta. Funktionen kan givetvis läggas i ett separat dokument och inkluderas vid behov.
I exemplet nedanför ligger funktionen i samma dokument.

validering_exempel.php

<?php
//evalueringsfunktion
function evaluate($var$label$min$max){
    
$err "";
    if(
strlen($var) == 0){
        
$err "$label har inget värde<br />";
    }
    else if(
strlen($var) < $min){
        
$err .= "$label är för kort (ska vara mellan $min och $max tecken)<br />";
    }
    else if(
strlen($var) > $max){
        
$err "$label är för lång (ska vara mellan $min och $max tecken)<br />";
    }

    return 
$err;
}

//om formuläret är skickat går vi vidare
if(isset($_POST['skicka'])){
    
//tar emot POST-variabler
    
$namn $_POST['namn'];
    
$adress $_POST['adress'];
    
$mail $_POST['mail'];
    
    
//anropar evaluering av fälten
    
$error ="";
    
$error .= evaluate($namn"Namn"230); //namn ska vara mellan 2 och 30 tecken
    
$error .= evaluate($adress"Adress"235); //adress ska vara mellan 2 och 35 tecken
    
$error .= evaluate($mail"Mail"440); //Mail ska vara mellan 4 och 40 tecken
    
    //alla evalueringar returnerade tomt kan vi gå vidare
    
if(empty($error)){
        
//sätt in i databasen
        
echo "<p style='color:green'> $namn är nu i databasen</p>";    
    }else{
        echo 
"<p style='color:red'>Följande är fel:<br /> $error</p>";
    }
}
?>

<form action="exempel.php" method="post">
    Namn:<input type="text" name="namn" /><br />
    Adress:<input type="text" name="adress" /><br />
    Mail:<input type="text" name="mail" /><br />
    <input type="submit" name="skicka" value="skicka">
</form>


Comments