Avatar billede flushout Nybegynder
07. juli 2005 - 16:40 Der er 31 kommentarer og
1 løsning

Multidimensionelt array fra php til flash

Hejsa

Jeg har i php et array med følgende struktur:

Array
(
    [0] => Array
        (
            [0] => 20
            [1] => 60
            [2] => aktiv
            [3] => 29.720258
        )
}

Det array sender jeg til flash fra php med denne stump kode:

<PARAM NAME=FlashVars VALUE="dataArray=<?php echo($dataArray);?>">

og jeg modtager det i flash med denne stump kode.

loadVariables("filnavn.php", "null", "GET");

--------

Som jeg forstår det så ligger arrayet nu tilgængeligt i flash i variablen:

_root.dataArray

--------

Mine spørgsmål er:

1) Kan flash modtage og håndtere multidimensionelle arrays vha metoden beskrevet ovenfor?

2) Mit array indeholder 1100 rækker tilsvarende den ovenfor, er det for stort til at flash kan håndtere det?

3) Jeg skal gøre følgende i flash (skrevet i pseudo php kode), hvordan gør jeg det?

for ($x=0;$x++;$x < sizeOf($dataArray)){
    if($dataArray[$x][0] == "blabla" && $dataArray[$x][1] == "blabla1" && $dataArray[$x][2] == "blabla3"){
        $minVar = $dataArray[$x][3]   
    }   
}

---

Tak for hjælpen =)
Avatar billede barklund Nybegynder
07. juli 2005 - 16:45 #1
0) -Det ser meget mærkeligt ud - flashvars hænger overhovedet ikke sammen med loadvariables.

1) Nej, ikke på den måde - du skal dumpe det ud i et simpelt format,som flash forstår.

2) Umiddelbart ikke.

3) Snildt.

Jeg vil rekommandere, at du henter dine data via xml og bruger XML-objektet i Flash til at læse og håndtere data.

--
Morten Barklund
Avatar billede flushout Nybegynder
07. juli 2005 - 16:52 #2
ok, jeg opretter et xml dokument med mine data i morgen, jeg lader spørgsmålet være åbent, for jeg får sikkert brug for hjælp med at håndtere det i flash. Jeg har godt styr på php, men flash er nyt for mig...
Avatar billede flushout Nybegynder
08. juli 2005 - 09:59 #3
ok, jeg har nu kigget lidt på XML objectet og jeg føler ikke jeg er blevet meget klogere, jeg har et par spørgsmål:

1) Hvordan Kan jeg opsætte xml-dokumentet så det er nemmest at læse i flash. Data har strukturen jeg viste overfor og der er ca. 1100 rækker, jeg tænkte på noget i stil med dette:

<?xml version="1.0" ?>
    <data>
        <alder>20</alder>
        <penAlder>60</penAlder>
        <aktpas>aktiv</aktpas>
        <val>29.720258</val>
    </data>
   
    osv....osv.....
   
    <data>
        <alder>23</alder>
        <penAlder>64</penAlder>
        <aktpas>passiv</aktpas>
        <val>27.126749</val>
    </data>
</xml>

2) Please forklar mig, hvordan jeg kan tilgå de data jeg importerer. Jeg kan ikke umiddelbart overskue hvordan det gøres. Data skal benyttes som beskrevet i pseudo php for-løkken ovenover..
Avatar billede barklund Nybegynder
08. juli 2005 - 10:13 #4
Du skal have en stor node uden om din xml - <?xml>-noden er ikke en sædvanlig node og skal derfor ikke afsluttes med en </xml>

<?xml version="1.0" encoding="UTF-8"?>
<register>
    <data>
        <alder>20</alder>
        <penAlder>60</penAlder>
        <aktpas>aktiv</aktpas>
        <val>29.720258</val>
    </data>
    ....
    <data>
        <alder>23</alder>
        <penAlder>64</penAlder>
        <aktpas>passiv</aktpas>
        <val>27.126749</val>
    </data>
</register>

Så kan du læse den i flash som:

var foo:XML = new XML();
foo.ignoreWhite = true;
foo.onLoad = function(s) {
    if (!s) trace("fejl i læsning");
    var datas:Array = this.firstChild.childNodes;
    var d:XMLNode;
    for (var i:Number = 0; i < datas.length; i++) {
        d = datas[i];
        trace("så er vi nået til person nummer "+i);
        trace("alder er "+d.childNodes[0].nodeValue);
        trace("penAlder er "+d.childNodes[1].nodeValue);
        trace("aktPas er "+d.childNodes[2].nodeValue);
        trace("val er "+d.childNodes[3].nodeValue);
    }
}
foo.load("min.xml");

Tror jeg bare, at det er :)

--
Morten Barklund
Avatar billede barklund Nybegynder
08. juli 2005 - 10:14 #5
Og så skal du huske at indkode din XML-fil i UTF-8. Genererer du den fra PHP, så bruge utf8_encode, ellers sørg for at gemme din fil i UTF-8 format, hvis du laver en XML-fil direkte i din editor.
Avatar billede flushout Nybegynder
08. juli 2005 - 11:00 #6
hmm.. nu har jeg oprettet et php script der laver filen i UTF-8 format og sat flash til at loade filen..

Jeg kan ikke se at der sker noget.. burde trace ikke give mig noget feedback?
Avatar billede barklund Nybegynder
08. juli 2005 - 11:30 #7
Det burde den i højeste grad - prøv at trace hele this i starten af onLoad-funktionen:

var foo:XML = new XML();
foo.ignoreWhite = true;
foo.onLoad = function(s) {
    if (!s) trace("fejl i læsning");
    trace("så har jeg loaded:\n"+this);
    var datas:Array = this.firstChild.childNodes;
    var d:XMLNode;
    for (var i:Number = 0; i < datas.length; i++) {
        d = datas[i];
        trace("så er vi nået til person nummer "+i);
        trace("alder er "+d.childNodes[0].nodeValue);
        trace("penAlder er "+d.childNodes[1].nodeValue);
        trace("aktPas er "+d.childNodes[2].nodeValue);
        trace("val er "+d.childNodes[3].nodeValue);
    }
}
foo.load("min.xml");

Du har sikret dig, at din PHP outputter korrekt XML?

--
Morten Baklund
Avatar billede barklund Nybegynder
08. juli 2005 - 11:30 #8
Barklund* :)
Avatar billede flushout Nybegynder
08. juli 2005 - 12:06 #9
Ja, php's output er korrekt, her er et uddrag:

<?xml version="1.0" ?><register><data><age></age><penAlder>60</penAlder><aktpas>aktiv</aktpas><val>29.720258</val></data><data><age></age><penAlder>61</penAlder><aktpas>aktiv</aktpas><val>30.229831</val></data><data><age></age><penAlder>62</penAlder><aktpas>aktiv</aktpas><val>30.728195</val></data><data><age></age><penAlder>63</penAlder><aktpas>aktiv</aktpas><val>31.215218</val></data><data><age></age><penAlder>64</penAlder><aktpas>aktiv</aktpas><val>31.69075</val></data><data><age></age><penAlder>65</penAlder><aktpas>aktiv</aktpas><val>32.154619</val></data><data><age></age><penAlder>66</penAlder><aktpas>aktiv</aktpas><val>32.606634</val></data><data><age></age><penAlder>67</penAlder><aktpas>aktiv</aktpas><val>33.046585</val></data><data><age></age><penAlder>68</penAlder><aktpas>aktiv</aktpas><val>33.474238</val></data><data><age></age><penAlder>69</penAlder><aktpas>aktiv</aktpas><val>33.889344</val></data><data><age></age><penAlder>70</penAlder><aktpas>aktiv</aktpas><val>34.291632</val></data><data><age></age><penAlder>60</penAlder><aktpas>aktiv</aktpas><val>29.165667</val></data><data><age></age><penAlder>61</penAlder><aktpas>aktiv</aktpas><val>29.683007</val></data><data><age></age><penAlder>62</penAlder><aktpas>aktiv</aktpas><val>30.188967</val></data><data><age></age><penAlder>63</penAlder><aktpas>aktiv</aktpas><val>30.683414</val></data><data><age></age><penAlder>64</penAlder><aktpas>aktiv</aktpas><val>31.166194</val></data><data><age></age><penAlder>65</penAlder><aktpas>aktiv</aktpas><val>31.637134</val></data><data><age></age><penAlder>66</penAlder><aktpas>aktiv</aktpas><val>32.096039</val></data><data><age></age><penAlder>67</penAlder><aktpas>aktiv</aktpas><val>32.542695</val></data><data><age></age><penAlder>68</penAlder><aktpas>aktiv</aktpas><val>32.976868</val></data><data><age></age><penAlder>69</penAlder><aktpas>aktiv</aktpas><val>33.398301</val></data><data><age></age><penAlder>70</penAlder><aktpas>aktiv</aktpas><val>33.80672</val></data><data><age></age><penAlder>60</penAlder><aktpas>aktiv</aktpas><val>28.602985</val></data><data><age></age><penAlder>61</penAlder><aktpas>aktiv</aktpas><val>29.128217</val></data><data><age></age><penAlder>62</penAlder><aktpas>aktiv</aktpas><val>29.641896</val></data><data><age></age><penAlder>63</penAlder><aktpas>aktiv</aktpas><val>30.143886</val></data><data><age></age><penAlder>64</penAlder><aktpas>aktiv</aktpas><val>30.634031</val></data><data><age></age><penAlder>65</penAlder><aktpas>aktiv</aktpas><val>31.112154</val></data><data><age></age><penAlder>66</penAlder><aktpas>aktiv</aktpas><val>31.57806</val></data><data><age></age><penAlder>67</penAlder><aktpas>aktiv</aktpas><val>32.031531</val></data><data><age></age><penAlder>68</penAlder><aktpas>aktiv</aktpas><val>32.472326</val></data><data><age></age><penAlder>69</penAlder><aktpas>aktiv</aktpas><val>32.900188</val></data><data><age></age><penAlder>70</penAlder><aktpas>aktiv</aktpas><val>33.314838</val></data><data><age></age><penAlder>60</penAlder><aktpas>aktiv</aktpas><val>28.032113</val></data><data><age></age><penAlder>61</penAlder><aktpas>aktiv</aktpas><val>28.565365</val></data><data><age></age><penAlder>62</penAlder><aktpas>aktiv</aktpas><val>29.086887</val></data><data><age></age><penAlder>63</penAlder><aktpas>aktiv</aktpas><val>29.596542</val></data><data><age></age><penAlder>64</penAlder><aktpas>aktiv</aktpas><val>30.094171</val></data><data><age></age><penAlder>65</penAlder><aktpas>aktiv</aktpas><val>30.579595</val></data><data><age></age><penAlder>66</penAlder><aktpas>aktiv</aktpas><val>31.052615</val></data><data><age></age><penAlder>67</penAlder><aktpas>aktiv</aktpas><val>31.513009</val></data><data><age></age><penAlder>68</penAlder><aktpas>aktiv</aktpas><val>31.960536</val></data><data><age></age><penAlder>69</penAlder><aktpas>aktiv</aktpas><val>32.394931</val></data><data><age></age><penAlder>70</penAlder><aktpas>aktiv</aktpas><val>32.815912</val></data><data><age></age><penAlder>60</penAlder><aktpas>aktiv</aktpas><val>27.45295</val></data><data><age></age><penAlder>61</penAlder><aktpas>aktiv</aktpas><val>27.994353</val></data><data><age></age><penAlder>62</penAlder><aktpas>aktiv</aktpas><val>28.523846</val></data><data><age></age><penAlder>63</penAlder><aktpas>aktiv</aktpas><val>29.041291</val></data><data><age></age><penAlder>64</penAlder><aktpas>aktiv</aktpas><val>29.546526</val></data><data><age></age><penAlder>65</penAlder><aktpas>aktiv</aktpas><val>30.03937</val></data><data><age></age><penAlder>66</penAlder><aktpas>aktiv</aktpas><val>30.51962</val></data><data><age></age><penAlder>67</penAlder><aktpas>aktiv</aktpas><val>30.987051</val></data><data><age></age><penAlder>68</penAlder><aktpas>aktiv</aktpas><val>31.441418</val></data><data><age></age><penAlder>69</penAlder><aktpas>aktiv</aktpas><val>31.882453</val></data><data><age></age><penAlder>70</penAlder><aktpas>aktiv</aktpas><val>32.309868</val></data><data><age></age><penAlder>60</penAlder><aktpas>aktiv</aktpas><val>26.865399</val></data><data><age></age><penAlder>61</penAlder><aktpas>aktiv</aktpas><val>27.415085</val></data><data><age></age><penAlder>62</penAlder><aktpas>aktiv</aktpas><val>27.952681</val></data><data><age></age><penAlder>63</penAlder><aktpas>aktiv</aktpas><val>28.478044</val></data><data><age></age><penAlder>64</penAlder><aktpas>aktiv</aktpas><val>28.99101</val></data><data><age></age><penAlder>65</penAlder><aktpas>aktiv</aktpas><val>29.491395</val></data><data><age></age><penAlder>66</penAlder><aktpas>aktiv</aktpas><val>29.978994</val></data><data><age></age><penAlder>67</penAlder><aktpas>aktiv</aktpas><val>30.453578</val></data><data><age></age><penAlder>68</penAlder><aktpas>aktiv</aktpas><val>30.914897</val></data><data><age></age><penAlder>69</penAlder><aktpas>aktiv</aktpas><val>31.362681</val></data><data><age></age><penAlder>70</penAlder><aktpas>aktiv</aktpas><val>31.796637</val></data><data><age></age><penAlder>60</penAlder><aktpas>aktiv</aktpas><val>26.269357</val></data><data><age></age><penAlder>61</penAlder><aktpas>aktiv</aktpas><val>26.827466</val></data><data><age></age><penAlder>62</penAlder><aktpas>aktiv</aktpas><val>27.373298</val></data><data><age></age><penAlder>63</penAlder><aktpas>aktiv</aktpas><val>27.90671</val></data><data><age></age><penAlder>64</penAlder><aktpas>aktiv</aktpas><val>28.427535</val></data><data><age></age><penAlder>65</penAlder><aktpas>aktiv</aktpas><val>28.935587</val></data><data><age></age><penAlder>66</penAlder><aktpas>aktiv</aktpas><val>29.430656</val></data><data><age></age><penAlder>67</penAlder><aktpas>aktiv</aktpas><val>29.912511</val></data><data><age></age><penAlder>68</penAlder><aktpas>aktiv</aktpas><val>30.380898</val></data><data><age></age><penAlder>69</penAlder><aktpas>aktiv</aktpas><val>30.835542</val></data><data><age></age><penAlder>70</penAlder><aktpas>aktiv</aktpas><val>31.276146</val></data><data><age></age><penAlder>60</penAlder><aktpas>aktiv</aktpas><val>25.664727</val></data><data><age></age><penAlder>61</penAlder><aktpas>aktiv</aktpas><val>26.231398</val></data><data><age></age><penAlder>62</penAlder><aktpas>aktiv</aktpas><val>26.785605</val></data><data><age></age><penAlder>63</penAlder><aktpas>aktiv</aktpas><val>27.3272</val></data><data><age></age><penAlder>64</penAlder><aktpas>aktiv</aktpas><val>27.856015</val></data><data><age></age><penAlder>65</penAlder><aktpas>aktiv</aktpas><val>28.371862</val></data><data><age></age><penAlder>66</penAlder><aktpas>aktiv</aktpas><val>28.874526</val></data><data><age></age><penAlder>67</penAlder><aktpas>aktiv</aktpas><val>29.363773</val></data><data><age></age><penAlder>68</penAlder><aktpas>aktiv</aktpas><val>29.839346</val></data><data><age></age><penAlder>69</penAlder><aktpas>aktiv</aktpas><val>30.300966</val></data><data><age></age><penAlder>70</penAlder><aktpas>aktiv</aktpas><val>30.74833</val></data><data><age></age><penAlder>60</penAlder><aktpas>aktiv</aktpas><val>25.051407</val></data><data><age></age><penAlder>61</penAlder><aktpas>aktiv</aktpas><val>25.626785</val></data><data><age></age><penAlder>62</penAlder><aktpas>aktiv</aktpas><val>26.189507</val></data><data><age></age><penAlder>63</penAlder><aktpas>aktiv</aktpas><val>26.739424</val></data></register>

Jeg er som sagt meget ny i flash og jeg tænkte på hvor din kodestump skal sættes id?.. skal den være tilknyttet et movieclip, button eller skal den bare ligge i et seperat layer. Er det nødvendigt atægge det ind i en event, eller kan det bar ligges i en frame uden events?
Avatar billede flushout Nybegynder
08. juli 2005 - 12:16 #10
Der sker intet, selv ikke med den nye stump kode =(
Avatar billede webt Nybegynder
08. juli 2005 - 12:33 #11
Jeg hopper lige med her :)
Ved godt det her måske er et dumt spørgsmål, men hvor tester du, inde i flash eller oppe på serveren?
Fordi hvis det er på serveren vil du ikke kunne se outputtet af tracen

Mvh
Martin
Avatar billede flushout Nybegynder
08. juli 2005 - 12:34 #12
ok, jeg har nu sat nogle flere trace ind og rettet en fejl i xml filen..

Der hvor den får problemer er ved:

foo.onLoad = function(s) {

Den virker lige før og så virker den først efter funktionen er afsluttet.
Avatar billede flushout Nybegynder
08. juli 2005 - 12:34 #13
Jeg tester lokalt..
Avatar billede webt Nybegynder
08. juli 2005 - 12:50 #14
ikke engang en trace lige efter foo.onLoad=function(s) {
trace("test")

?
Avatar billede flushout Nybegynder
08. juli 2005 - 12:55 #15
nej.. alt bliver ignoreret inden i funktionen.. =/ ..
Avatar billede webt Nybegynder
08. juli 2005 - 13:08 #16
Odd, den eneste måde jeg kan få den til at gå udenom funktionen ved er at undlade foo.load("min.xml") og eller som sagt teste den uden for flash hvor tracerne ikke bliver set, så er lidt tabt,, barklund??
Avatar billede flushout Nybegynder
08. juli 2005 - 13:22 #17
ok, det tyder på at jeg har gjort et eller andet galt, så jeg lister lige al relevant php, xml og actionscript op, måske kan I spotte en fejl et sted?

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

Her er det xml dokument jeg tester den med:

<?xml version="1.0" encoding="UTF-8"?>
<register>
<data>
<age>20</age>
<penAlder>60</penAlder>
<aktpas>aktiv</aktpas>
<val>29.720258</val>
</data>
<data>
<age>20</age>
<penAlder>61</penAlder>
<aktpas>aktiv</aktpas>
<val>30.229831</val>
</data>
</register>

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

og her er php-koden der genererer det:

$xmlFormData = utf8_encode($xmlData);
$filepathXML = "data.xml";
if (!file_exists($filepathXML)) {
    touch($filepathXML);
}
if (!$handleXML = fopen($filepathXML, 'w')) {
    exit;
}
if (fwrite($handleXML, $xmlFormData) === FALSE) {
    exit;
}
fclose($handleXML);

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

Og her er actionscript-koden, som ligger i et seperat layer i frame 1 (der er kun en frame):

var foo:XML = new XML();
foo.ignoreWhite = true;
trace("KAOS1");
foo.onLoad = function(s) {
    trace("KAOS2");
    if (!s) trace("fejl i læsning");
    trace("så har jeg loaded:\n"+this);
    var datas:Array = this.firstChild.childNodes;
    var d:XMLNode;
    for (var i:Number = 0; i < datas.length; i++) {
        d = datas[i];
        trace("så er vi nået til person nummer "+i);
        trace("alder er "+d.childNodes[0].nodeValue);
        trace("penAlder er "+d.childNodes[1].nodeValue);
        trace("aktPas er "+d.childNodes[2].nodeValue);
        trace("val er "+d.childNodes[3].nodeValue);
    }
}
foo.load("data.xml");
trace("KAOS3");

output fra mine trace er: KAOS1 KAOS3

...!?
Avatar billede barklund Nybegynder
08. juli 2005 - 13:25 #18
Altså, din php ligger vel på serveren? Altså din data.xml er en php fil på en server - right? Så du skal jo linke til den som http://domæne/data.xml eller hvor den nu er henne.
Avatar billede mat Nybegynder
08. juli 2005 - 13:28 #19
Hvis den aldrig kommer ind i funktionen er det vel fordi den aldrig finder din fil? Hvornår bliver dit php script kaldt, der genererer denne data.xml?

Er det overhovedet nødvendigt at gemme det som en .xml-fil først, fremfor bare at lade php sprøjte en xml-formatteret tekststreng ud, og så kalde dette php-script i din XML.load?
Avatar billede flushout Nybegynder
08. juli 2005 - 13:31 #20
Jeg har en kopi af en xml filen liggende lokalt i samme folder som flash filen til at teste med. En relativ sti er vel godt nok?
Avatar billede barklund Nybegynder
08. juli 2005 - 13:33 #21
Det burde det være, ja. Men hvis jeg helst simpelt kopierer ovenstående script og lægger en vilkårlig xml-fil som data.xml ved siden af min fla-fil, så virker det fuldstændig, som det skal. Du bruger vel ikke Flash 4 eller noget i den stil?
Avatar billede flushout Nybegynder
08. juli 2005 - 13:33 #22
.swf filen er embedded i den php fil der genererer .xml dokumentet. Jo, det ville være fint, hvis jeg kunne slippe for at oprette et xml dokument! Hvordan får jeg php til at sende mit data til flash?..
Avatar billede flushout Nybegynder
08. juli 2005 - 13:34 #23
Nej, MX
Avatar billede mat Nybegynder
08. juli 2005 - 13:39 #24
Hvis du bruger MX (og ikke MX 2004) så ændr det til:

var foo = new XML();
foo.ignoreWhite = true;
trace("KAOS1");
foo.onLoad = function(s) {
    trace("KAOS2");
    if (!s) trace("fejl i læsning");
    trace("så har jeg loaded:\n"+this);
    var datas = this.firstChild.childNodes;
    var d;
    for (var i = 0; i < datas.length; i++) {
        d = datas[i];
        trace("så er vi nået til person nummer "+i);
        trace("alder er "+d.childNodes[0].nodeValue);
        trace("penAlder er "+d.childNodes[1].nodeValue);
        trace("aktPas er "+d.childNodes[2].nodeValue);
        trace("val er "+d.childNodes[3].nodeValue);
    }
}
foo.load("data.xml");
trace("KAOS3");
Avatar billede flushout Nybegynder
08. juli 2005 - 13:45 #25
w000t... det virkede =) ...

nu siger den dog:
så har jeg loaded:
<?xml version="1.0" encoding="UTF-8"?><register><data><age>20</age><penAlder>60</penAlder><aktpas>aktiv</aktpas><val>29.720258</val></data><data><age>20</age><penAlder>61</penAlder><aktpas>aktiv</aktpas><val>30.229831</val></data></register>
så er vi nået til person nummer 0
alder er null
penAlder er null
aktPas er null
val er null
så er vi nået til person nummer 1
alder er null
penAlder er null
aktPas er null
val er null

Med det XML dokument eg viste lidt længere oppe..
Avatar billede barklund Nybegynder
08. juli 2005 - 13:52 #26
Der mangler jo lige nogle firstChild's:

        trace("alder er "+d.childNodes[0].firstChild.nodeValue);
        trace("penAlder er "+d.childNodes[1].firstChild.nodeValue);
        trace("aktPas er "+d.childNodes[2].firstChild.nodeValue);
        trace("val er "+d.childNodes[3].firstChild.nodeValue);

--
Morten Barklund
Avatar billede flushout Nybegynder
08. juli 2005 - 13:56 #27
Suverænt!! Så virker det hele som det skal =) =) =) ! ! !

Tusind tak for hjælpen!..

Jeg vil gerne fordele pointene lidt, så smid nogle svar..  =)
Avatar billede barklund Nybegynder
08. juli 2005 - 13:58 #28
Men bruger du virkelig Flash MX og ikke Flash MX 2004? Altså ikke den nyeste udgave af programmet? I så fald burde du da have fået compilerfejl.
Avatar billede flushout Nybegynder
08. juli 2005 - 14:08 #29
Jeg bruger FlashMX version 6.0 ... den meldte ingen fejl da jeg compilede!?..
Avatar billede flushout Nybegynder
08. juli 2005 - 14:09 #30
Mat, hvis du vil have points så sig lige til .. ;)
Avatar billede mat Nybegynder
08. juli 2005 - 14:23 #31
Det er helt ok :)
Avatar billede barklund Nybegynder
08. juli 2005 - 14:34 #32
Tark for points :)
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
IT-kurser om Microsoft 365, sikkerhed, personlig vækst, udvikling, digital markedsføring, grafisk design, SAP og forretningsanalyse.

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