Avatar billede stevenizzle Nybegynder
25. august 2005 - 14:44 Der er 7 kommentarer og
1 løsning

Validerings script

Hej Eksperter!

Jeg har et script der paster mine inputfelters indhold til en database

Jeg mangler bare en funktion til at tjekke om inputfelterne nu også er udfyldt
Avatar billede Slettet bruger
25. august 2005 - 14:48 #1
Jeg lavede et form-validering script på en bug-submit form engang.

Den tjekker om ens felter er udfyldt, ikke om det man har udfyldt nu også er rigtigt... hvis der mangler et eller flere felter, stopper den posteringen og viser overskrifterne over de tekstfelter som mangler at blive udfyldt som rødt.

Det er ikke ret kønt, men jeg tror ikke man kan gøre det bedre i PHP - så skal man ud i noget med viewstates og .NET, tror jeg.

I toppen ser du de variabler man sender fra en post form.
De der ".nl()" er fra en funktion defineret andetsteds, der bare smider \n'er i slutningen af strengen.

Men du kan prøve at sætte det ind og se om du får noget ud af det, ellers så skriv.

<?php
function submitBug() {
// A if-echo hell of an redundancy and data keeping form field
    $submit = $_POST['Submit'];
    $package = $_POST['package'];
    $desc = $_POST['desc'];
    $assigned = $_POST['assigned'];
    $person = $_POST['person'];
   
    if ($submit == "Submit") {
        if (($package) && ($desc) && ($assigned) && ($person)) {
            reportBug("projectlist_projects");
        } else {
            echo "<h2>Error, fill out all fields.</h2>";
        }
    }
    $form = '<h1>Submit new idea</h1>'.nl();
    $form .= '<form action="'.$_SERVER['PHP_SELF'].'?state=submit" method="post">'.nl();
    $form .= '<div>'; // XHTML
   
    if (($submit) && (!$package)) {
        $form .= '<span style="color: red; font-weight: bold;">Package:</span> <br />'.nl();
        $form .= '<input type="text" name="package" />'.nl();
    } elseif ($submit) {
        $form .= 'Package: <br />'.nl();
        $form .= '<input type="text" name="package" value="'.$package.'" />'.nl();
    } else {
        $form .= 'Package: <br />'.nl();
        $form .= '<input type="text" name="package" />'.nl();
    }
    $form .= 'Priority: '.nl();
    $form .= '<select name="priority" size="1">'.nl();
    $form .= '<option value="5">5</option>'.nl();
    $form .= '<option value="4">4</option>'.nl();
    $form .= '<option value="3">3</option>'.nl();
    $form .= '<option value="2">2</option>'.nl();
    $form .= '<option value="1" selected="selected">1</option>'.nl();
    $form .= '</select><br />'.nl();
   
    if (($submit) && (!$desc)) {
        $form .= '<span style="color: red; font-weight: bold;">Descrition:</span> <br />'.nl();
        $form .= '<textarea name="desc" cols="60" rows="20"></textarea><br />'.nl();
    } elseif ($submit) {
        $form .= 'Descrition: <br />'.nl();
        $form .= '<textarea name="desc" cols="60" rows="20">'.$desc.'</textarea><br />'.nl();
    } else {
        $form .= 'Descrition: <br />'.nl();
        $form .= '<textarea name="desc" cols="60" rows="20"></textarea><br />'.nl();
    }   
    if (($submit) && (!$assigned)) {
        $form .= '<span style="color: red; font-weight: bold;">Assigned:</span> <br />'.nl();
        $form .= '<input name="assigned" type="text" />'.nl();
    } elseif ($submit) {
        $form .= 'Assigned: <br />'.nl();
        $form .= '<input name="assigned" type="text" value="'.$assigned.'" />'.nl();
    } else {
        $form .= 'Assigned: <br />'.nl();
        $form .= '<input name="assigned" type="text" />'.nl();
    }
    $form .= '<br /><br />'.nl();

    if (($submit) && (!$person)) {
        $form .= '<span style="color: red; font-weight: bold;">Person:</span> <br />'.nl();
        $form .= '<input type="text" name="person" /><br /><br />'.nl();   
    } elseif ($submit) {
        $form .= 'Person: <br />'.nl();
        $form .= '<input type="text" name="person" value="'.$person.'"/><br /><br />'.nl();
    } else {
        $form .= 'Person: <br />'.nl();
        $form .= '<input type="text" name="person" /><br /><br />'.nl();   
    }
    $form .= '<input type="submit" name="Submit" value="Submit" />'.nl();
    $form .= '</div>'; // XHTML
    $form .= '</form>'.nl();
   
    echo $form;
}
?>

--
pacroon
Avatar billede jaw Nybegynder
25. august 2005 - 14:49 #2
En nem én:

$feltNavne = array("navn", "adresse", "mail");
$fejl = 0;
foreach($feltNavne as $v) {
  if(empty($_POST[$v])) {
    $fejl = 1;
  }
}
if($fejl == 1) {
  echo "Et eller flere felter var ikke udfyldt !!";
}
Avatar billede stevenizzle Nybegynder
25. august 2005 - 14:50 #3
troede ikke det var så indviklet

jeg kigger lige på det
Avatar billede jaw Nybegynder
25. august 2005 - 15:16 #4
Behøver det jo heller ikke at være :)
Avatar billede Slettet bruger
25. august 2005 - 15:19 #5
Min fortæller bare lidt mere præcist hvor fejlen er - og så gemmer den det data man har skrevet i de andre felter, så man ikke skal skrive det hele om igen, hvis man har glemt at udfylde et felt.

Men nu ved jeg ikke hvor mange felter du har, og hvor meget du vil holde brugerne i hånden :)
Avatar billede stevenizzle Nybegynder
25. august 2005 - 15:47 #6
Det virker. Tak til jer begge, men jeg brugte pacroons.

Smid et svar pacroon
Avatar billede Slettet bruger
25. august 2005 - 15:48 #7
svar
Avatar billede jaw Nybegynder
25. august 2005 - 15:53 #8
Selv tak...
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
Vi tilbyder markedets bedste kurser inden for webudvikling

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