Avatar billede martindyhl Nybegynder
11. august 2005 - 14:12 Der er 38 kommentarer og
1 løsning

Upload til database med AspSmartUpload

Jeg har en Access-database med felterne:

id (Autonummerering)
overskrift (Tekst)
filename (Tekst)
beskrivelse (Notat)
brugerid (Tal)

Så har jeg en formularside (formular.asp):

<HTML>
<BODY>

<FORM METHOD="POST" ACTION="upload.asp" ENCTYPE="multipart/form-data">
  <p>
  <input type="hidden" name="brugerid" size="20" value="<%=Request.QueryString("brugerid")%>"><br>
  <input type="TEXT" name="overskrift" size="20"><br>
  <INPUT TYPE="FILE" NAME="fil" SIZE="50"><br>
    <textarea rows="2" name="beskrivelse" cols="20"></textarea><BR>
  <INPUT TYPE="SUBMIT" VALUE="Upload">
</p>
</FORM>

</BODY>
</HTML>

og en upload side, som formularen sender til (upload.asp):

<HTML>
<BODY>

<%
'  Variables
'  *********
  Dim mySmartUpload
  Dim file
  Dim oConn
  Dim oRs
  Dim intCount
  intCount=0
       
'  Object creation
'  ***************
  Set mySmartUpload = Server.CreateObject("aspSmartUpload.SmartUpload")

  MySmartUpload.AllowedFilesList = "jpg,gif,txt,doc,xls,pdf"

'  Upload
'  ******
  mySmartUpload.Upload

'  Connect to the DB
'  *****************
  Set oConn = Server.CreateObject("ADODB.Connection")
  curDir = Server.MapPath("filer.mdb")
  oConn.Open "DBQ="& curDir &";Driver={Microsoft Access Driver (*.mdb)};DriverId=25;FIL=MS Access;"

'  Open a recordset
'  ****************
  strSQL = "SELECT * FROM filer"

  Set oRs = Server.CreateObject("ADODB.recordset")
  Set oRs.ActiveConnection = oConn
  oRs.Source = strSQL
  oRs.LockType = 3
  oRs.Open

'  Select each file
'  ****************
  For each file In mySmartUpload.Files
  '  Only if the file exist
  '  **********************
      If not file.IsMissing Then

      '  Add the current file in a DB field
      '  **********************************
        oRs.AddNew
        file.SaveAs Server.Mappath("" & file.FileName)
        oRs("FILENAME") = "" & file.FileName
        oRs.Update
        intCount = intCount + 1
      End If
  Next

'  Display the number of files uploaded
'  ************************************
  Response.Write("Filen er upload'et.<BR>")

'  Destruction
'  ***********
  oRs.Close
  oConn.Close
  Set oRs = Nothing
  Set oConn = Nothing
%>
</BODY>
</HTML>

Jeg skal have formularfelterne til at blive gemt i databasen, så værdien i overskrift-feltet ryger ind i kolonnen overskrift i databasen osv...

Derudover skal jeg på en eller anden må have upload.asp til at omdøbe filen, så den enten får samme id som posten i databasen.

Noget der har styr på det og tid til at hjælpe???
Avatar billede busschou Praktikant
11. august 2005 - 14:32 #1
jeg ville nok gøre noget ala
----
<%
  Dim mySmartUpload,file,oConn,oRs,nummer
     
  Set mySmartUpload = Server.CreateObject("aspSmartUpload.SmartUpload")
  MySmartUpload.AllowedFilesList = "jpg,gif,txt,doc,xls,pdf"
  mySmartUpload.Upload

  Set oConn = Server.CreateObject("ADODB.Connection")
  curDir = Server.MapPath("filer.mdb")
  oConn.Open "DBQ="& curDir &";Driver={Microsoft Access Driver (*.mdb)};DriverId=25;FIL=MS Access;"

  Set oRs = oConn.Execute("SELECT Max(id) FROM filer")
  nummer = oRs(0)

  For each file In mySmartUpload.Files
      If not file.IsMissing Then
        file.SaveAs Server.Mappath("" & nummer & "." & file.FileExt)
        oConn.Execute("Update filer Set brugerid = "&MySmartUpload.form("brugerid")&", overskrift = '"&MySmartUpload.form("overskrift")&"', beskrivelse = '"&MySmartUpload.form("beskrivelse")&"', filnavn = '"&nummer&"."&file.FileExt&"'")
        nummer = nummer + 1
      End If
  Next

  oRs.Close
  oConn.Close
  Set oRs = Nothing
  Set oConn = Nothing
%>
-----
Måden hvorpå du giver dem et nummer kommer så an på om andre bruger databasen
I mit eksempel her kræver det at andre ikke opdaterer den samtidig for at det bliver unik
Avatar billede busschou Praktikant
11. august 2005 - 14:33 #2
hov denne linje
---
file.SaveAs Server.Mappath("" & nummer & "." & file.FileExt)
---
Det er den som gemmer filen, men man kan jo ikke benytte mappath på et nummer som ikke eksisterer  ;o)
Så det skal rettes til
---
file.SaveAs Server.Mappath("din_sti") & "/" & nummer & "." & file.FileExt)
---
altså så du får stien med :o)
Avatar billede busschou Praktikant
11. august 2005 - 14:35 #3
hmm det er muligt der er flere slåfejl
Men det vigtige når du benytter en multi form er at du ikke benytter request.form når du skal hente data fra formen, men derimod benytter dit upload objekt
Avatar billede martindyhl Nybegynder
11. august 2005 - 14:40 #4
Jeg kan ikke lige få det til at fungere... Skal det her nummer være et felt???
Avatar billede busschou Praktikant
11. august 2005 - 14:44 #5
nej nummer er jo ikke et felt, nummer er det navn du ville give filen
Synes du skrev det skulle svare til id´et i databasen
Derfor har jeg hevet nummer ud som det største id i databasen
filnavnet blivet så lavet som "nummer.fileExt" altså nummeret, et punktum, og endelsen :o)
Jeg kan se jeg har kludret i den og lavet en update, det skal jo være en insert, tsk tsk

Anyways regnede med du havde et felt i databasen som hed "filnavn"
Avatar billede busschou Praktikant
11. august 2005 - 14:46 #6
<%
  Dim mySmartUpload,file,oConn,oRs,nummer
   
  Set mySmartUpload = Server.CreateObject("aspSmartUpload.SmartUpload")
  MySmartUpload.AllowedFilesList = "jpg,gif,txt,doc,xls,pdf"
  mySmartUpload.Upload

  Set oConn = Server.CreateObject("ADODB.Connection")
  curDir = Server.MapPath("filer.mdb")
  oConn.Open "DBQ="& curDir &";Driver={Microsoft Access Driver (*.mdb)};DriverId=25;FIL=MS Access;"

  Set oRs = oConn.Execute("SELECT Max(id) FROM filer")
  nummer = oRs(0)+1

  For each file In mySmartUpload.Files
      If not file.IsMissing Then
        file.SaveAs Server.Mappath("din_sti") &"/" & nummer & "." & file.FileExt
        oConn.Execute("Insert Into filer Set (brugerid, overskrift, beskrivelse, filnavn) values ("&MySmartUpload.form("brugerid")&",'"&MySmartUpload.form("overskrift")&"','"&MySmartUpload.form("beskrivelse")&"','"&nummer&"."&file.FileExt&"'")
        nummer = nummer + 1
      End If
  Next

  oRs.Close
  oConn.Close
  Set oRs = Nothing
  Set oConn = Nothing
%>
Avatar billede busschou Praktikant
11. august 2005 - 14:46 #7
jeg bliver ved, der skal så ikke stå "Set" i en "insert" , sorry..... doh
Avatar billede martindyhl Nybegynder
11. august 2005 - 14:52 #8
Jeg har et felt til filnavnet, for at gøre forvirringen total, hedder det FILENAME...
Jeg har rettet til insert

Det ser pt. sådan ud:

<HTML>
<BODY>

<%
  Dim mySmartUpload,file,oConn,oRs,nummer
     
  Set mySmartUpload = Server.CreateObject("aspSmartUpload.SmartUpload")
  MySmartUpload.AllowedFilesList = "jpg,gif,txt,doc,xls,pdf"
  mySmartUpload.Upload

  Set oConn = Server.CreateObject("ADODB.Connection")
  curDir = Server.MapPath("filer.mdb")
  oConn.Open "DBQ="& curDir &";Driver={Microsoft Access Driver (*.mdb)};DriverId=25;FIL=MS Access;"

  Set oRs = oConn.Execute("SELECT Max(id) FROM filer")
  nummer = oRs(0)

  For each file In mySmartUpload.Files
      If not file.IsMissing Then
        file.SaveAs Server.Mappath("") & "" & nummer & "." & file.FileExt)
        oConn.Execute("Insert filer Set brugerid = "&MySmartUpload.form("brugerid")&", overskrift = '"&MySmartUpload.form("overskrift")&"', beskrivelse = '"&MySmartUpload.form("beskrivelse")&"', filename = '"&nummer&"."&file.FileExt&"'")
        nummer = nummer + 1
      End If
  Next

  oRs.Close
  oConn.Close
  Set oRs = Nothing
  Set oConn = Nothing
%>
</BODY>
</HTML>
Avatar billede busschou Praktikant
11. august 2005 - 14:55 #9
kan man godt bare sige server.mappath uden noget?, jeg er ikke sikker men måske :o)
Men du skal lige fjerne "Set" fra insert statementet
Avatar billede martindyhl Nybegynder
11. august 2005 - 15:01 #10
Nu ser det sådan her ud:

<HTML>
<BODY>

<%
  Dim mySmartUpload,file,oConn,oRs,nummer
     
  Set mySmartUpload = Server.CreateObject("aspSmartUpload.SmartUpload")
  MySmartUpload.AllowedFilesList = "jpg,gif,txt,doc,xls,pdf"
  mySmartUpload.Upload

  Set oConn = Server.CreateObject("ADODB.Connection")
  curDir = Server.MapPath("filer.mdb")
  oConn.Open "DBQ="& curDir &";Driver={Microsoft Access Driver (*.mdb)};DriverId=25;FIL=MS Access;"

  Set oRs = oConn.Execute("SELECT Max(id) FROM filer")
  nummer = oRs(0)

  For each file In mySmartUpload.Files
      If not file.IsMissing Then
        file.SaveAs Server.Mappath("/aspsmartupload") & "/" & nummer & "." & file.FileExt
        oConn.Execute("Insert filer brugerid = "&MySmartUpload.form("brugerid")&", overskrift = '"&MySmartUpload.form("overskrift")&"', beskrivelse = '"&MySmartUpload.form("beskrivelse")&"', filename = '"&nummer&"."&file.FileExt&"'")
        nummer = nummer + 1
      End If
  Next

  oRs.Close
  oConn.Close
  Set oRs = Nothing
  Set oConn = Nothing
%>
</BODY>
</HTML>

Har rettet server.mappath, men får denne fejlmeddelelse:

Microsoft VBScript compilation error '800a0401'

Expected end of statement

/aspSmartUpload/upload.asp, line 20

file.SaveAs Server.Mappath("/aspsmartupload") & "/" & nummer & "." & file.FileExt)
---------------------------------------------------------------------------------^

Ellers har jeg bare fået en 500-fejl...
Avatar billede busschou Praktikant
11. august 2005 - 15:02 #11
du har en højre parantes for meget efter FileExt som skal væk
Avatar billede martindyhl Nybegynder
11. august 2005 - 15:09 #12
Det mente jeg også, men nu ryger den bare på 500-fejl igen...
Avatar billede martindyhl Nybegynder
11. august 2005 - 15:14 #13
Det virker slet ikke som om den vil noget som helst lige nu... Jeg har kunne uploade tidligere, men det er som om skriverettighederne til mapperne er forsvundet, også er det vel næsten umuligt at fortsætte... Må jeg skrive igen i morgen, så tjekker jeg lige op på rettighederne imens???
Avatar billede busschou Praktikant
12. august 2005 - 01:58 #14
ja skriv du bare :o), har været ude så ser det først nu
Din 500 fejl får du sikkert i IE
Gå op i funktioner >> internetinstilinger >> avanceret >> og fjern fluebenet i noget ala "vis http fejl som uskadelige"
Så får du en mere rigtig fejlmeddelelse som kan benyttes til debug
Avatar billede martindyhl Nybegynder
12. august 2005 - 09:01 #15
Ok... Der skal være en fejl i denne linie, jeg er bare ikke helt med på hvad det er:

file.SaveAs Server.Mappath("\aspSmartUpload\upload") & "/" & nummer & "." & file.FileExt

Server.MapPath() error 'ASP 0172 : 80004005'

Invalid Path

/aspSmartUpload/upload.asp, line 20

The Path parameter for the MapPath method must be a virtual path. A physical path was used.
Avatar billede busschou Praktikant
12. august 2005 - 09:03 #16
ja ok, du skal enten benytte / eller ingen :o)
prøv
file.SaveAs Server.Mappath("/aspSmartUpload/upload") & "/" & nummer & "." & file.FileExt
Avatar billede martindyhl Nybegynder
12. august 2005 - 09:11 #17
Når det er rettet, så får jeg dette:

aspSmartUpload.File error '80040460'

Unable to save file (Error 1120)

/aspSmartUpload/upload.asp, line 20
Avatar billede busschou Praktikant
12. august 2005 - 09:18 #18
det kan jo så skyldes to ting, enten så har du ikke skrive rettigheder til mappen
Eller også har jeg husket forkert og du skal måske ikke have den første slash
prøv med
file.SaveAs Server.Mappath("/aspSmartUpload/upload") & nummer & "." & file.FileExt

Du kan også prøve at tilføje følgende linjer som bør fange fejl og så kan udskrive din sti så du kan se om den er som du regner med
---
If Err Then
  Response.Write "fejl: "&Err.description&"<br>"
  Response.write "sti og filnavn: "&Server.Mappath("/aspSmartUpload/upload") & "/" & nummer & "." & file.FileExt
End If
Avatar billede martindyhl Nybegynder
12. august 2005 - 09:20 #19
Jeg tror det er de skriverettigheder der er problemer med... Jeg har lavet det om til en anden mappe, også får jeg dette:

Microsoft OLE DB Provider for ODBC Drivers error '80040e14'

[Microsoft][ODBC Microsoft Access Driver] Syntax error in INSERT INTO statement.

/aspSmartUpload/upload.asp, line 21

Line 21:

        oConn.Execute("Insert filer brugerid = " & mySmartUpload.form("brugerid") & ", overskrift = '" & mySmartUpload.form("overskrift") & "', beskrivelse = '" & mySmartUpload.form("beskrivelse") & "', filename = '" & nummer & "." & file.FileExt & "'")
Avatar billede busschou Praktikant
12. august 2005 - 09:31 #20
prøv lave den om til
---
sql = "Insert filer brugerid = " & mySmartUpload.form("brugerid") & ", overskrift = '" & mySmartUpload.form("overskrift") & "', beskrivelse = '" & mySmartUpload.form("beskrivelse") & "', filename = '" & nummer & "." & file.FileExt & "'"
oConn.Execute(sql)
---
og så lave sådan et error tjek som i min sidste kommentar hvor du laver en response.write sql , så kan vi se hvad der står i den :o)
Avatar billede busschou Praktikant
12. august 2005 - 09:32 #21
ahh den er helt gal
Avatar billede busschou Praktikant
12. august 2005 - 09:33 #22
Insert Into filer (brugerid, overskrift, beskrivelse, filename) Values ("&mySmartUpload.form("brugerid")& ",'" & mySmartUpload.form("overskrift") & "','" & mySmartUpload.form("beskrivelse") & "','" & nummer & "." & file.FileExt & "'"
)
Avatar billede martindyhl Nybegynder
12. august 2005 - 09:37 #23
Microsoft VBScript compilation error '800a0401'

Expected end of statement

/aspSmartUpload/upload.asp, line 26

sql = Insert Into filer (brugerid, overskrift, beskrivelse, filename) Values ("&mySmartUpload.form("brugerid")& ",'" & mySmartUpload.form("overskrift") & "','" & mySmartUpload.form("beskrivelse") & "','" & nummer & "." & file.FileExt & "'")oConn.Execute(sql)
-------------^
Avatar billede martindyhl Nybegynder
12. august 2005 - 09:37 #24
Pilen er på Into
Avatar billede busschou Praktikant
12. august 2005 - 09:44 #25
der skal gåseøjne omkring strenge :o)
---
sql = "Insert Into filer (brugerid, overskrift, beskrivelse, filename) Values ("&mySmartUpload.form("brugerid")& ",'" & mySmartUpload.form("overskrift") & "','" & mySmartUpload.form("beskrivelse") & "','" & nummer & "." & file.FileExt & "')"
oConn.Execute(sql)
Avatar billede martindyhl Nybegynder
12. august 2005 - 09:50 #26
Nu er den der næsten... Der bliver sendt og uploadet, men filerne får forkerte navne... Den første, som blev lagt op har id 11, men fik intet filnavn... Anden upload fik navn 11, men har id 12...
Avatar billede busschou Praktikant
12. august 2005 - 09:53 #27
hvordan ser det hele ud for dig nu ?
Avatar billede martindyhl Nybegynder
12. august 2005 - 10:41 #28
<HTML>
<BODY>

<%
  Dim mySmartUpload,file,oConn,oRs,nummer
     
  Set mySmartUpload = Server.CreateObject("aspSmartUpload.SmartUpload")
  mySmartUpload.AllowedFilesList = "jpg,gif,txt,doc,xls,pdf"
  mySmartUpload.Upload

  Set oConn = Server.CreateObject("ADODB.Connection")
  curDir = Server.MapPath("filer.mdb")
  oConn.Open "DBQ="& curDir &";Driver={Microsoft Access Driver (*.mdb)};DriverId=25;FIL=MS Access;"

  Set oRs = oConn.Execute("SELECT Max(id) FROM filer")
  nummer = oRs(0)

  For each file In mySmartUpload.Files
      If not file.IsMissing Then
        file.SaveAs Server.Mappath("\aspSmartUpload") & "\" & nummer & "." & file.FileExt
sql = "Insert Into filer (brugerid, overskrift, beskrivelse, filename) Values ("&mySmartUpload.form("brugerid")& ",'" & mySmartUpload.form("overskrift") & "','" & mySmartUpload.form("beskrivelse") & "','" & nummer & "." & file.FileExt & "')"
oConn.Execute(sql)
        nummer = nummer + 1
      End If
  Next

  oRs.Close
  oConn.Close
  Set oRs = Nothing
  Set oConn = Nothing
%>
</BODY>
</HTML>
Avatar billede busschou Praktikant
12. august 2005 - 10:49 #29
prøv rette
nummer = oRs(0)
til
nummer = oRs(0) + 1
Avatar billede martindyhl Nybegynder
12. august 2005 - 10:54 #30
Nu har den første fil intet navn, men den findes... Det næste filnavn er 2...

Kan det ikke have noget at gøre med, at den første post i basen jo har nogen post før sig, som den kan hente id'et fra og plusse med 1???
Avatar billede busschou Praktikant
12. august 2005 - 11:07 #31
Du kan prøve sådan her istedet, det er nok mere sikkert på at få det rigtige id
---
<%
  Dim mySmartUpload,file,oConn,oRs,nummer
     
  Set mySmartUpload = Server.CreateObject("aspSmartUpload.SmartUpload")
  mySmartUpload.AllowedFilesList = "jpg,gif,txt,doc,xls,pdf"
  mySmartUpload.Upload

  Set oConn = Server.CreateObject("ADODB.Connection")
  curDir = Server.MapPath("filer.mdb")
  oConn.Open "DBQ="& curDir &";Driver={Microsoft Access Driver (*.mdb)};DriverId=25;FIL=MS Access;"

  For each file In mySmartUpload.Files
      If not file.IsMissing Then
        file.SaveAs Server.Mappath("\aspSmartUpload") & "\" & nummer & "." & file.FileExt
        sql = "Insert Into filer (brugerid, overskrift, beskrivelse) Values ("&mySmartUpload.form("brugerid")& ",'" & mySmartUpload.form("overskrift") & "')"
        oConn.Execute(sql)
        set rs = oConn.Execute("Select @@IDENTITY AS NewID")
        nytId = rs("NewID")
        oConn.Execute("Update filer Set filename = '" & mySmartUpload.form("beskrivelse") & "','" & nytId & "." & file.FileExt & "' Where id = "&nytId)
      End If
  Next

  oRs.Close
  oConn.Close
  Set oRs = Nothing
  Set oConn = Nothing
%>
Avatar billede busschou Praktikant
12. august 2005 - 11:08 #32
@@Identity burde gerne give det sidst indsatte id
Avatar billede martindyhl Nybegynder
12. august 2005 - 11:19 #33
Har været nødt til at lave lidt om... Den kunne ikke lide, at du åbnede tre felter, men kun brugte to Insert Into filer (brugerid, overskrift, beskrivelse)... Men den siger, at der mangler noget efter Next???

Microsoft VBScript runtime error '800a01a8'

Object required: ''

/aspSmartUpload/upload.asp, line 26

Koden:
<%
  Dim mySmartUpload,file,oConn,oRs,nummer
     
  Set mySmartUpload = Server.CreateObject("aspSmartUpload.SmartUpload")
  mySmartUpload.AllowedFilesList = "jpg,gif,txt,doc,xls,pdf"
  mySmartUpload.Upload

  Set oConn = Server.CreateObject("ADODB.Connection")
  curDir = Server.MapPath("filer.mdb")
  oConn.Open "DBQ="& curDir &";Driver={Microsoft Access Driver (*.mdb)};DriverId=25;FIL=MS Access;"

  For each file In mySmartUpload.Files
      If not file.IsMissing Then
        file.SaveAs Server.Mappath("\aspSmartUpload") & "\" & nummer & "." & file.FileExt
        sql = "Insert Into filer (brugerid, overskrift, beskrivelse) Values ("&mySmartUpload.form("brugerid")& ",'" & mySmartUpload.form("overskrift") & "','" & mySmartUpload.form("beskrivelse") & "')"
        oConn.Execute(sql)
        set rs = oConn.Execute("Select @@IDENTITY AS NewID")
        nytId = rs("NewID")
        oConn.Execute("Update filer Set filename = '" & nytId & "." & file.FileExt & "' Where id = "&nytId)
      End If
  Next

  oRs.Close
  oConn.Close
  Set oRs = Nothing
  Set oConn = Nothing
%>
Avatar billede busschou Praktikant
12. august 2005 - 11:24 #34
argh, jeg fik lavet en mega copy paste fejl kan jeg godt se
Men jeg tror du  har rettet det ok
Kan det passe linje 26 er omkring oRs.Close?
jeg er kommet til at skrive
---
set rs = oConn.Execute("Select @@IDENTITY AS NewID")
nytId = rs("NewID")
---
istedet for
---
set oRs = oConn.Execute("Select @@IDENTITY AS NewID")
nytId = oRs("NewID")
Avatar billede martindyhl Nybegynder
12. august 2005 - 11:31 #35
Ok... Nu giver den rigtigt id som filnavn - i databasen... Filerne bliver gemt uden navn, så de f.eks. bare hedder ".gif" - Hver gang man uploader en ny fil, erstatter den den tidligere fil med samme navn... De skulle helst have samme navn som id'et i databasen..?
Avatar billede busschou Praktikant
12. august 2005 - 11:36 #36
ahh ja ok
Damn, tror jeg sover her til formiddag, undskylder :o)
Der skal rykkes rundt
---
For each file In mySmartUpload.Files
      If not file.IsMissing Then
        sql = "Insert Into filer (brugerid, overskrift, beskrivelse) Values ("&mySmartUpload.form("brugerid")& ",'" & mySmartUpload.form("overskrift") & "','" & mySmartUpload.form("beskrivelse") & "')"
        oConn.Execute(sql)
        set rs = oConn.Execute("Select @@IDENTITY AS NewID")
        nytId = rs("NewID")
        oConn.Execute("Update filer Set filename = '" & nytId & "." & file.FileExt & "' Where id = "&nytId)
        file.SaveAs Server.Mappath("\aspSmartUpload") & "\" & nytId & "." & file.FileExt
      End If
  Next
Avatar billede busschou Praktikant
12. august 2005 - 11:37 #37
og det var så copy paste af dit sidste indlæg, så der skal det igen være oRs i stedet for rs
Avatar billede martindyhl Nybegynder
12. august 2005 - 11:49 #38
Så kører det... Tusind tak for hjælpen... Må nok hellere smide lidt point oven i nu jeg har taget så meget af din tid...

Får jeg et svar..?
Avatar billede busschou Praktikant
12. august 2005 - 11:53 #39
det gør du i hvert fald, undskyld de sidste svipsere
Godt det virker :o)
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