Avatar billede steen_hansen Forsker
02. april 2006 - 17:41 Der er 35 kommentarer og
1 løsning

Problemer med slet bruger

Dette:


<%

    If Request.Form("mode") = "delete" Then

        Conn.Execute "DELETE FROM backendusersitg WHERE username = '" & Request.QueryString("user") & "'"
        Conn.Close

    ElseIf Request.Form("mode") = "cancel" Then

        Response.Redirect "/admin/edituserrights.asp?user=" & Request.QueryString("user")

    End If

%>

<form name="frmDeleteProfile" method="post" action="/admin/showallusers.asp">
    <input type="button" value="Ja, slet denne profil" onclick="if(confirm('Er du sikker på at du vil slette denne profil for altid?')) frmDeleteProfile.mode.value='delete'; frmDeleteProfile.submit();">
</form>


Giver flg. fejl:

Fejl: frmDeleteProfile.mode er nul eller ikke et objekt. Hvorfor kan jeg slette denne bruger? Jeg får bare den lille gule trekant i nederste venstre hjørne med denne fejl.
Avatar billede eagleeye Praktikant
02. april 2006 - 18:22 #1
Så vidt jeg kan se manger der et input felt i formen som skal hedde "mode". Det skal nok være et hidden felt eks:

<input type="hidden" value="cancel" name="mode">


og så igen husk at få overført username via action delen:

<form name="frmDeleteProfile" method="post" action="/admin/showallusers.asp?user=<%=Request.QueryString("user")%>">
Avatar billede steen_hansen Forsker
02. april 2006 - 23:50 #2
Det troede jeg også, og sådan laver jeg det normalt også. Men jeg tror det er denne her, der menes: frmDeleteProfile.mode.value='delete';

Meningen er, at der kommer en msgbox, hvor man bekræfter eller annullerer sletningen af profilen. Det er en kammerat, der lavede det i sin tid. Kan det laves med noget vbYes ....

Hvis du gider at lave noget, hvor det hele slettes fra profilen, pånær ID og username, sætter jeg gerne point op :o)
Avatar billede eagleeye Praktikant
03. april 2006 - 09:56 #3
På den form du har vist i spørgsmålet er der ikke et hidden felt der er kun en knap.
Når man tyrkker på knappen spørger den:

Er du sikker på at du vil slette denne profil for altid?

Så har man mulighed for at tykke på OK/Cancel. Tykkes Ok sætte frmDeleteProfile.mode.value til 'delete', men der er ikke noget felt der hedder mode derfor siger at frmDeleteProfile.mode er null.

din form bør se sådan her:

<form name="frmDeleteProfile" method="post" action="/admin/showallusers.asp?user=<%=Request.QueryString("user")%>">
<input type="hidden" value="cancel" name="mode">
    <input type="button" value="Ja, slet denne profil" onclick="if(confirm('Er du sikker på at du vil slette denne profil for altid?')) frmDeleteProfile.mode.value='delete'; frmDeleteProfile.submit();">
</form>



du endda overvej om knappen ikke kun skal submitte formen hvis man vælger Ok. Så vil knappens kode være:

    <input type="button" value="Ja, slet denne profil" onclick="if(confirm('Er du sikker på at du vil slette denne profil for altid?')) { frmDeleteProfile.mode.value='delete'; frmDeleteProfile.submit();}">




>>Hvis du gider at lave noget, hvor det hele slettes fra profilen, pånær ID og username

Ja (men det bliver ikke før i eftermiddag), har du et felt i user tabell som angiver om en bruger er aktiv eller sletet?
Er der flere tabeller den skal slette fra?
Avatar billede steen_hansen Forsker
03. april 2006 - 10:49 #4
Normalt ville jeg selv lave det på den måde, som det nok er tiltænkt, nemlig med

<%

    If Request.Form("mode") = "deleteuser" Then

        Conn.Execute "DELETE password, middlename, lastname, createinfo .... FROM backendusersitg WHERE username = '" & Request.QueryString("user") & "'"
        Conn.Close

    ElseIf Request.Form("mode") = "cancel" Then

        Response.Redirect "/admin/edituserrights.asp?user=" & Request.QueryString("user")

    End If

%>

<form>
<input type="hidden" name="mode" value="deleteuser">
..........
</form>

------------------------------------------------

Jeg vil gerne lade (f.eks.) det fulde navn, username og ID blive tilbage i DB, fordi man skal kunne se hvem der har skrevet et debatindlæg, hvem der har skrevet en artikel etc. Jeg synes det er noget rod og sjusk, når der f.eks. står "Forfatter: Profil slettet", eller "Indlæg besvaret af: Profil slettet". Så vil jeg hellere have, at der står "Forfatter: Steen Hansen (profil slettet). Man skal kunne se navnet på forfatteren, men man skal heller ikke være i tvivl om, at der er ikke nogen informationer at hente på denne person.

Ja, admin skal kunne deaktivere en bruger. Du ved selv der kan være mange årsager til at man ønsker at deaktivere en person. Sletning og deaktivering af en bruger er stort set det eneste jeg mangler i admin-modulet.

Jeg benytter dolog.asp, som danner cookies, hvis brugeren ønsker at gemme sine logon-informationer. Funktionen indeholder mulighed for få husket user/pwd, at blive logget på automatisk, eller man kan fravælge sig de muligheder og manuelt indtaste sine logon-informationer. Her bør jeg f.eks. kunne tjekke for, om RS("deactivated") = 1. Er det tilfældet, redirectes brugeren til en side (deactivated.asp), hvor der står "Din profil er deaktiveret. Mener du, at dette er en fejl, så send en besked til administrator ......". Samtlige data på brugeren skal blive liggende i DB, men brugeren skal bare ikke have mulighed for at logge ind, hvis vedkommende er deaktiveret.

Den tror jeg ikke volder de store problemer, det har jeg lavet før for et par år tilbage. Problemet lige nu er, at få slettet de unødige oplysninger på en profil, så det ikke fylder unødigt op i DB, men der skal dog ligge et navn tilbage, så man kan se forfatter etc. Og når man ønsker at slette en profil, skal man så lige have den ekstra fortrydelses-mulighed, så man ikke uforvarende får slettet en profil. Jeg har set flere steder, at man får slettet det, som man peger på, uden at få mulighed for at be/afkræfte sletningen. Ikke så smart :o)

Indtil videre er der kun sorteringen af visningen, der også skal slettes fra backendusersid og backendusersascdesc (se http://www.eksperten.dk/spm/696337). Navnene er ikke så gode, de er ikke så sigende. Jeg valgte dem bare lige for at kunne holde dem adskilt fra de andre tabeller i DB :o)

Det var noget af en smøre, men jeg håber du forstår mine intentioner. Når man skærer ind til benet, er der kun 3 faktorer at tage hensyn til:

1. Slet irrelevante oplysninger fra brugeren, når en profil slettes. På den måde har jeg stadig navnet på debatøren/forfatteren etc. Når RS("deleted") = 1, kan man sætte (profil slettet) bagefter.
2. Der skal lige angives en mulighed for at fortryde sletningen af profilen.
3. Der skal selvfølgelig også ryddes op i backendusersid og backendusersascdesc på brugerprofilen. Der er ingen grund til, at unødige data fylder op, så skal de bare slettes.

Point er sat op, håber det er ok :)
Avatar billede eagleeye Praktikant
03. april 2006 - 17:01 #5
Hvis du vil lade fulde navn, username og ID blive tilbage i DB så skal du ikke lave en delete SQL sætning for den sletter hele posten. Så skal du lave en UPDATE SQL og sætte de felter der skal "slettet" til Null som betyder tom.

Så denne:

    If Request.Form("mode") = "deleteuser" Then

        Conn.Execute "DELETE password, middlename, lastname, createinfo .... FROM backendusersitg WHERE username = '" & Request.QueryString("user") & "'"
        Conn.Close


Skal være:

    If Request.Form("mode") = "deleteuser" Then

        Conn.Execute "UPDATE backendusersitg SET password = Null, middlename = Null, lastname = Null, createinfo = NULL WHERE username = '" & Request.QueryString("user") & "'"
        Conn.Close


Hvis du også vil skrive (profil slettet) kunne du havde en kolonne i backendusersitg tabellen som som angiver som profilen er aktiv eller slettet. Så vidt jeg kan se har du kolonnen "deactivated". Den bør også bruges så folk ikke kan logge ind på en slettets bruger profil hvis man sikre sig at det kun er aktive profiler som kan logge ind. Hvis deactivated skal sættes til 1 når en bruger slettes skal sidste SQL udvides:

        Conn.Execute "UPDATE backendusersitg SET password = Null, middlename = Null, lastname = Null, createinfo = NULL, deactivated = 1 WHERE username = '" & Request.QueryString("user") & "'"
Avatar billede eagleeye Praktikant
03. april 2006 - 17:13 #6
Men der skal umiddelbart ikke slettes i den backendusersid og backendusersascdesc tabellerne da de gælder for alle brugerne. Det som er bruger unikt ligger i backendusersitg og der kan de 2 kolonner sættes til null. Du må rette mig hvis jeg tager fejl.


Der var et par kolonner der skulle med: deleted=1 og chooseview, xChooseorder


<%

    If Request.Form("mode") = "deleteuser" Then

        Conn.Execute "UPDATE backendusersitg SET password = Null, middlename = Null, lastname = Null, createinfo = NULL, chooseview = Null, xChooseorder = Null, deactivated = 1, deleted = 1 WHERE username = '" & Request.QueryString("user") & "'"
        Conn.Close

    ElseIf Request.Form("mode") = "cancel" Then

        Response.Redirect "/admin/edituserrights.asp?user=" & Request.QueryString("user")

    End If

%>
Avatar billede steen_hansen Forsker
03. april 2006 - 20:24 #7
eagleeye, jeg tror jeg har sovet i timen, for den visning man skulle kunne sortere, skulle være unik for hver enkelt bruger. Denne funktion kan jo genbruges, og skal også bruges til sortering af f.eks. artikler. Her kommer til at være flere hundrede, og så kan man have behov for at få dem listet efter oprettelsesdato, emne el.lign. Så det skal ikke være én indstilling, der gælder for alle, men en indstilling, som den enkelte bruger kan foretage. Kan vi få rettet det til? Jeg ved jeg snart beder om mere, end man kan sige er rimeligt, men jeg fik desværre ikke testet det af på flere brugerprofiler.

SLUDDER, du har ret, man kan jo bare nulstille chooseview og xChooseorder.

Jeg prøver lige delete-funktionen.
Avatar billede steen_hansen Forsker
03. april 2006 - 20:25 #8
backendusersid og backendusersascdesc indeholder jo bare de muligheder, der er at vælge imellem, så den er god nok. Troede lige hele skidtet skulle til at laves om :)
Avatar billede steen_hansen Forsker
03. april 2006 - 20:54 #9
Forøvrigt, så skal brugeren heller ikke trækkes ud i showallusers.asp (oversigtssiden af brugerne med sorteringen). Men det er vel bare at føje lidt til SQL-forespørgslen ... AND deleted <> 1

Jeg ved ikke hvorfor der ikke slettes noget?

<%

    If Request.Form("mode") = "deleteuser" Then

        Conn.Execute "UPDATE backendusersitg set password = Null, email = Null, firm = Null, jobdescription = Null, phone = Null, showphone = Null, localno = Null, showlocalno = Null, cellphone = Null, showcellphone = Null, lastseen = Null, showlastseen = Null, createuser = Null, deactivateuser = Null, deleteuser = Null, edituser = Null, createinfo = Null, editallinfos = Null, editowninfo = Null, deleteallinfos = Null, deleteowninfo = Null, createtips = Null, editalltips = Null, editowntips = Null, deletealltips = Null, deleteowntips = Null, answerfaq = Null, createpoll = Null, created = Null, lastIP = Null, chooseview = Null, xChooseorder = Null, url = Null, deactivated = 1, deleted = 1 WHERE username = '" & Request.QueryString("user") & "'"
        Conn.Close

    ElseIf Request.Form("mode") = "cancel" Then

        Response.Redirect "/admin/edituserrights.asp?user=" & Request.QueryString("user")

    End If

%>

<form name="frmDeleteProfile" method="post" action="/admin/showallusers.asp">
<input type="hidden" name="mode" value="deleteuser">
    <table class="tablecontent">
        <tr style="height: 22px;">
            <td colspan="2" style="width: 100%; padding: 0px 0px 0px 15px;"><b>SLETTES/DEAKTIVERES</b></td>
        </tr>
        <tr style="height: 22px;">
            <td colspan="2" style="width: 100%; padding: 0px 0px 0px 25px;">
                <%=Server.HTMLEncode(RS("firstname"))%> skal slettes. NB: Denne handling er endegyldig, der er ingen fortrydelsesret.<br><br>
                <input type="submit" value="Annuller" class="input2">
                <input type="button" value="Ja, slet denne profil" onclick="if(confirm('Er du sikker på at du vil slette denne profil for altid?')) { frmDeleteProfile.mode.value='delete'; frmDeleteProfile.submit();}" class="input2">
            </td>
        </tr>
    </table>
</form>
Avatar billede steen_hansen Forsker
03. april 2006 - 20:59 #10
Point, og takker. Håber lige vi kan få rettet det sidste til :o)
Avatar billede eagleeye Praktikant
04. april 2006 - 00:08 #11
I første omgang så prøv at rette:

    If Request.Form("mode") = "deleteuser" Then


Til dette da der overføres "delete" fra formen og ikke "delteuser":


    If Request.Form("mode") = "delete" Then







>>Forrøvrigt, så skal brugeren heller ikke trækkes ud i showallusers.asp
>>(oversigtssiden af brugerne med sorteringen).
>>Men det er vel bare at føje lidt til SQL-forespørgslen ... AND deleted <> 1

Ja det er bare at tilføje det eller..  AND deleted = 0
Hvis kolonnen er sat til 0 for en aktiv bruger
Avatar billede eagleeye Praktikant
04. april 2006 - 00:21 #12
hvis den brokker sig over SQL sætningen så skal du prøve at sætte enten ` hvis du bruger MySQL eller [] for Access omkring ordet password:


        Conn.Execute "UPDATE backendusersitg set `password` = Null, email = Null, firm = Null, jobdescription = Null, phone = Null, showphone = Null, localno = Null, showlocalno = Null, cellphone = Null, showcellphone = Null, lastseen = Null, showlastseen = Null, createuser = Null, deactivateuser = Null, deleteuser = Null, edituser = Null, createinfo = Null, editallinfos = Null, editowninfo = Null, deleteallinfos = Null, deleteowninfo = Null, createtips = Null, editalltips = Null, editowntips = Null, deletealltips = Null, deleteowntips = Null, answerfaq = Null, createpoll = Null, created = Null, lastIP = Null, chooseview = Null, xChooseorder = Null, url = Null, deactivated = 1, deleted = 1 WHERE username = '" & Request.QueryString("user") & "'"
        Conn.Close
Avatar billede steen_hansen Forsker
04. april 2006 - 00:25 #13
Hm? Det er rettet + jeg har også rettet dette:

<input type="hidden" name="mode" value="delete">

Men det virker ikke. Jeg kan virkelig ikke se hvad der skulle hindre UPDATE
Avatar billede steen_hansen Forsker
04. april 2006 - 00:26 #14
Nej, den brokker sig ikke over password, der redirectes bare til showallusers.asp. Men brugeren med alle data er der stadig.
Avatar billede steen_hansen Forsker
04. april 2006 - 00:40 #15
Jeg er træt og på vej i seng. Måske vi kan kigge på det i morgen?
Avatar billede eagleeye Praktikant
04. april 2006 - 21:23 #16
Hvis du siger den redirecter til showall.asp er det så efter update? For umibbelbart er det ikke en redirect efter update.

Jeg ser lige noget der manger også username i form action så prøv at rette:

<form name="frmDeleteProfile" method="post" action="/admin/showallusers.asp">

Til:

<form name="frmDeleteProfile" method="post" action="/admin/showallusers.asp?user=<%=Request.QueryString("user")%>">
Avatar billede steen_hansen Forsker
04. april 2006 - 21:40 #17
Nej, jeg tror jeg har glemt en Response.Redirect

    If Request.Form("mode") = "delete" Then

        Conn.Execute "UPDATE backendusersitg SET password = Null,..... WHERE username = '" & Request.QueryString("user") & "'"
        Conn.Close

    Response.Redirect "/admin/showallusers.asp" 'HAR SAT DENNE LINIE IND

    ElseIf Request.Form("mode") = "cancel" Then

        Response.Redirect "/admin/edituserrights.asp?user=" & Request.QueryString("user")

    End If

%>

<form name="frmDeleteProfile" method="post" action="/admin/edituserrights.asp">
<input type="hidden" name="mode" value="delete">

..........

</form>

Så får jeg "Brugeren eksisterer ikke" frem.
Avatar billede eagleeye Praktikant
04. april 2006 - 21:50 #18
Ok, men prøv som vist i sidste post at hvade user med i action på form tagen altså ret denne linie:

<form name="frmDeleteProfile" method="post" action="/admin/edituserrights.asp">


Til dette så user overføres til delete funktionen:


<form name="frmDeleteProfile" method="post" action="/admin/showallusers.asp?user=<%=Request.QueryString("user")%>">
Avatar billede eagleeye Praktikant
04. april 2006 - 21:51 #19
arh doh. jeg lavede en copy/paste fejl det skulle være ret den til denne ellers passer filnavnet jo ikke.

<form name="frmDeleteProfile" method="post" action="/admin/edituserrights.asp?user=<%=Request.QueryString("user")%>">
Avatar billede steen_hansen Forsker
04. april 2006 - 21:53 #20
Ok, det er prøvet, men så sendes det ikke via UPDATE/DELETE-funktionen, som er i toppen af edituserrights.asp?
Avatar billede eagleeye Praktikant
04. april 2006 - 21:55 #21
Prøv lige at vente
Avatar billede steen_hansen Forsker
04. april 2006 - 21:56 #22
Ok :)
Avatar billede eagleeye Praktikant
04. april 2006 - 21:58 #23
Navnet på den som skal slettes skal sættes ind som vist med ?user=xxxx men spørgsmålet er om det skal være Request.QueryString("user") eller om navnet kommer fra et recordset, hvis man kan vælge et slette en bruger via en lang liste?
Avatar billede eagleeye Praktikant
04. april 2006 - 22:00 #24
Så har du en lang liste som:

brugernavn 1  [slet] [ret]
brugernavn 2  [slet] [ret]
brugernavn 3  [slet] [ret]
brugernavn 4  [slet] [ret]


Er [slet] knappen så den form som er vist 03/04-2006 20:54:03 eller er slet et link til den form?
Avatar billede steen_hansen Forsker
04. april 2006 - 22:09 #25
Jeg har slet-knappen som den fra 03/04-2006 20:54:03.

Jeg har før lavet det på den måde, som du beskriver i 04/04-2006 22:00:01. Men jeg kan ikke finde den liste og den kode, så jeg tog det ovenstående fra et andet script, hvor en bruger kan slette sin egen profil. Vil det være mere hensigtsmæssigt at lave det som vist i 04/04-2006 22:00:01?

Jeg har været væk fra VB-scripting temmelig længe, og når man så ikke lige kan finde det frem, som man ellers har lavet, og som virker fint - ja, så kan man virkelig se hvor rusten man er blevet. Det er faktisk alt hvad jeg laver, som jeg skal have hjælp til igen. Jeg er MEGET glad for din indsats, eagleeye :o)
Avatar billede eagleeye Praktikant
04. april 2006 - 22:20 #26
Hvis du har lavet det på den måde så er det nok et sted hvor du uskriver username noget med:

rs("username")


Så skal det ind i formen:
<form name="frmDeleteProfile" method="post" action="/admin/edituserrights.asp?user=<%=rs("username")%>">


Ligger slet/"update" koden i filen edituserrights.asp eller showall.asp?
Avatar billede steen_hansen Forsker
04. april 2006 - 22:32 #27
Jamen, så virker det, eagle.

<form name="frmDeleteProfile" method="post" action="/admin/showallusers.asp?user=<%=rs("username")%>">

skulle bare rettes til

<form name="frmDeleteProfile" method="post" action="/admin/edituserrights.asp?user=<%=rs("username")%>">

fordi delete/update-funktionen ligger øverst i edituserrights.asp.

Jeg skal så lige rette visningen i showallusers.asp, når man har "slettet" en bruger:

SQL = "SELECT tkn.selectname, tso.ascdesc, chooseview, xChooseorder FROM (backendusersid tkn INNER JOIN backendusersitg ON tkn.selectid = backendusersitg.chooseview) INNER JOIN backendusersascdesc tso ON backendusersitg.xChooseorder = tso.ascdescid WHERE username = '" & SQLEncode(Session("username")) & "'"

Der skal også tilføjes noget WHERE deleted = 1 på en eller anden måde?
Avatar billede steen_hansen Forsker
04. april 2006 - 22:33 #28
WHERE deleted <> 1

kunne jeg tænke mig?
Avatar billede eagleeye Praktikant
04. april 2006 - 22:42 #29
Ja men det er vist ikke den SQL som hente brugerne ud den finder ORDER kolonne + retning (ASC/DESC).

Fra: http://www.eksperten.dk/spm/696337  så er det denne her SQL sætning som henter alle brugerne ud:

SQL = "SELECT userID, username, firstname, middlename, lastname, lastseen, created, chooseview, xChooseorder FROM backendusersitg ORDER BY " & qOrderBy
Set RS = Conn.Execute(SQL)


Så den skal rettes til:

SQL = "SELECT userID, username, firstname, middlename, lastname, lastseen, created, chooseview, xChooseorder FROM backendusersitg WHERE deleted <> 1 ORDER BY " & qOrderBy
Set RS = Conn.Execute(SQL)
Avatar billede steen_hansen Forsker
04. april 2006 - 22:49 #30
Ok, nu er den ved at være der. Men nu forsvandt den brugerprofil, som IKKE er blevet slettet. Når jeg kigger i DB, står der ud for hhv. den ene og den anden profil:

deleted NULL
deleted 1

Men begge er forsvundet fra listen i showallusers.asp :/
Avatar billede eagleeye Praktikant
04. april 2006 - 23:00 #31
ok, det er måske noget med hvordan Null håndteres i databasen. Har du mulighed for at sætte tallet 0 ind i deleted og sætte det defautl til 0?

Du kan prøve at rette SQL sætningen til:

SQL = "SELECT userID, username, firstname, middlename, lastname, lastseen, created, chooseview, xChooseorder FROM backendusersitg WHERE (deleted is null or deleted = 0) ORDER BY " & qOrderBy
Avatar billede steen_hansen Forsker
04. april 2006 - 23:04 #32
Det gjorde tricket, eagleeye. Jeg troede ikke man kunne sætte en parantes rundt om en .... hvad kan man kalde det? Betingelse? :)

Anywho, det VIRKER, og det er FEDT :) Nu håber jeg, at jeg har styr på resten. Ellers kommer jeg med flere spørgsmål :)

Tak for hjælpen. Jeg kan desværre kun give dig maks point. Håber det er ok, for du har godt nok været en stor hjælp :)
Avatar billede steen_hansen Forsker
04. april 2006 - 23:16 #33
Jo, jeg har lige et hurtigt tillægsspørgsmål:

Hvis denne bruger ikke har nået at bidrage med noget som helst, er det jo omsonst at have denne bruger liggende. Så kan den jo bare slettes permanent.

Hvis jeg nu trækker de profiler ud, som er blevet "slettet/opdateret", hvordan sletter jeg dem så permanent?
Avatar billede eagleeye Praktikant
04. april 2006 - 23:23 #34
>> en parantes rundt om en .... hvad kan man kalde det? Betingelse? :)
Jo det kan man og man kan ikke undvære det hvis der mange betingelser på, og man skal huske at AND udføres for OR så det har stor betyding hvor man sætte ()  :)



Hvis de skal slettes dem permanent så skal du faktisk bruge den SQL sætning du viste i sprøgsmåls teksten:

        Conn.Execute "DELETE FROM backendusersitg WHERE username = '" & Request.QueryString("user") & "'"



Den vil slette brugeren helt.
Avatar billede steen_hansen Forsker
04. april 2006 - 23:32 #35
Alle tiders, tak igen-igen :)

Jeg opretter nyt spørgsmål, hvis jeg støder på mere. Men jeg håber jeg har styr på resten. Snakkes :)
Avatar billede steen_hansen Forsker
05. april 2006 - 22:05 #36
eagleeye, jeg ved ikke om det konflikter med reglerne, hvis jeg beder dig kigge på http://www.eksperten.dk/spm/700687. Men du er efterhånden så godt inde i det jeg er i gang med, at du hurtigt kan skaffe dig overblikket. Hvis du har tid og lyst, håber jeg du kigger på det. Hvis ikke, forstår jeg det også godt; du har allerede lavet et stort arbejde :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