Avatar billede kbs2 Nybegynder
24. september 2005 - 23:22 Der er 25 kommentarer

hjælp til at finde fejlen.

Hej

Jeg havde en egentlig lavet en side, hvor man som bruger kunne indtaste sine data, og disse røg så ind i databasen. desværre er der en fejl, da systemet ved indtasning af apostrof går ned.

Jeg har derfor fået hjælp af en her fra eksperten. Desværre står jeg og skla have rettet fejlen til mandag.

Derfor vil jeg høre om nogen kan fortælle mig hvor fejlen/ene er i følgende kode

på forhånd tak

<%
if request ("mode") = "opret" then

  OpenConn("database.mdb")
  Dim Com, Rec
  Set Com = Server.CreateObject("ADODB.Command")
  Set Rec = Server.CreateObject("ADODB.RecordSet")
  Com.ActiveConnection = Conn

  Com.CommandText = "SELECT TOP 1 navn FROM guestbook"

  Rec.Open Com, , 3, 3
  Rec.AddNew

  Rec("navn") = request("navn")
 

  Rec.Update
    Conn.Close
  Rec.Close
 
  Set Conn = Nothing
  Set Com = Nothing
  Set Rec = Nothing

  Besked = "<font size=2>Vi har modtaget din tilmelding. Du vil høre fra os snarest</font>"
     
end if
%>
<html>
<head>
<title>Tilmeldingsformular</title>
<link rel="stylesheet" type="text/css" href="file:///W|/html/general/styles.css">

</head>
<body bgcolor="white">
<p class="ny_broed">
  <% = besked %>
  <% = besked2 %>
  <% if request ("mode") = "" then %>
</p>
<p class="broed">Velkommen til MBTI tilmelding</p>
<p class="broed">Indtast venligst dine data i nedenst&aring;ende formular. <br>
  <br>
  Felter med * skal udfyldes
</p>
<form action="formular.asp" name=action METHOD="post">

  <p>
  <input type="hidden" Name="Mode" Value="opret">
  <input type="hidden" Name="guest_id" Value="<% = Request("guest_id")%>">
 
  <span class="menu">Fornavn: </span><br>
  <INPUT type="text" name=navn>
  <span class="style1">*</span><br>   
  <br>
    <input type="Submit" Value="Send" name=Submit1>
    <input type="Reset" Value="Slet" name=Reset1>
    <br>
  </p>
  </form>
<% End If


%>


</body>
</html>
Avatar billede softspot Forsker
24. september 2005 - 23:30 #1
Hvilken linie komer der fejl i (og hvordan ser koden i den linie ud)?

Typisk er det når man sammensætter strenge med SQL at dette er et problem, men det eneste sted jeg kan se at der skulle være et problem er

Rec("navn") = request("navn")

som skulle være

Rec("navn") = Replace(request("navn"), "'", "''")

men det virker bare lidt mærkeligt hvis det er der...
Avatar billede kbs2 Nybegynder
24. september 2005 - 23:45 #2
Får faktisk ikke nogen fejlmeddelse, den skriver blot at siden ikke er fundet. Tror det er noget med database forbindelsen. Kan det passe?
Avatar billede kbs2 Nybegynder
24. september 2005 - 23:47 #3
jeg bruger normalt denne forbindelse til databasen, som virker på det gamle script.
Men kan det bygges sammen med det nye? og i givet fald hvordan?



dim conn
   
    function OpenConn( DBName )

        Set Conn = Server.CreateObject("ADODB.Connection")
        ODBCpath = left(request.servervariables("PATH_TRANSLATED"), instrrev(request.servervariables("PATH_TRANSLATED"), "\"))
        Conn.Open "DBQ=" & ODBCpath & DBName & ";DefaultDir=" & ODBCpath & ";Driver={Microsoft Access Driver (*.mdb)}"

    end function

    OpenConn("guestbook.mdb")
Avatar billede softspot Forsker
24. september 2005 - 23:52 #4
Hvis det kun er når du indtaster apostrof at det ikke fungerer, så tror jeg du skal prøve det jeg foreslog i første omgang og så se hvilken effekt det giver...
Avatar billede softspot Forsker
24. september 2005 - 23:53 #5
I øvrigt bør du lukke dit recordset INDEN du lukker din forbindelse.
Avatar billede kbs2 Nybegynder
24. september 2005 - 23:56 #6
Hej igen.

Der er kun ved apostrof, men den ovenstående kode virker slet ikke. Den kode jeg normalt som giver fejl ved apostrof er angivet herunder. Jeg har så fået et hint om at jeg skulle ændre koden så den var som ovenstående, men det virker slet ikke.

<html>
<head>
<link href="../../general/styles.css" rel="stylesheet" type="text/css">
<link rel="stylesheet" href="../general/styles.css" type="text/css">
<style>
body
{
    scrollbar-3dlight-color:white;
    scrollbar-arrow-color:black;
scrollbar-base-color:#E2CD97 scrollbar-darkshadow-color:#E2CD97;     scrollbar-face-color:#E2CD97;
    scrollbar-highlight-color:#F7F9F3;
    scrollbar-shadow-color:black;
    color: #F3E5C2;
}
.style1 {color: #000000}
.style2 {color: #333333}
</style>


<SCRIPT LANGUAGE="JavaScript">
<!--

function Checkform(thisform) {
  // Startværdier
  strError = 'Der opstod følgende fejl:\n\n';
  intError = 0;
 
if (thisform.navn.value == "")
  {
  strError = strError + 'navn - Du mangler at indtaste dit navn!\n '
  intError = 1;
  thisform.navn.focus();
  }
  if (thisform.efternavn.value == "")
  {
  strError = strError + 'Efternavn - Du mangler at indtaste dit efternavn\n '
  intError = 1;
  thisform.efternavn.focus();
  } 
 
if (thisform.firmanavn.value == "")
  {
  strError = strError + 'Firmanavn - Du mangler at indtaste dit firmanavn\n '
  intError = 1;
  thisform.firmanavn.focus();
  }
 
    if (thisform.adresse.value == "")
  {
  strError = strError + 'Adresse - Du mangler at indtaste din adresse\n '
  intError = 1;
  thisform.adresse.focus();
  }
    if (thisform.postnr.value == "")
  {
  strError = strError + 'Postnummer - Du mangler at indtaste dit Postnummer\n '
  intError = 1;
  thisform.postnr.focus();
  }
 

if (thisform.email.value == "")
  {
    strError = strError + 'Email - Du mangler at indtaste din email\n '
    intError = 1;
    thisform.email.focus();
  }
 
  if (thisform.kontrol.value == "")
  {
    strError = strError + 'Email - Du mangler at indtaste din email\n '
    intError = 1;
    thisform.email.focus();
  }
 

 
if (intError == 1) {
  alert(strError)
  return false;
  }
}
-->
</SCRIPT>





</head>

<body>




<%
   
    dim conn
   
    function OpenConn( DBName )

        Set Conn = Server.CreateObject("ADODB.Connection")
        ODBCpath = left(request.servervariables("PATH_TRANSLATED"), instrrev(request.servervariables("PATH_TRANSLATED"), "\"))
        Conn.Open "DBQ=" & ODBCpath & DBName & ";DefaultDir=" & ODBCpath & ";Driver={Microsoft Access Driver (*.mdb)}"

    end function

    OpenConn("guestbook.mdb")
   
    if request ("mode") = "opret" then
        SQL = "insert into guestbook (navn, efternavn, bynavn, postnr, comments, email, firmanavn, CVR, adresse, pers1, pers2, kontrol) values ('" & request("navn") & "','" & request("postnr") & "','" & request("bynavn") & "','" & request("efternavn") & "', '" & request("comments") & "', '" & request("email") & "', '" & request("firmanavn") & "', '" & request("CVR") & "', '" & request("adresse") & "', '" & request("pers1") & "', '"& request("pers2") &"', '"& request("kontrol") &"')"
        Conn.execute( SQL )
        Besked = "<font size=2>Tak! Vi har modtaget din tilmelding. Du vil høre fra os snarest</font>"
       
    end if

%>
<html>
<head>
<title>Tilmeldingsformular</title>
<link rel="stylesheet" type="text/css" href="file:///W|/html/general/styles.css">

</head>
<body bgcolor="white">
<p class="ny_broed">
  <% = besked %>
  <% = besked2 %>
  <% if request ("mode") = "" then %>
</p>
<p class="broed">Velkommen til  tilmelding</p>
<p class="broed">Indtast venligst dine data i nedenst&aring;ende formular. <br>
  <br>
  Felter med * skal udfyldes
</p>
<form action="tilmelding2.asp" name=action METHOD="post" ONSUBMIT="return Checkform(this);">

  <p>
  <input type="hidden" Name="Mode" Value="opret">
  <input type="hidden" Name="guest_id" Value="<% = Request("guest_id")%>">
 
  <span class="menu">Fornavn: </span><br>
  <INPUT type="text" name=navn>
  <span class="style1">*</span><br>   
  <br>
 
  <span class="menu">Efternavn : </span><br>
  <input type="text" name=efternavn> 
  <span class="style1"><span class="style2">*
  </span><br>
  <br>
  </span><span class="menu">Firmanavn</span><span class="style1"><br>
  <INPUT name=firmanavn type="text" id="firmanavn">
  *<br>
  <br>
  <span class="menu">CVR</span><br>
  <INPUT name=CVR type="text" id="CVR">
  <br>
  <br>
  </span><span class="menu">Adresse <br>
  </span><span class="style1">
    <INPUT name=adresse type="text" id="adresse">
*  </span></p>
  <table width="50%"  border="0">
    <tr>
      <td width="35%"><span class="menu">Postnr</span>      <input name=postnr type="text" id="postnr" size="4" maxlength="4"> <span class="style1">*
      </span></td>
      <td width="65%"><span class="menu">Bynavn</span>        <input name=bynavn type="text" id="bynavn2">
       
      </td>
    </tr>
  </table>
  <p><span class="menu">E-mail : </span><br>
    <INPUT type="text" name=email>
    <span class="style1">*</span></p>
  <p><span class="menu">Gentag din email adresse til kontrol</span><br>
    <input name=kontrol type="text" id="kontrol" value="" size="40">
    <span class="style1">*</span></p>
  <p>  <span class="menu">Navn p&aring; tilmeldte person 1</span> <br>
    <INPUT name=pers1 type="text" id="pers1" value="" size="40">
    <br>
    <br>
    <span class="menu">Navn p&aring; tilmeldte person 2
    </span><br>
    <INPUT name=pers2 type="text" id="pers2" value="" size="40">
    <br>
    <br>
       
    <span class="menu">Kommentar : </span><br>
    <TEXTAREA rows=4 cols=35 name=comments>
    </TEXTAREA>
  </p>
  <p>    <input type="Submit" Value="Send" name=Submit1>
    <input type="Reset" Value="Slet" name=Reset1>
    <br>
  </p>
</form>

<% End If

Conn.Close
%>



</body>
</html>
Avatar billede softspot Forsker
25. september 2005 - 00:00 #7
Så er det givetvis denne linie du skal ind og arbejde med:

SQL = "insert into guestbook (navn, efternavn, bynavn, postnr, comments, email, firmanavn, CVR, adresse, pers1, pers2, kontrol) values ('" & request("navn") & "','" & request("postnr") & "','" & request("bynavn") & "','" & request("efternavn") & "', '" & request("comments") & "', '" & request("email") & "', '" & request("firmanavn") & "', '" & request("CVR") & "', '" & request("adresse") & "', '" & request("pers1") & "', '"& request("pers2") &"', '"& request("kontrol") &"')"

Jeg vil umiddelbart anbefale dig at lave replace på alle request-variable i denne linie, altså på denne måde:

replace(request("navn"),"'","''")

Det der undrer mig er at du ikke får en fejlside, men det har måske noget med indstillingen af din browser at gøre snarere end det har noget med serveren at gøre... men prøv lige ovenstående i første omgang.
Avatar billede kbs2 Nybegynder
25. september 2005 - 00:05 #8
undskyld jeg er lidt tung at danse med, men skal det så skiftes ud, så det ser sådan ud?


values ('" &  replace request("navn") & "','" & replace request("postnr") & "','" & request("bynavn") &
Avatar billede softspot Forsker
25. september 2005 - 00:08 #9
Nej, sådan:

values ('" &  replace(request("navn"),"'","''") & "','" & replace(request("postnr"),"'","''") & "','" & replace(request("bynavn"),"'","''") &
Avatar billede kbs2 Nybegynder
25. september 2005 - 00:23 #10
Hej igen.

Har nu rette det til, men den går stadig ned ved brug af '(apostrof)
Avatar billede kbs2 Nybegynder
25. september 2005 - 00:24 #11
Microsoft OLE DB Provider for ODBC Drivers error '80040e14'

[Microsoft][ODBC Microsoft Access Driver] Syntax error (missing operator) in query expression ''ggg'','ggg','gg','ggg', ' ggg', 'ggg', 'ggg', 'gg', 'gg', 'ggg', 'gg', 'gg')'.

/mbti05/tilmelding2.asp, line 113
Avatar billede softspot Forsker
25. september 2005 - 00:27 #12
Kan du ikke lige prøve at udskrive den SQL du får genereret og stoppe udførselen af siden inden den bliver kastet i hovedet på databasen (du ved, det der trick med response.write SQL og derefter response.end). Det giver en bedre idé om hvad der kan være galt.
Avatar billede softspot Forsker
25. september 2005 - 00:28 #13
Du må i øvrigt også godt lige smide koden til opbygningen af SQL-sætningen med herind også :)
Avatar billede kbs2 Nybegynder
25. september 2005 - 00:31 #14
øhh er ret ny i asp, koder normalt i php. så skal lige have den uddybet. Kan dog fortælle at data ryger ind i databasen, som de skal, men ved indtastning af ' i et hvilket som helst felt, fejler den.
Avatar billede kbs2 Nybegynder
25. september 2005 - 00:33 #15
du får lige hele koden

<html>
<head>
<link href="../../general/styles.css" rel="stylesheet" type="text/css">
<link rel="stylesheet" href="../general/styles.css" type="text/css">
<style>
body
{
    scrollbar-3dlight-color:white;
    scrollbar-arrow-color:black;
scrollbar-base-color:#E2CD97 scrollbar-darkshadow-color:#E2CD97;     scrollbar-face-color:#E2CD97;
    scrollbar-highlight-color:#F7F9F3;
    scrollbar-shadow-color:black;
    color: #F3E5C2;
}
.style1 {color: #000000}
.style2 {color: #333333}
</style>


<SCRIPT LANGUAGE="JavaScript">
<!--

function Checkform(thisform) {
  // Startværdier
  strError = 'Der opstod følgende fejl:\n\n';
  intError = 0;
 
if (thisform.navn.value == "")
  {
  strError = strError + 'navn - Du mangler at indtaste dit navn!\n '
  intError = 1;
  thisform.navn.focus();
  }
  if (thisform.efternavn.value == "")
  {
  strError = strError + 'Efternavn - Du mangler at indtaste dit efternavn\n '
  intError = 1;
  thisform.efternavn.focus();
  } 
 
if (thisform.firmanavn.value == "")
  {
  strError = strError + 'Firmanavn - Du mangler at indtaste dit firmanavn\n '
  intError = 1;
  thisform.firmanavn.focus();
  }
 
    if (thisform.adresse.value == "")
  {
  strError = strError + 'Adresse - Du mangler at indtaste din adresse\n '
  intError = 1;
  thisform.adresse.focus();
  }
    if (thisform.postnr.value == "")
  {
  strError = strError + 'Postnummer - Du mangler at indtaste dit Postnummer\n '
  intError = 1;
  thisform.postnr.focus();
  }
 

if (thisform.email.value == "")
  {
    strError = strError + 'Email - Du mangler at indtaste din email\n '
    intError = 1;
    thisform.email.focus();
  }
 
  if (thisform.kontrol.value == "")
  {
    strError = strError + 'Email - Du mangler at indtaste din email\n '
    intError = 1;
    thisform.email.focus();
  }
 

 
if (intError == 1) {
  alert(strError)
  return false;
  }
}
-->
</SCRIPT>





</head>

<body>




<%
   
    dim conn
   
    function OpenConn( DBName )

        Set Conn = Server.CreateObject("ADODB.Connection")
        ODBCpath = left(request.servervariables("PATH_TRANSLATED"), instrrev(request.servervariables("PATH_TRANSLATED"), "\"))
        Conn.Open "DBQ=" & ODBCpath & DBName & ";DefaultDir=" & ODBCpath & ";Driver={Microsoft Access Driver (*.mdb)}"

    end function

    OpenConn("guestbook.mdb")
   
    if request ("mode") = "opret" then
        SQL = "insert into guestbook (navn, efternavn, bynavn, postnr, comments, email, firmanavn, CVR, adresse, pers1, pers2, kontrol) values ('" &  replace(request("navn"),"'","''") & "','" & replace(request("efternavn"),"'","''") & "','" & replace(request("bynavn"),"'","''") & "','" & replace(request("postnr"),"'","''") & "','" & replace(request("comments"),"'","''") & "','" & replace(request("email"),"'","''") & "','" & replace(request("firmanavn"),"'","''") & "','" & replace(request("CVR"),"'","''") & "','" & replace(request("adresse"),"'","''") & "','" & replace(request("pers1"),"'","''") & "','" & replace(request("pers2"),"'","''")  & "','" & replace(request("kontrol"),"'","''") & "')"
        Conn.execute( SQL )
        Besked = "<font size=2>Tak! Vi har modtaget din tilmelding. Du vil høre fra os snarest</font>"
       
    end if

%>
<html>
<head>
<title>Tilmeldingsformular</title>
<link rel="stylesheet" type="text/css" href="file:///W|/html/general/styles.css">

</head>
<body bgcolor="white">
<p class="ny_broed">
  <% = besked %>
  <% = besked2 %>
  <% if request ("mode") = "" then %>
</p>
<p class="broed">Velkommen til MBTI tilmelding</p>
<p class="broed">Indtast venligst dine data i nedenst&aring;ende formular. <br>
  <br>
  Felter med * skal udfyldes
</p>
<form action="tilmelding2.asp" name=action METHOD="post" ONSUBMIT="return Checkform(this);">

  <p>
  <input type="hidden" Name="Mode" Value="opret">
  <input type="hidden" Name="guest_id" Value="<% = Request("guest_id")%>">
 
  <span class="menu">Fornavn: </span><br>
  <INPUT type="text" name=navn>
  <span class="style1">*</span><br>   
  <br>
 
  <span class="menu">Efternavn : </span><br>
  <input type="text" name=efternavn> 
  <span class="style1"><span class="style2">*
  </span><br>
  <br>
  </span><span class="menu">Firmanavn</span><span class="style1"><br>
  <INPUT name=firmanavn type="text" id="firmanavn">
  *<br>
  <br>
  <span class="menu">CVR</span><br>
  <INPUT name=CVR type="text" id="CVR">
  <br>
  <br>
  </span><span class="menu">Adresse <br>
  </span><span class="style1">
    <INPUT name=adresse type="text" id="adresse">
*  </span></p>
  <table width="50%"  border="0">
    <tr>
      <td width="35%"><span class="menu">Postnr</span>      <input name=postnr type="text" id="postnr" size="4" maxlength="4"> <span class="style1">*
      </span></td>
      <td width="65%"><span class="menu">Bynavn</span>        <input name=bynavn type="text" id="bynavn2">
       
      </td>
    </tr>
  </table>
  <p><span class="menu">E-mail : </span><br>
    <INPUT type="text" name=email>
    <span class="style1">*</span></p>
  <p><span class="menu">Gentag din email adresse til kontrol</span><br>
    <input name=kontrol type="text" id="kontrol" value="" size="40">
    <span class="style1">*</span></p>
  <p>  <span class="menu">Navn p&aring; tilmeldte person 1</span> <br>
    <INPUT name=pers1 type="text" id="pers1" value="" size="40">
    <br>
    <br>
    <span class="menu">Navn p&aring; tilmeldte person 2
    </span><br>
    <INPUT name=pers2 type="text" id="pers2" value="" size="40">
    <br>
    <br>
       
    <span class="menu">Kommentar : </span><br>
    <TEXTAREA rows=4 cols=35 name=comments>
    </TEXTAREA>
  </p>
  <p>    <input type="Submit" Value="Send" name=Submit1>
    <input type="Reset" Value="Slet" name=Reset1>
    <br>
  </p>
</form>

<% End If

Conn.Close
%>



</body>
</html>
Avatar billede softspot Forsker
25. september 2005 - 00:34 #16
Så vil jeg egentlig bare gerne se koden til opbygningen af SQL-sætningen som den ser ud nu (den der med alle replace'erne).
Avatar billede softspot Forsker
25. september 2005 - 00:35 #17
ok, den var der :)
Avatar billede kbs2 Nybegynder
25. september 2005 - 00:35 #18
if request ("mode") = "opret" then
        SQL = "insert into guestbook (navn, efternavn, bynavn, postnr, comments, email, firmanavn, CVR, adresse, pers1, pers2, kontrol) values ('" &  replace(request("navn"),"'","''") & "','" & replace(request("efternavn"),"'","''") & "','" & replace(request("bynavn"),"'","''") & "','" & replace(request("postnr"),"'","''") & "','" & replace(request("comments"),"'","''") & "','" & replace(request("email"),"'","''") & "','" & replace(request("firmanavn"),"'","''") & "','" & replace(request("CVR"),"'","''") & "','" & replace(request("adresse"),"'","''") & "','" & replace(request("pers1"),"'","''") & "','" & replace(request("pers2"),"'","''")  & "','" & replace(request("kontrol"),"'","''") & "')"
        Conn.execute( SQL )
        Besked = "<font size=2>Tak! Vi har modtaget din tilmelding. Du vil høre fra os snarest</font>"
       
    end if
Avatar billede softspot Forsker
25. september 2005 - 00:47 #19
Jeg plejer gerne (med så lange SQL-sætninger) at bryde dem op, så de er lidt lettere at overskue. Når jeg gør det med din, så ser den i bund og grund helt fin ud (jeg kan i det mindste ikke finde nogle fejl, ifht. min opfattelse af hvad der skal være i den).

SQL = "insert into guestbook " & _
"(navn, efternavn, bynavn, postnr, comments, email, " & _
"firmanavn, CVR, adresse, pers1, pers2, kontrol) " & _
values (" & _
" '" & replace(request("navn"),"'","''") & "'" & _
",'" & replace(request("efternavn"),"'","''") & "'" & _
",'" & replace(request("bynavn"),"'","''") & "'" & _
",'" & replace(request("postnr"),"'","''") & "'" & _
",'" & replace(request("comments"),"'","''") & "'" & _
",'" & replace(request("email"),"'","''") & "'" & _
",'" & replace(request("firmanavn"),"'","''") & "'" & _
",'" & replace(request("CVR"),"'","''") & "'" & _
",'" & replace(request("adresse"),"'","''") & "'" & _
",'" & replace(request("pers1"),"'","''") & "'" & _
",'" & replace(request("pers2"),"'","''")  & "'" & _
",'" & replace(request("kontrol"),"'","''") & "')"

Det næste jeg spekulerer på er om alle felter er tekster eller om der er nogen ind imellem som er numeriske (f.eks. postnr)...?
Avatar billede kbs2 Nybegynder
25. september 2005 - 01:00 #20
ja kan godt se det er lidt mere enkelt på denne måde.
Jeg har ikke nogen felter der er nummeriske.
Avatar billede softspot Forsker
25. september 2005 - 01:06 #21
Det er godt nok spøjst at den fejler. Jeg spekulerede på om det havde noget med din databasedriver at gøre, altså om du skulle prøve at bruge en anden connectionstring...

Med mindre du har andet at give dig til, så vil jeg da foreslå dig at du prøver at udskifte DBQ med DSN i din forbindelse (havde en her forleden for hvem det løste et problem med databasen).
Avatar billede kbs2 Nybegynder
25. september 2005 - 01:10 #22
er du på i morgen igen?
Avatar billede softspot Forsker
25. september 2005 - 01:19 #23
Mon ikke jeg dukker op på et eller andet tidspunkt :)
Avatar billede kbs2 Nybegynder
25. september 2005 - 01:21 #24
super, så skriver jeg nok i morgen igen, nu vil jeg nemlig i seng ;-) tak for hjælpen
Avatar billede softspot Forsker
25. september 2005 - 01:25 #25
det var så lidt (indtil videre :))
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