Avatar billede hmortensen Nybegynder
25. maj 2003 - 21:46 Der er 4 kommentarer og
1 løsning

Oversæt fra asp til php

En som lige kan oversætte det her volapyk til regulær dansk(php) ?

Har selv prøvet, men der er nogle funktioner fra asp jeg fatter hat af.

<%
'Rutinen der tjekker om CPR nummeret er gyldigt.
function cprOK(cpr)
if len(cpr) = 10 then
a = mid(cpr, 1, 1)
b = mid(cpr, 2, 1)
c = mid(cpr, 3, 1)
d = mid(cpr, 4, 1)
e = mid(cpr, 5, 1)
f = mid(cpr, 6, 1)
g = mid(cpr, 7, 1)
h = mid(cpr, 8, 1)
i = mid(cpr, 9, 1)
j = mid(cpr, 10, 1)
if ((4*a + 3*b + 2*c + 7*d + 6*e + 5*f + 4*g + 3*h + 2*i + j) mod 11 = 0) then
cprOK = true
else
cprOK = false
end if
else
cprOK = false
end if
end function

'Testprogram
if (cprOk("1710819999")) then
response.write("Gyldigt")
else
response.write("IKKE Gyldigt")
end if
%>
Avatar billede jakoba Nybegynder
25. maj 2003 - 22:16 #1
len(cpr)  svarer til  strlen( $cpr )
mid(cpr, 1, 1)  svarer til substr( $cpr, 1, 1 )
  men bemærk at det nu bør være substr( $cpr, 0, 1 ) da php indexering starter ved 0, og ikke ved 1 som i VBscript.

if ( betingelse ) then
    sætninger
else
    sætninger
end if

svarer til:

if ( betingelse ) {
    sætninger
} else {
    sætninger
}

mvh JakobA
Avatar billede hmortensen Nybegynder
26. maj 2003 - 17:23 #2
nu er jeg fremme i det her:

function cpr($cpr) {
if (strlen($cpr) = 10)
{
$a = substr( $cpr, 0, 1 )
$b = substr( $cpr, 1, 1 )
$c = substr( $cpr, 2, 1 )
$d = substr( $cpr, 3, 1 )
$e = substr( $cpr, 4, 1 )
$f = substr( $cpr, 5, 1 )
$g = substr( $cpr, 6, 1 )
$h = substr( $cpr, 7, 1 )
$i = substr( $cpr, 8, 1 )
$j = substr( $cpr, 9, 1 )

((4*$a + 3*$b + 2*$c + 7*$d + 6*$e + 5*$f + 4*$g + 3*$h + 2*$i + $j) mod 11 = 0)
} else {
echo "Ugyldigt cpr nr";
}
}

men forstår det stadig ikke helt.

hvad med  mod 11 = 0 ?
Avatar billede jakoba Nybegynder
26. maj 2003 - 17:48 #3
Ups ja det er en sidste forskel php bruger == til sammenligning. VBscript bruger et enkelt =
og modolo division udføres med tegnet %
Jeg tror nok (men er ikke sikker på) at resultatet af den sammenligning skal returneres:

  return ((4*$a + 3*$b + 2*$c + 7*$d + 6*$e + 5*$f + 4*$g + 3*$h + 2*$i + $j) % 11 == 0)

og efter linien
    echo "Ugyldigt cpr nr";
skal der så tilføjes en return false linie:
    return false;    // check gik galt. ikke et gyldigt cpr-nr

mvh JakobA
Avatar billede jakoba Nybegynder
26. maj 2003 - 17:52 #4
Ups. nej der tog jeg fejl udtrukke skal ikke returneres. det er jo betingelse i en if sætning.

if ((4*a + 3*b + 2*c + 7*d + 6*e + 5*f + 4*g + 3*h + 2*i + j) mod 11 = 0) then
cprOK = true
else
cprOK = false
end if

bliver til:
if ((4*a + 3*b + 2*c + 7*d + 6*e + 5*f + 4*g + 3*h + 2*i + j) % 11 == 0) {
    cprOK = true;
} else {
    cprOK = false;
}

og php KRÆVER ; efter hver sætning, det gør VBscript vist ikke
$a = substr( $cpr, 0, 1 );            // tilføj semikolonner
Avatar billede hmortensen Nybegynder
26. maj 2003 - 18:45 #5
Så fik jeg det til at lykkedes. tak for hjælpen.
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