Avatar billede JobJog Nybegynder
01. marts 2012 - 13:41 Der er 5 kommentarer og
1 løsning

Count i php ...

Hej, søger lidt hjælp til noget count.
jeg har en index.php hvor jeg har en formular, de indtastede oplysninger bliver så sendt over i en anden php fil hvor jeg køre en validering på om det hele er korrekt udfyldet.
Her vil jeg gerne have en count på, så den kan tælle for hver felt der er fejl eller ikke er blevet udfyldt korrekt. :)
Avatar billede Tokez Nybegynder
01. marts 2012 - 13:48 #1
<?php
$i = 0;

if(condition==false)
{
    $err[$i] = 'fejl meddelelse';
}

?>


<?php

for ($i=0; isset($i) && !empty($i); $i++)
{
    echo $err[$i] . "<br />";
}

?>
Avatar billede Tokez Nybegynder
01. marts 2012 - 13:50 #2
Første stykke her, kan bruges til at lave dine fejl meddelelser,

<?php
$i = 0;

if(condition==false)
{
    $err[$i] = 'fejl meddelelse';
    $i++;
}

?>

Anden del kan bruges til at echo dem

<?php

for ($i=0; isset($i) && !empty($i); $i++)
{
    echo $err[$i] . "<br />";
}

?>

Og så kan du selv tilføje en count af array, hvis du vil tælle hvor mange fejl der er.
Avatar billede JobJog Nybegynder
01. marts 2012 - 18:50 #3
forstår udmærket dit forslag, men kan ikke lige helt se hvordan jeg skal sætte det sammen med mit kode..

jeg har min function her,
her tester jeg kun om mit felt er tomt eller ej.

function InsertUser($fnavn, $enavn, $adr, $post){
    if ($fnavn == "") {
        $errormsg .="Du har glemt at indtaste et Fornavn</br>";
    }
    if ($enavn == "") {
        $errormsg .="Du har glemt at indtaste et Efternavn</br>";
    }
    if ($adr == "") {
        $errormsg .="Du har glemt at indtaste et Adresse</br>";
    }
    if ($post == "") {
        $errormsg .="Du har glemt at indtaste et Post nr</br>";
    }
    return $errormsg;
}
Avatar billede DeeDawg Nybegynder
02. marts 2012 - 03:44 #4
Et svar på dit spørgsmål kunne være

<?php
    function InsertUser($fnavn, $enavn, $adr, $post){
        $i = 0;
        $err = array();
       
        if(empty($fnavn)){
            $err[$i] = "Du har glemt at indtaste et Fornavn";
            $i++;
        }
       
        if(empty($enavn)){
            $err[$i] = "Du har glemt at indtaste et Efternavn";
            $i++;
        }
       
        if(empty($adr)){
            $err[$i] = "Du har glemt at indtaste en Adresse";
            $i++;
        }
       
        if(empty($post)){
            $err[$i] = "Du har glemt at indtaste et Post nr";
            $i++;
        }
       
        return (empty($err) ? true : $err);
    }
   
    $result = InsertUser("Anders", "Andersen", "Æblehaven 31", "1234");
    if(is_array($result)){
        foreach($result as $message){ echo $message."<br />"; }
    } else {
        echo "Ingen fejl";
    }
?>

Men jeg ville nok have gjort således

<?php
    function InsertUser($fnavn, $enavn, $adr, $post){
        $arg_count = func_num_args();
        if($arg_count !== 4){ return false; }
        $args = func_get_args();
       
        $err = array(
            "Du har glemt at indtaste et Fornavn",
            "Du har glemt at indtaste et Efternavn",
            "Du har glemt at indtaste en Adresse",
            "Du har glemt at indtaste et Post nr"
        );
       
        for($i = 0;$i < $arg_count;$i++){
            if(!empty($args[$i])){ unset($err[$i]); }
        }
       
        return (empty($err) ? true : $err);
    }
   
    $result = InsertUser("Anders", "Andersen", "Æblehaven 31", "1234");
    if(!$result){ die("Funktionen blev ikke anvendt korrekt!"); }
    else{
        if(is_array($result)){
            foreach($result as $message){ echo $message."<br />"; }
        } else {
            echo "Ingen fejl";
        }
    }
?>

Eller det ville jeg faktisk ikke. Jeg har en meget mere avanceret og stabil løsning, som jeg kan genbruge igen og igen. Men det er der jo også behov for, på større sites. ;)

Vær dog opmærksom på, at du skal være en del mere kritisk overfor hvadend brugeren indtaster. Det er ikke nok kun at tjekke om feltet er tomt som her, men det er også kun et eksempel. Eventuelle hackere kan gøre meget skade på dit site, specielt hvis denne info skal ind i en database. :)
Avatar billede JobJog Nybegynder
16. marts 2012 - 18:31 #5
DeeDawg kan du ikke komme med et svar så jeg kan lukke tråden
Avatar billede DeeDawg Nybegynder
17. marts 2012 - 11:56 #6
Jo. Håber mit indlæg hjalp dig. :)
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester