Avatar billede kennilinux Nybegynder
16. april 2004 - 12:38 Der er 21 kommentarer og
2 løsninger

Mail, opretbruger, database

Hej Experter..

Jeg sidder med et problem..

jeg skal have så når man opretter en bruger. så skal den sende en mail til persoen. med et link i databasen. så han ka artiver hans bruger..
Jeg ved godt hvordan man laver alt det andet. men lige det med at få den til at sende.. det er mit problem.. er der et extension til Dreamweaver MX 2004? eller noget kode..

Jeg Bruger ASP/Access/ODBC/Dreamweaver...

M.V.H kenni
Avatar billede ellebaek Nybegynder
16. april 2004 - 12:47 #1
Hvis du skal sende mails skal du have en komponent installeret..
Du kan her se nogle eksempler på hvordan man sender mails med forskellige komponenter..

http://www.opfinderen.dk/sites/?id=14

Hvis det er din egen server kan du hente fx. Jmail gratis på: www.dimac.com
Avatar billede michael_stim Ekspert
16. april 2004 - 12:47 #2
Du skal have en komponent jmal eller sådan noget. www.dimac.net
Avatar billede michael_stim Ekspert
16. april 2004 - 12:48 #3
Der var du lidt hurtigere ellebaek ;o)
Avatar billede kennilinux Nybegynder
16. april 2004 - 12:53 #4
hmmm den skal gemmedata i en database og sende en mail til brugeren på samme tid. kan man det? med det der jmail?
Avatar billede michael_stim Ekspert
16. april 2004 - 12:58 #5
Selvfölgelig kan man det. Du laver din database kopling og putter data i den, derefter sender du en mail med jmail til brugeren som har ifyldt formuläret.
Der er eksempel og dokumentation på www.dimac.net
Avatar billede ellebaek Nybegynder
16. april 2004 - 13:03 #6
Ja, det kan sagtens lade sig gøre...

Har lige selv leget med et sådant eksempel.

hvis du lige har oprettet en post med en connection til databasen kan du lave en sql der hedder:

SQL = "select * from tabel where id = @@identity" og åbne den med den samme connection som du brugte til at eksekvere sidste sql. Så har du de nyeste informationer i det kald du lige har udført.
Avatar billede michael_stim Ekspert
16. april 2004 - 13:09 #7
Hvorfor ikke bruge den request.form("navn") som han bruger til at sende data til tabellen? Der er et godt formeksempel på deres hjemmeside.
Avatar billede michael_stim Ekspert
16. april 2004 - 13:10 #8
Sorry läste ikke spörgsmålet rigtigt. Uuupps
Avatar billede ellebaek Nybegynder
16. april 2004 - 13:10 #9
det har jeg problemer med, fordi databasen ikke er opdateret. Det sikre @@identity for på den måde får du det nye id der er indsat.
Avatar billede kennilinux Nybegynder
16. april 2004 - 13:29 #10
jeg prøver det lige så skal jeg se om jeg ka få det til at virke. så vender jeg tilbage :D
Avatar billede kennilinux Nybegynder
16. april 2004 - 18:17 #11
:'( jeg kan sq ik lige se hvor og hvordan jeg skal få det til at virke :'(  håber der er en som ka hjælpe med at få det til at virke :D
Avatar billede ellebaek Nybegynder
16. april 2004 - 21:35 #12
hvad er problemet ?
Avatar billede kennilinux Nybegynder
16. april 2004 - 22:22 #13
jeg ved ikke hvordan jeg skal sætte det ind :'(
Avatar billede ellebaek Nybegynder
16. april 2004 - 22:28 #14
hvordan ser din kode ud nu ?
Avatar billede kennilinux Nybegynder
16. april 2004 - 22:35 #15
2sek. kan man ik bruge andet ens jmails server? fordi jeg har en mailserver på den server..
Avatar billede kennilinux Nybegynder
16. april 2004 - 22:36 #16
hmm min kode er lidt lang. :( men her er den..

<%@LANGUAGE="VBSCRIPT" CODEPAGE="1252"%>
<!--#include file="Connections/hmm.asp" -->
<%
' *** Edit Operations: declare variables

Dim MM_editAction
Dim MM_abortEdit
Dim MM_editQuery
Dim MM_editCmd

Dim MM_editConnection
Dim MM_editTable
Dim MM_editRedirectUrl
Dim MM_editColumn
Dim MM_recordId

Dim MM_fieldsStr
Dim MM_columnsStr
Dim MM_fields
Dim MM_columns
Dim MM_typeArray
Dim MM_formVal
Dim MM_delim
Dim MM_altVal
Dim MM_emptyVal
Dim MM_i

MM_editAction = CStr(Request.ServerVariables("SCRIPT_NAME"))
If (Request.QueryString <> "") Then
  MM_editAction = MM_editAction & "?" & Server.HTMLEncode(Request.QueryString)
End If

' boolean to abort record edit
MM_abortEdit = false

' query string to execute
MM_editQuery = ""
%>
<%
' *** Insert Record: set variables

If (CStr(Request("MM_insert")) = "form1") Then

  MM_editConnection = MM_hmm_STRING
  MM_editTable = "bruger"
  MM_editRedirectUrl = "brugeroprette.asp"
  MM_fieldsStr  = "brugernavn|value|password|value|Navn|value|Efternavn|value|adresse|value|textfield4|value|tlf|value|mail|value"
  MM_columnsStr = "Nickname|',none,''|password|',none,''|Navn|',none,''|efternavn|',none,''|adresse|',none,''|poasby|',none,''|telefon|',none,''|mail|',none,''"

  ' create the MM_fields and MM_columns arrays
  MM_fields = Split(MM_fieldsStr, "|")
  MM_columns = Split(MM_columnsStr, "|")
 
  ' set the form values
  For MM_i = LBound(MM_fields) To UBound(MM_fields) Step 2
    MM_fields(MM_i+1) = CStr(Request.Form(MM_fields(MM_i)))
  Next

  ' append the query string to the redirect URL
  If (MM_editRedirectUrl <> "" And Request.QueryString <> "") Then
    If (InStr(1, MM_editRedirectUrl, "?", vbTextCompare) = 0 And Request.QueryString <> "") Then
      MM_editRedirectUrl = MM_editRedirectUrl & "?" & Request.QueryString
    Else
      MM_editRedirectUrl = MM_editRedirectUrl & "&" & Request.QueryString
    End If
  End If

End If
%>
<%
' *** Insert Record: construct a sql insert statement and execute it

Dim MM_tableValues
Dim MM_dbValues

If (CStr(Request("MM_insert")) <> "") Then

  ' create the sql insert statement
  MM_tableValues = ""
  MM_dbValues = ""
  For MM_i = LBound(MM_fields) To UBound(MM_fields) Step 2
    MM_formVal = MM_fields(MM_i+1)
    MM_typeArray = Split(MM_columns(MM_i+1),",")
    MM_delim = MM_typeArray(0)
    If (MM_delim = "none") Then MM_delim = ""
    MM_altVal = MM_typeArray(1)
    If (MM_altVal = "none") Then MM_altVal = ""
    MM_emptyVal = MM_typeArray(2)
    If (MM_emptyVal = "none") Then MM_emptyVal = ""
    If (MM_formVal = "") Then
      MM_formVal = MM_emptyVal
    Else
      If (MM_altVal <> "") Then
        MM_formVal = MM_altVal
      ElseIf (MM_delim = "'") Then  ' escape quotes
        MM_formVal = "'" & Replace(MM_formVal,"'","''") & "'"
      Else
        MM_formVal = MM_delim + MM_formVal + MM_delim
      End If
    End If
    If (MM_i <> LBound(MM_fields)) Then
      MM_tableValues = MM_tableValues & ","
      MM_dbValues = MM_dbValues & ","
    End If
    MM_tableValues = MM_tableValues & MM_columns(MM_i)
    MM_dbValues = MM_dbValues & MM_formVal
  Next
  MM_editQuery = "insert into " & MM_editTable & " (" & MM_tableValues & ") values (" & MM_dbValues & ")"

  If (Not MM_abortEdit) Then
    ' execute the insert
    Set MM_editCmd = Server.CreateObject("ADODB.Command")
    MM_editCmd.ActiveConnection = MM_editConnection
    MM_editCmd.CommandText = MM_editQuery
    MM_editCmd.Execute
    MM_editCmd.ActiveConnection.Close

    If (MM_editRedirectUrl <> "") Then
      Response.Redirect(MM_editRedirectUrl)
    End If
  End If

End If
%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<title>Untitled Document</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<style type="text/css">
<!--
.style3 {    font-size: 12px;
    color: #FFFFFF;
}
-->
</style>
<link href="cssundersider.css" rel="stylesheet" type="text/css">
<style type="text/css">
<!--
.style4 {
    font-size: 14px;
    font-weight: bold;
}
-->
</style>
<script language="JavaScript" type="text/JavaScript">
<!--
function MM_findObj(n, d) { //v4.01
  var p,i,x;  if(!d) d=document; if((p=n.indexOf("?"))>0&&parent.frames.length) {
    d=parent.frames[n.substring(p+1)].document; n=n.substring(0,p);}
  if(!(x=d[n])&&d.all) x=d.all[n]; for (i=0;!x&&i<d.forms.length;i++) x=d.forms[i][n];
  for(i=0;!x&&d.layers&&i<d.layers.length;i++) x=MM_findObj(n,d.layers[i].document);
  if(!x && d.getElementById) x=d.getElementById(n); return x;
}

function YY_checkform() { //v4.66
//copyright (c)1998,2002 Yaromat.com
  var args = YY_checkform.arguments; var myDot=true; var myV=''; var myErr='';var addErr=false;var myReq;
  for (var i=1; i<args.length;i=i+4){
    if (args[i+1].charAt(0)=='#'){myReq=true; args[i+1]=args[i+1].substring(1);}else{myReq=false}
    var myObj = MM_findObj(args[i].replace(/\[\d+\]/ig,""));
    myV=myObj.value;
    if (myObj.type=='text'||myObj.type=='password'||myObj.type=='hidden'){
      if (myReq&&myObj.value.length==0){addErr=true}
      if ((myV.length>0)&&(args[i+2]==1)){ //fromto
        var myMa=args[i+1].split('_');if(isNaN(myV)||myV<myMa[0]/1||myV > myMa[1]/1){addErr=true}
      } else if ((myV.length>0)&&(args[i+2]==2)){
          var rx=new RegExp("^[\\w\.=-]+@[\\w\\.-]+\\.[a-z]{2,4}$");if(!rx.test(myV))addErr=true;
      } else if ((myV.length>0)&&(args[i+2]==3)){ // date
        var myMa=args[i+1].split("#"); var myAt=myV.match(myMa[0]);
        if(myAt){
          var myD=(myAt[myMa[1]])?myAt[myMa[1]]:1; var myM=myAt[myMa[2]]-1; var myY=myAt[myMa[3]];
          var myDate=new Date(myY,myM,myD);
          if(myDate.getFullYear()!=myY||myDate.getDate()!=myD||myDate.getMonth()!=myM){addErr=true};
        }else{addErr=true}
      } else if ((myV.length>0)&&(args[i+2]==4)){ // time
        var myMa=args[i+1].split("#"); var myAt=myV.match(myMa[0]);if(!myAt){addErr=true}
      } else if (myV.length>0&&args[i+2]==5){ // check this 2
            var myObj1 = MM_findObj(args[i+1].replace(/\[\d+\]/ig,""));
            if(myObj1.length)myObj1=myObj1[args[i+1].replace(/(.*\[)|(\].*)/ig,"")];
            if(!myObj1.checked){addErr=true}
      } else if (myV.length>0&&args[i+2]==6){ // the same
            var myObj1 = MM_findObj(args[i+1]);
            if(myV!=myObj1.value){addErr=true}
      }
    } else
    if (!myObj.type&&myObj.length>0&&myObj[0].type=='radio'){
          var myTest = args[i].match(/(.*)\[(\d+)\].*/i);
          var myObj1=(myObj.length>1)?myObj[myTest[2]]:myObj;
      if (args[i+2]==1&&myObj1&&myObj1.checked&&MM_findObj(args[i+1]).value.length/1==0){addErr=true}
      if (args[i+2]==2){
        var myDot=false;
        for(var j=0;j<myObj.length;j++){myDot=myDot||myObj[j].checked}
        if(!myDot){myErr+='* ' +args[i+3]+'\n'}
      }
    } else if (myObj.type=='checkbox'){
      if(args[i+2]==1&&myObj.checked==false){addErr=true}
      if(args[i+2]==2&&myObj.checked&&MM_findObj(args[i+1]).value.length/1==0){addErr=true}
    } else if (myObj.type=='select-one'||myObj.type=='select-multiple'){
      if(args[i+2]==1&&myObj.selectedIndex/1==0){addErr=true}
    }else if (myObj.type=='textarea'){
      if(myV.length<args[i+1]){addErr=true}
    }
    if (addErr){myErr+='* '+args[i+3]+'\n'; addErr=false}
  }
  if (myErr!=''){alert('The required information is incomplete or contains errors:\t\t\t\t\t\n\n'+myErr)}
  document.MM_returnValue = (myErr=='');
}
//-->
</script>
</head>

<body>
<table width="100%"  border="0" cellpadding="0" cellspacing="0" class="top">
  <tr>
    <td>Opret Bruger. </td>
  </tr>
</table>
<form name="form1" method="POST" action="<%=MM_editAction%>">
  <table width="90%"  border="0" align="center" cellpadding="0" cellspacing="0">
    <tr>
      <td width="13"><img src="filer/grafik/nyheder/topvenstre.gif" width="17" height="19"></td>
      <td background="filer/grafik/nyheder/topmidt.gif">&nbsp;</td>
      <td><img src="filer/grafik/nyheder/tophojer.gif" width="17" height="19"></td>
    </tr>
    <tr>
      <td background="filer/grafik/nyheder/venstremidt.gif">&nbsp;</td>
      <td bgcolor="#65809B"><div align="center" class="style3">
          <div align="left">
            <table width="283" border="0" align="center" cellpadding="0" cellspacing="0">
              <tr>
                <td><div align="center" class="style4">Bruger informationer.</div></td>
              </tr>
              <tr>
                <td><table width="283" border="0" cellspacing="0" cellpadding="0">
                  <tr>
                    <td>Brugernavn:</td>
                    <td><input name="brugernavn" type="text" class="naaaa" id="brugernavn"></td>
                  </tr>
                  <tr>
                    <td width="100">Password:</td>
                    <td><input name="password" type="password" class="naaaa" id="password"></td>
                  </tr>
                  <tr>
                    <td>PAssword igen: </td>
                    <td><input name="passwordigen" type="password" class="naaaa" id="passwordigen"></td>
                  </tr>
                </table></td>
              </tr>
            </table>
          </div>
      </div></td>
      <td width="17" background="filer/grafik/nyheder/hojermidt.gif">&nbsp;</td>
    </tr>
    <tr>
      <td><img src="filer/grafik/nyheder/bundvenstre.gif" width="17" height="19"></td>
      <td background="filer/grafik/nyheder/bundmidt.gif">&nbsp;</td>
      <td width="17"><img src="filer/grafik/nyheder/bundhojer.gif" width="17" height="19"></td>
    </tr>
  </table>
    <table width="90%"  border="0" align="center" cellpadding="0" cellspacing="0">
    <tr>
      <td width="13"><img src="filer/grafik/nyheder/topvenstre.gif" width="17" height="19"></td>
      <td background="filer/grafik/nyheder/topmidt.gif">&nbsp;</td>
      <td><img src="filer/grafik/nyheder/tophojer.gif" width="17" height="19"></td>
    </tr>
    <tr>
      <td background="filer/grafik/nyheder/venstremidt.gif">&nbsp;</td>
      <td bgcolor="#65809B"><div align="center" class="style3">
          <div align="left">
            <table width="283" border="0" align="center" cellpadding="0" cellspacing="0">
              <tr>
                <td><div align="center" class="style4">Kontakt informationer.</div></td>
              </tr>
              <tr>
                <td><table width="283," border="0" cellspacing="0" cellpadding="0">
                    <tr>
                      <td>Navn:</td>
                      <td><input name="Navn" type="text" class="naaaa" id="Navn"></td>
                    </tr>
                    <tr>
                      <td>Efternavn:</td>
                      <td><input name="Efternavn" type="text" class="naaaa" id="Efternavn"></td>
                    </tr>
                    <tr>
                      <td>Adresse:</td>
                      <td><input name="adresse" type="text" class="naaaa" id="adresse"></td>
                    </tr>
                    <tr>
                      <td>Postnr + by: </td>
                      <td><input name="textfield4" type="text" class="naaaa"></td>
                    </tr>
                    <tr>
                      <td width="100">Telefonnummer:</td>
                      <td><input name="tlf" type="text" class="naaaa" id="tlf"></td>
                    </tr>
                    <tr>
                      <td>E-mail:</td>
                      <td><input name="mail" type="text" class="naaaa" id="mail" size="25"></td>
                    </tr>
                  </table></td>
              </tr>
            </table>
          </div>
      </div></td>
      <td width="17" background="filer/grafik/nyheder/hojermidt.gif">&nbsp;</td>
    </tr>
    <tr>
      <td><img src="filer/grafik/nyheder/bundvenstre.gif" width="17" height="19"></td>
      <td background="filer/grafik/nyheder/bundmidt.gif">&nbsp;</td>
      <td width="17"><img src="filer/grafik/nyheder/bundhojer.gif" width="17" height="19"></td>
    </tr>
  </table>
    <table width="90%"  border="0" align="center" cellpadding="0" cellspacing="0">
    <tr>
      <td width="13"><img src="filer/grafik/nyheder/topvenstre.gif" width="17" height="19"></td>
      <td background="filer/grafik/nyheder/topmidt.gif">&nbsp;</td>
      <td><img src="filer/grafik/nyheder/tophojer.gif" width="17" height="19"></td>
    </tr>
    <tr>
      <td background="filer/grafik/nyheder/venstremidt.gif">&nbsp;</td>
      <td bgcolor="#65809B"><div align="center" class="style3">
          <div align="left">
            <table width="283" border="0" align="center" cellpadding="0" cellspacing="0">
              <tr>
                <td class="style4"><div align="center">BEKR&AElig;FT.</div></td>
              </tr>
              <tr>
                <td><div align="center">Bekr&aelig;fter du Regler for partyzonen.com?
<input name="be" type="checkbox" id="be" value="checkbox">                 
                    <br>
                    <br>
                    <input name="Submit" type="submit" class="naaaa" onClick="YY_checkform('form1','be','#q','1','Du skal Bekr&aelig;fte at du har acctert reglerne..','brugernavn','#q','0','Husk at skriv et brugernavn...','Navn','#q','0','Husk dit navn..','mail','S','2','Husk at skriv din e-mail adresse.','password','#q','0','Husk at udflyde Password.','passwordigen','#password','6','Husk password igen skal v&aelig;re den samme som password.');return document.MM_returnValue" value="OK!!">
                </div></td>
              </tr>
            </table>
          </div>
      </div></td>
      <td width="17" background="filer/grafik/nyheder/hojermidt.gif">&nbsp;</td>
    </tr>
    <tr>
      <td><img src="filer/grafik/nyheder/bundvenstre.gif" width="17" height="19"></td>
      <td background="filer/grafik/nyheder/bundmidt.gif">&nbsp;</td>
      <td width="17"><img src="filer/grafik/nyheder/bundhojer.gif" width="17" height="19"></td>
    </tr>
  </table>

    <input type="hidden" name="MM_insert" value="form1">
</form>
</body>
</html>
Avatar billede ellebaek Nybegynder
16. april 2004 - 22:39 #17
Du skal sætte jmailscriptet ind ved stjernerne...

  If (Not MM_abortEdit) Then
    ' execute the insert
    Set MM_editCmd = Server.CreateObject("ADODB.Command")
    MM_editCmd.ActiveConnection = MM_editConnection
    MM_editCmd.CommandText = MM_editQuery
    MM_editCmd.Execute

*********************************

    MM_editCmd.ActiveConnection.Close
Avatar billede kennilinux Nybegynder
16. april 2004 - 22:40 #18
ok. skulle det så virke?
Avatar billede kennilinux Nybegynder
16. april 2004 - 22:44 #19
2sek. kan man ik bruge andet ens jmails server? fordi jeg har en mailserver på den server..
Avatar billede kennilinux Nybegynder
16. april 2004 - 23:01 #20
hvad er sat opforkert her.     <%
Set JMail = Server.CreateObject("JMail.SMTPMail")

JMail.SenderName = "PartyZonen.com"
JMail.Sender = "Artiv@partyzonen.com"
JMail.AddRecipientEx "&mail&", "&brugernavn&"
JMail.Subject = "Overskrift"
JMail.Body = "Besked"

'Mailserver
JMail.ServerAddress = "kwtt.dk"

'Her angives prioriteten: 1=høj, 3=normal/standard, 5=lav (valgfrit)
JMail.Priority = 1
'Her angives tekstformatet: text/plain (standard), text/html (valgfrit)
JMail.ContentType = "text/html"
'Her angives mailformatet: US ASCII, ISO-8859-1/standard (valgfrit)
JMail.Charset = "ISO-8859-1"

JMail.Execute

JMail.Close
Set JMail = Nothing
%>
Avatar billede kennilinux Nybegynder
17. april 2004 - 06:09 #21
hvad er der ivejen her:

  If (Not MM_abortEdit) Then
    ' execute the insert
    Set MM_editCmd = Server.CreateObject("ADODB.Command")
    MM_editCmd.ActiveConnection = MM_editConnection
    MM_editCmd.CommandText = MM_editQuery
    MM_editCmd.Execute
   
' Email med bekraeftigelse af email og kode sendes til indmelder                           
    senderEmail = "artiv@partyzonen.com"
    subject    = "Det drejer sig om ....."
    recipient  = &mail&   
    strBody = strBody & "Her er link til .....:  " & VbCrLf & VbCrLf
    strBody = strBody & "http://www.domæne.dk/side.asp?email="&emailAddress&"&kode="&kodeord
    strBody = strBody & "Med venlig hilsen" & VbCrLf & VbCrLf
    strBody = strBody & "admin" & VbCrLf & VbCrLf
   
    Set JMail = Server.CreateObject("JMail.SMTPMail")
        JMail.ServerAddress = "partyzonen.com:111"
        JMail.Logging = true
          JMail.silent = true 
          JMail.Sender = senderEmail
          JMail.Subject = subject
          JMail.AddRecipient  recipient
          JMail.Priority = 3
          JMail.AddHeader "Originating-IP", Request.ServerVariables("REMOTE_ADDR")
          Jmail.Body = strBody
          JMail.Execute
      Set JMail = Nothing
     
    MM_editCmd.ActiveConnection.Close
Avatar billede ellebaek Nybegynder
17. april 2004 - 10:57 #22
If (Not MM_abortEdit) Then
    ' execute the insert
    Set MM_editCmd = Server.CreateObject("ADODB.Command")
    MM_editCmd.ActiveConnection = MM_editConnection
    MM_editCmd.CommandText = MM_editQuery
    MM_editCmd.Execute
   
' Email med bekraeftigelse af email og kode sendes til indmelder                           
    senderEmail = "artiv@partyzonen.com"
    subject    = "Det drejer sig om ....."
    recipient  = mail   
    strBody = strBody & "Her er link til .....:  " & VbCrLf & VbCrLf
    strBody = strBody & "http://www.domæne.dk/side.asp?email="&emailAddress&"&kode="&kodeord
    strBody = strBody & "Med venlig hilsen" & VbCrLf & VbCrLf
    strBody = strBody & "admin" & VbCrLf & VbCrLf
   
    Set JMail = Server.CreateObject("JMail.SMTPMail")
        JMail.ServerAddress = "partyzonen.com:111"
        JMail.Logging = true
          JMail.silent = true 
          JMail.Sender = senderEmail
          JMail.Subject = subject
          JMail.AddRecipient  recipient, recipient
          JMail.Priority = 3
          JMail.AddHeader "Originating-IP", Request.ServerVariables("REMOTE_ADDR")
          Jmail.Body = strBody
          JMail.Execute
      Set JMail = Nothing
     
    MM_editCmd.ActiveConnection.Close

Sådan her tror jeg det vil virke.
Avatar billede kennilinux Nybegynder
17. april 2004 - 13:09 #23
:'( det vil ik virke :( hvordan skal den enlig få at vide hvad mail der er taste ind i min formular? :S
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

IT-JOB