Avatar billede rmk24 Nybegynder
18. maj 2011 - 12:39 Der er 9 kommentarer og
1 løsning

validering hjælp til submit button

har en validering class. men har problemer med at få lavet det sidste. sådan at den tjekker at alt er ok inden submit. nogen der har ideer.  den fungere fint med at den tjekker fornavn og alt det. kun det med submit knappen at den først skal aktiveres når alt er ok. nogen som kender en nem og god løsning

form koden

------
include_once 'classes/class.formvalidering.php';

$kontakt2 = new validering();

echo $kontakt2->formStart("", post, false);
echo $kontakt2->fornavn();
echo $kontakt2->mail();
echo $kontakt2->submit("send");
echo "</form>";

------

VALIDERINGS KODEN

--------
class validering{

    public function __construct(){}


    public function formStart($action, $method, $isFile=true){
        if($isFile == true){
            $res = "<form action='$action' method='$method' enctype='multipart/form-data'>";
        }
        else{
            $res = "<form action='$action' method='$method'>";
        }
        echo $res;
    }

    //Efternavn

    public function efternavn(){

        if (isset($_POST['efternavn'])) {
            if(empty($_POST['efternavn'])){

                $name=false;
                $msg=" &larr; Skriv dit efternavn";
            }else {
                $name=true;
            }
        ?>
        <input class="felt" type="text" name="efternavn" value="<?php echo $_POST['efternavn'];?>" /> <span class="fail"><?php echo $msg; ?></span><br />
        <?php

        } else {
            ?>
            <input class="felt" type="text" name="efternavn" value="<?php echo $_POST['efternavn'];?>" /><br />
            <?php
        }
    }

    //fornavn
   
    public function fornavn(){

        if (isset($_POST['fornavn'])) {
            if(empty($_POST['fornavn'])){

                $fornavn=false;
                $messagefornavn=" &larr; Skriv dit fornavn";
            }else {
                $fornavn=true;
            }
        ?>
        <input class="felt" type="text" name="fornavn" value="<?php echo $_POST['fornavn'];?>" /> <span class="fail"><?php echo  $messagefornavn; ?></span><br />
        <?php

        } else {
            ?>
            <input class="felt" type="text" name="fornavn" value="<?php echo $_POST['fornavn'];?>" /><br />
            <?php
        }
    }
   
    //brugernavn
   
    public function brugernavn(){

        if (isset($_POST['brugernavn'])) {
            if(empty($_POST['brugernavn'])){

                $fornavn=false;
                $msg=" &larr; Skriv dit brugernavn";
            }else {
                $fornavn=true;
            }
        ?>
        <input class="felt" type="text" name="brugernavn" value="<?php echo $_POST['brugernavn'];?>" /> <span class="fail"><?php echo  $msg; ?></span><br />
        <?php

        } else {
            ?>
            <input class="felt" type="text" name="brugernavn" value="<?php echo $_POST['brugernavn'];?>" /><br />
            <?php
        }
    }

    //email
    public function mail() {
        if (isset($_POST['mail'])) {
            $regexp="/^[a-z0-9]+([_\\.-][a-z0-9]+)*@([a-z0-9]+([\.-][a-z0-9]+)*)+\\.[a-z]{2,}$/i";
            if ( !preg_match($regexp, $_POST['mail']) ) {
                $messageemail = " &larr; Din mail er ikke korrekt";
                $mail = false;
            }else{
                $mail = true;
            }
            ?>
        <input class="felt" type="text" name="mail" value="<?php echo $_POST['mail'];?>" /> <span class="fail"><?php echo $messageemail; ?></span><br />
        <?php
        } else {
      ?>
            <input class="felt" type="text" name="mail" value="<?php echo $_POST['mail'];?>" /><br />
            <?php
        }
    }



    //submit

    public function submit($value){       
           
        ?> <input type="submit" value="<? echo $value ?>" name="submit" /> <?php
    }






}

-------
Avatar billede danco Nybegynder
18. maj 2011 - 23:31 #1
Ja, det bør på ingen måde laves i PHP.
Du kan ikke teste på om data er korrekt før submit med PHP. Hvis du vil lave testen inden der submittes bør du lave det med JavaScript i stedet.
I PHP kan så lave test for om data er gyldig. Det vil dog kun være nødvendig hvis du har behov for at teste op i mod eksisterende data.

Kig eventuelt på nedenstående link. Der har jeg lavet en funktion i javascript der tester for om alle felter er udfyldt og om email feltet er fyldt ud med en email.

http://www.allround-fotograf.dk/contact.php

Du er velkommen til at kigge i kildekoden som inspiration.
Avatar billede rmk24 Nybegynder
19. maj 2011 - 09:57 #2
jamen man kan jo slå javascript fra. har altid fået at vide at man aldrig må lave det med javascript. da dette kan slåes fra i browseren
Avatar billede danco Nybegynder
19. maj 2011 - 10:07 #3
Jeg tror det kommer an på til hvilket formål du skal bruge det.
Den måde som jeg bruger det på er for at øge brugervenligheden på sitet, og ja så kan brugeren slå JS fra men så afskærer de sig også muligheden for at blive betjent bedst mulig. Og med det argument alene kan man så også sige, så burde man slet ikke bruge JS på sine sider, det er noget frygteligt vrøvl i min verden.
Avatar billede rmk24 Nybegynder
19. maj 2011 - 10:13 #4
altså det er jo for at have noget sikkerhed især når det omhandler ting der skal sættes ind i databaser og lign. der dur javascript altså ikke. men kender du en måde man måske kunne lave noget i php hvor den tjekker
Avatar billede danco Nybegynder
19. maj 2011 - 14:05 #5
Nej men javascript dur til samme formål som du laver med PHP. Du tester udelukkende på om feltet er udfyldt og jeg kan ikke se pointen i at udføre det tjek serverside når muligheden ligger clientside.
Når du nævner sikkerhedsformål hvad mener du så?
Er det udelukkende feltet er udfyldt eller handler det om sikring med SQL injections osv?
Avatar billede rmk24 Nybegynder
19. maj 2011 - 14:16 #6
det er for at sikre mod bla. injections og lign. og at det er udfyldt rigtigt.

hvordan ville du gøre det med javascript til den submit button som måske vil virke. fatter hat af javascript må jeg sige. kunne måske kører det sammen på en måde
Avatar billede danco Nybegynder
19. maj 2011 - 15:28 #7
Injections ville jeg vælge at sikre imod på serveren (i din PHP kode) men som sagt ville jeg lave det i javascript om felterne er udfyldt. Du kan evt. kigge på javascript der ligger på siden jeg tidligere har linket til i tråden.
PHP har sin prædefineret metode mysql_real_escape_string som kan sikre mod injections så denne ville jeg bruge hvis jeg var dig, der er jo ingen grund til at lave noget selv som allerede findes tilgængelig i sproget.
Avatar billede rmk24 Nybegynder
19. maj 2011 - 16:45 #8
rigtigt nok. men den tjekker så også alt andet. feks om mail er korrekt og sådan. og vælger javascript fra som sikker da det kan slåes fra
Avatar billede rmk24 Nybegynder
19. maj 2011 - 16:45 #9
men takker for ideerne
Avatar billede rmk24 Nybegynder
30. maj 2011 - 13:21 #10
lukket
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