Avatar billede foxmulder58 Praktikant
05. september 2005 - 19:58 Der er 22 kommentarer og
1 løsning

Formular validering med Modus11

Hej allesammen!


Jeg vil gerne have lavet en tilmeldingsside om således den bruger PHP (istedet for som nu at gøre v.h.a. JavaScript).


Formularen er eksempelvis den du du finder her på siden:

https://www.netau.dk/tilmelding_ai.htm


Jeg kunne godt tænke mig hjælp til at få valideret CPR NR samt at kunne videresende de informationer som brugeren indtaster i formularen.


Jeg ved dog ikke om det er muligt v.h.a PHP at validere et givent CPR nr?.



PS! kan godt bruge en eventuel tutorial.



mvh
Mads
Avatar billede nielle Nybegynder
05. september 2005 - 20:08 #1
function gyldig($cpr)
{
if ((4*$cpr[0]
  + 3*$cpr[1]
  + 2*$cpr[2]
  + 7*$cpr[3]
  + 6*$cpr[4]
  + 5*$cpr[5]
  + 4*$cpr[6]
  + 3*$cpr[7]
  + 2*$cpr[8]
  + 1*$cpr[9]) % 11 == 0) return 1;
else return 0;
}

$gyldig = gyldig(\"1205702323\"); // returnerer 0 = ikke gyldig
Avatar billede nielle Nybegynder
05. september 2005 - 20:10 #2
Lidt pænere version:

function gyldigCPR($cpr)
{
    return ((4*$cpr[0] + 3*$cpr[1] + 2*$cpr[2] + 7*$cpr[3] + 6*$cpr[4] + 5*$cpr[5] + 4*$cpr[6] + 3*$cpr[7] + 2*$cpr[8] + 1*$cpr[9]) % 11 == 0) ? true : false;
}

$gyldig = gyldig(\"1205702323\"); // returnerer 0 = ikke gyldig
Avatar billede foxmulder58 Praktikant
05. september 2005 - 20:24 #3
Bygger lige formularen og vender tilbage til dig, er det ok nielle?

mvh
mads
Avatar billede nielle Nybegynder
05. september 2005 - 20:33 #4
Ja-ja, fint :^)
Avatar billede foxmulder58 Praktikant
05. september 2005 - 22:56 #5
Nielle >> det bliver vist imorgen håber måske du kan hjælpe med hele formularen? 

håber du er frisk på den!

vi ses jo nok her imorgen!


mvh
Mads
Avatar billede nielle Nybegynder
05. september 2005 - 23:05 #6
I morgen så... :^)
Avatar billede foxmulder58 Praktikant
06. september 2005 - 18:46 #7
Arbejder stadig på formularen i det den gerne skal være i smaspil med mit CMS!.

Jeg giver ldy så snart jeg er klar!

men du må gerne smide et svar med det samme hvis du vil nielle!

mvh
Mads
Avatar billede nielle Nybegynder
06. september 2005 - 21:20 #8
Skal vi ikke bare vente med point til at du rent faktisk har set løsningen køre?
Avatar billede foxmulder58 Praktikant
11. september 2005 - 14:15 #9
Tja Nielle så har jeg pillet JavaScripten ud af dokumentet, kan man validere denne side i PHP ville det bare være kanon!:


<--------------------------- tilmelding.php------------------------------------>

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN""http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<title> Tilmelding Netbaseret akademi Uddannelse</title>
</head>
<body>



<table width="405" height="245" border="1" cellpadding="2" align="center" bordercolorlight="#C0C0C0">
    <tr>
      <td>&nbsp;</td>
      <td bgcolor="silver"><h3 align="center"><span class="unnamed1">Tilmelding
          Netbaseret Akademi Uddannelse 2005</span></h3></td>
    </tr>
    <tr>
      <td>Cpr.nr.: </td>
      <td bgcolor="silver"><input type="text" size="11" name="Cprnr">
        <font color="#FF0000">* (XXXXXX-XXXX)</font></td>
    </tr>
    <tr>
      <td>Efternavn: </td>
      <td bgcolor="silver"> <input type="text" size="35" name="Efternavn"> <font color="#FF0000">*</font></td>
    </tr>
    <tr>
      <td>Fornavn: </td>
      <td bgcolor="silver"> <input type="text" size="35" name="Fornavn"> <font color="#FF0000">*</font></td>
    </tr>
    <tr>
      <td>Adresse:</td>
      <td bgcolor="silver"> <input type="text" size="35" name="Adresse"> <font color="#FF0000">
        *</font></td>
    </tr>
    <tr>
      <td>Postnr: </td>
      <td bgcolor="silver"> <input type="text" size="10" maxlenght="10" name="Postnr">
        <font color="#FF0000">*</font> By:
        <input type="text" size="25" name="By"> <font color="#FF0000">*</font></td>
    </tr>
    <tr>
      <td>Firma: </td>
      <td bgcolor="silver"> <input type="text" size="35" name="Firma"></td>
    </tr>
    <tr>
      <td height="29">Telefon: </td>
      <td bgcolor="silver" height="29"> Privat
        <input type="text" size="12" name="Telfpriv">
        Firma
        <input type="text" size="12" name="Telffirma"></td>
    </tr>
    <tr>
      <td height="28">E-mail: </td>
      <td bgcolor="silver" height="28"> <input type="text" size="35" name="Email">
        <font color="#FF0000">*</font></td>
    </tr>
    <tr>
      <td height="28" colspan="2"><div align="center">
          <input type="hidden" name="Betaler" value="Hvis anden part skal betale for kurser">
          Betaler (udfyldes hvis anden part skal betale for kurser)</div></td>
    </tr>
    <tr>
      <td height="13">Firma</td>
      <td height="13" bgcolor="silver"><input type="text" size="35" name="Firmanavn"></td>
    </tr>
    <tr>
      <td height="13">CVR nr. </td>
      <td height="13" bgcolor="silver"><input type="text" size="20" name="CVRnr"></td>
    </tr>
    <tr>
      <td height="28">Adresse:</td>
      <td bgcolor="silver" height="28"><input type="text" size="35" name="Firmaadresse"></td>
    </tr>
    <tr>
      <td height="28">Postnr:</td>
      <td bgcolor="silver" height="28"><input type="text" size="10" maxlenght="10" name="Postnummer">
        &nbsp;&nbsp;By:
        <input type="text" size="25" name="By2"></td>
    </tr>
  </table>
  <br/>
  <table width="405" border="1" align="center" cellpadding="2">
    <tr>
      <td height="28">Nyhedsbrev:</td>
      <td>Jeg &oslash;nsker at modtage jeres nyhedsbrev
        <select size=1 name=Nyhedsbrev>
          <option value=Nej>Nej
          <option value=Ja selected>Ja</option>
        </select></td>
    </tr>
    <tr>
      <td width="72" height="28">&nbsp;</td>
      <td width="321"><font color="#FF0000" size="2">De med * markerede felter
        skal udfyldes</font></td>
    </tr>
  </table>
  <br/>
  <table border="1" width="405" bgcolor="white" align="center">
    <tr height="15">
      <td width="46%" height="23"><strong>1. del.</strong></td>
      <td align="center" width="25%"> <center>
          Start sep. 2005
</td>
      <td align="center" width="14%">Kursuspris</td>
    </tr>
    <tr align="left" height="19">
      <td width="46%">Organisation </td>
      <td align="center" width="25%" bgcolor="silver"> <input onclick="" type="checkbox" name="Fag" value="Organisation"  id="org_sep05">
      </td>
      <td align="center" width="14%">kr 3.350</td>
    </tr>
    <tr align="left" height="19">
      <td width="46%">Afs&aelig;tning</td>
      <td align="center" width="25%" bgcolor="silver"> <input onclick="" type="checkbox" name="Fag" value="Afsætning"  id="afsaetning_sep05">
      </td>
      <td align="center" width="14%">kr 3.350</td>
    </tr>
    <tr align="left" height="19">
      <td width="46%">Global kommunikation</td>
      <td align="center" width="25%" bgcolor="silver"> <input type="checkbox" name="Fag" value="Global kommunikation"  id="global_komm"></td>
      <td align="center" width="14%">kr 3.350</td>
    </tr>
    <tr align="left" height="19">
      <td width="46%">Global &oslash;konomi</td>
      <td align="center" width="25%" bgcolor="silver"> <input onclick="" type="checkbox" name="Fag" value="Global økonomi"  id="global_okonomi_sep05">
      <td align="center" width="14%">kr 3.350</td>
    </tr>
    <tr align="left" height="19">
      <td>Viden og forandring</td>
      <td align="center" bgcolor="silver"> <input onclick="" type="checkbox" name="Fag" value="Viden og forandring"  id="viden_forandring">
      <td align="center">kr 3.350</td>
    </tr>
    <tr align="left" height="19">
      <td width="46%">IT og kommunikation (obligatorisk)</td>
      <td align="center" width="25%" bgcolor="silver"> <input onclick="" type="checkbox" name="Fag" value="IT og kommunikation"  id="it_komm_sep05">
      </td>
      <td align="center" width="14%">kr 3.350</td>
    </tr>
  </table>
  <br/>
  <table border="1" width="405" bgcolor="white" align="center">
      <tr>
        <td width="46%"><strong>2. del</strong></td>
        <td align="center" width="25%"> <center>
            Start sep. 2005
</td>
        <td align="center" width="14%">Kursuspris</td>
      </tr>
      <tr align="left">
        <td>Virksomhedskommunikation (obligatorisk)</td>
        <td align="center" bgcolor="silver"><input type="checkbox" name="Fag" value="virksomhedskommunikation_sep05"  id="virksomhedskommunikation">
        </td>
        <td align="center">kr 3.350</td>
      </tr>
      <tr align="left">
        <td>Specialeforl&oslash;b</td>
        <td align="center" bgcolor="silver"><input type="checkbox" name="Fag" value="Speciale forløb"  id="speciale_forloeb"></td>
        <td align="center">kr. 5.000 </td>
      </tr>
      <tr align="left">
        <td>Afsluttende eksamensprojekt</td>
        <td align="center" bgcolor="silver"><input type="checkbox" name="Fag" value="Afsluttende eksamensprojekt"  id="afsluttende_projekt">
        </td>
        <td align="center">kr. 5.000 </td>
      </tr>
    </table>
    <br/>
    <center>
    <select size=1 name=Mundtlig_eksamen style="display:inline;">
        <option value="Eksamensted fastlægges af sekretariatet">Eksamensted og dato fastlægges af sekretariatet</option>
      </select>
      </center>
<----------------------------------------------------------------------------->




Håber du kan hjælpe!



mvh
Mads
Avatar billede foxmulder58 Praktikant
12. september 2005 - 18:53 #10
Hej Nielle,

Har du stadig mod på at hjælpe mig?  ;]


mvh
Mads
Avatar billede nielle Nybegynder
12. september 2005 - 20:05 #11
Selvfølgeligt har jeg lyst - det er imidlertid ikke altid at jeg lige har tid.

Lad os se...

For det første skal det hele jo pakkes ind i en form, ellers bliver der jo ikke sendt noget:

<form action="modtageForm.php" method="post">
...
<input type="text" size="11" name="Cprnr"><font color="#FF0000">* (XXXXXX-XXXX)</font>
....
<input type="submit" name="submitKnap" value="Tilmeld">
</form>


Dernæst skal form-data jo modtages et sten - her i scriptet modtageForm.php. Det er så her at valideringen skal foretages.

Da jeg har valgt method="post", får værdien i CPR-feltet via $_POST["Cprnr"].

Den formel jeg har angivet fro modulus-11, går ud fra at CPR-nummeret skrives i et. Du jar imidlertid valgt at der skal være en bindestreg. så den m¨der jo tages højde for. Det kan se sådan her ud:

if (isset($_POST["submitKnap"]))
{
    $CPR = $_POST["Cprnr"];

    if ((4*$CPR[0] + 3*$CPR[1] + 2*$CPR[2] + 7*$CPR[3] + 6*$CPR[4] + 5*$CPR[5] + 4*$CPR[7] + 3*$CPR[8] + 2*$CPR[9] + 1*$CPR[10]) % 11 == 0)
        echo "CPR nummeret er et lovligt CPR nummer.";
    else
        echo "CPR nummeret er ikke et lovligt CPR nummer.";
}

Læg mærke til at index 6, bindestregen, er sprunget over.
Avatar billede foxmulder58 Praktikant
12. september 2005 - 22:55 #12
cool det kigger jeg på....

mvh
Mads
Avatar billede foxmulder58 Praktikant
13. september 2005 - 22:59 #13
Jo det ser fint ud. Findes der en simpel metode i PHP til at tage alle indtastninger i formularer og vise dem i et nyt browser vindue og dernæst klikke "send" således disse datte bliver sendt til en email adresse?


mvh
Mads
Avatar billede nielle Nybegynder
13. september 2005 - 23:05 #14
Hvis du vil springe det mellemliggende billede over og gå direkte fra form til mail så findes der masser af muligheder:

http://www.google.dk/search?hl=da&q=PHP+formmail&btnG=Google-s%C3%B8gning&meta=
Avatar billede foxmulder58 Praktikant
15. september 2005 - 09:14 #15
Hvad mener du med at "hvis jeg vil spirnge det mellemliggende billede over" ?


mvh
Mads
Avatar billede nielle Nybegynder
15. september 2005 - 17:28 #16
Findes der en simpel metode i PHP til at tage alle indtastninger i formularer og vise dem i ****et nyt browser vindue**** og dernæst klikke "send" således disse datte bliver sendt til en email adresse?

Det trin jeg har afmærket - dit mellemliggende billede - er kun med til at gøre det mere besværligt. Der findes masser af løsninger som modtager input direkte fra en form som submittes og så mailer det til en given email adreses.
Avatar billede foxmulder58 Praktikant
16. september 2005 - 09:27 #17
ja det er rigtigt, men formularen skal vise et billede hvor brugeren kan se en sine indtastninger inden han bekræfter. Dette kan spare en masse administrativt arbejde for os. Ellers ringer folk konstant og skal have rettet disse data.


mvh
Mads
Avatar billede nielle Nybegynder
16. september 2005 - 16:39 #18
Det vil de nu alligevel gøre.

Men for nu ar svare på dit spørgsmål; Nej der findes ikke nogen simpel måde at gøre det på - du bliver selv nødt til at kode det meste.
Avatar billede foxmulder58 Praktikant
17. september 2005 - 14:08 #19
Smider du et svar nielle?

mvh
Mads
Avatar billede nielle Nybegynder
17. september 2005 - 17:36 #20
Har du da fået løst det oprindelige problem?
Avatar billede foxmulder58 Praktikant
18. september 2005 - 13:25 #21
Nej ikke endnu men det regner jeg med at jeg gør, du vil da gerne have point nu ikke?


mvh
Mads
Avatar billede nielle Nybegynder
18. september 2005 - 18:55 #22
Ja da, men normalt venter jeg med at smide et svar til at vi er kommet helt i mål. Nu lægger jeg så et svar her, men du kan jo bare spørge vidre hvis du får problemer. :^)

... og et svar :^)
Avatar billede foxmulder58 Praktikant
19. september 2005 - 19:53 #23
Hej Nielle,


Jeg prøver at se om jeg ikke kan strikke en formular sammen fra det materiale og henvisning jeg har fået af dig.


tak for hjælpen skal nok spørge hvis der skulle være noget.


mvh
Mads
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