Avatar billede wolstrup Nybegynder
02. maj 2007 - 08:29 Der er 39 kommentarer

Fejl i upload af thumbs

Er der nogen som kan gennemskue hvorfor mine thumbs kommer til at hedder det store billedes navn først. Hvis mit store billeder f.eks. hedder billede.jpg kommer min thumb til at hedde billede.jpgthumb_billede.jpg?

$billede        = $_FILES['upfile']['name'];
    $type            = strrchr($billede, ".");// For at finde filtypen til tjek af jpeg kontra jpg
    $billede        = strtolower($billede);// ændre alt til små bogstaver
    $dest            = $usermap . $billede;// Stien til det store billede
    $dest            = tjekfilnavn($dest);
    $thumbnail_dir  = $usermap_thumbs . $billede;// Stien til det thumbnail
    $overskrift        = $_POST['kommentar'];



    $oprettelsesDato = date('Ymd');
    $source = $_FILES['upfile']['tmp_name'];
    if (is_uploaded_file($source)) {
        if (tjektype($_FILES['upfile']['type'])) {
            if (move_uploaded_file($source, $dest)) {
                list($width, $height) = getimagesize($dest);
                $new_width = 100;
                $krympefaktor = $new_width/$width;
                $new_height = round($height * $krympefaktor);
                $destinationImage = imagecreatetruecolor($new_width, $new_height);
                if(tjektype($_FILES['upfile']['type'] == "image/pjpeg")) {
                    $sourceImage = imagecreatefromjpeg($dest);
                    imagecopyresampled($destinationImage, $sourceImage, 0, 0, 0, 0, $new_width, $new_height, imagesx($sourceImage), imagesy($sourceImage));
                    if ($type == ".jpeg") {
                        imagejpeg($destinationImage, $thumbnail_dir.basename($billede, ".jpeg")."_thumb.jpeg");
                    } else {
                        imagejpeg($destinationImage, $thumbnail_dir.basename($billede, ".jpg")."_thumb.jpg");
                    }
                } else if(tjektype($_FILES['upfile']['type'] == "image/png")) {
                    $sourceImage = imagecreatefrompng($dest);
                    imagecopyresampled($destinationImage, $sourceImage, 0, 0, 0, 0, $new_width, $new_height, imagesx($sourceImage), imagesy($sourceImage));
                    imagepng($destinationImage, $thumbnail_dir.basename($billede, ".png")."_thumb.png");
                }
                mysql_query("INSERT INTO images (id, user, name, text, date)
                            VALUES ('', '$userid', '$billede', '$overskrift', '$oprettelsesDato')") or die (mysql_error());
                mysql_close();
                $besked = "Tekst og billede gemt";
            } else {
                $besked = "Der blev ikke gemt noget";
            }
        } else {
            $besked = "Du prøvede at gemme et billedeformat som ikke er tilladt. Du kan gemme billeder i JPEG og PNG formaterne.";
        }
    } else {
        mysql_query("INSERT INTO RS_Nyhed SET overskrift='$overskrift', sti='images/intetBillede.png',
                    tekst='$tekst', dato='$oprettelsesDato'");
        mysql_close();
        header("location: adminNyhed.php");
    }


}
Avatar billede zurekk Nybegynder
02. maj 2007 - 08:39 #1
if ($type == ".jpeg") {
                        imagejpeg($destinationImage, $thumbnail_dir.basename($billede, ".jpeg")."_thumb.jpeg");
                    } else {
                        imagejpeg($destinationImage, $thumbnail_dir.basename($billede, ".jpg")."_thumb.jpg");
                    }

Er jeg ret sikker på.
Avatar billede wolstrup Nybegynder
02. maj 2007 - 09:28 #2
Men hvordan retter jeg den, kan ikke lige gennemskue det :-)
Avatar billede zurekk Nybegynder
02. maj 2007 - 10:02 #3
imagejpeg($destinationImage, $thumbnail_dir.basename($billede . "_thumb", ".jpg"), 100);
Prøv den.
Avatar billede wolstrup Nybegynder
02. maj 2007 - 10:06 #4
Som kom filen til at hedde logo.jpglogo.jpg_thumb :-)
Avatar billede zurekk Nybegynder
02. maj 2007 - 10:41 #5
imagejpeg($destinationImage, "thumb_" . $billede, 100);

Prøv med en.

Er ikke elite php-programmør og har næsten ingen erfaring med billede upload/redigering i php, så prøver mig bare frem :D
Avatar billede wolstrup Nybegynder
02. maj 2007 - 10:50 #6
Helt ok :-) Øv, nu laver den den slet ikke..
Avatar billede zurekk Nybegynder
02. maj 2007 - 11:12 #7
damnit,

Prøv så:
imagejpeg($destinationImage, basename($thumbnail_dir, ".jpeg") . "_thumb.jpeg", 100);
imagejpeg($destinationImage, basename($thumbnail_dir, ".jpg") . "_thumb.jpg", 100);
Avatar billede dkfire Nybegynder
02. maj 2007 - 14:36 #8
I kigger desværre det forkerte sted.

$thumbnail_dir  = $usermap_thumbs . $billede;// Stien til det thumbnail

bliver til /mappe/billede.jpg

prøv istedet bare at skrive

$thumbnail_dir  = $usermap_thumbs
Avatar billede zurekk Nybegynder
02. maj 2007 - 16:34 #9
Nej dkfire.

$thumbnail_dir = /mappe/billede.jpg

basename($thumbnail_dir, ".jpg") = billede
Avatar billede dkfire Nybegynder
02. maj 2007 - 17:13 #10
Når nu $thumbnail_dir = /mappe/billede.jpg

Så bliver :
imagejpeg($destinationImage, $thumbnail_dir.basename($billede, ".jpeg")."_thumb.jpeg");
da til:
imagejpeg($destinationImage, /mappe/billede.jpgbillede_thumb.jpeg)
'
For du lægger jo $thumbnail_dir + billede + _thumb.jpg, det må give:
/mappe/billede.jpgbillede_thumb.jpeg
Avatar billede wolstrup Nybegynder
03. maj 2007 - 09:52 #11
dkfire du har ret, men i skal nu have tak begge 2. Smid et svar
Avatar billede wolstrup Nybegynder
03. maj 2007 - 10:15 #12
Hov nu opstod der et andet problem, hvis jeg uploader to filer med samme navn omdøber den godt nok den store fil, men den genererer ingen thumb? Her er funktionen til tjek på navnet:

function tjekfilnavn($filnavn) {
    $i = 0;
    $ext = strrchr($filnavn, '.');
    $navn = substr($filnavn, 0, -strlen($ext));
    while (is_file($filnavn)) {
        $i++;
        $filnavn = $navn . "_" . sprintf("%03u", $i) . $ext;
    }
    return $filnavn;
}
Avatar billede dkfire Nybegynder
03. maj 2007 - 10:29 #13
Hvis du kan, prøv at smide en echo ind i din while-løkke, bare for at se om den ændre filnavnet.
Avatar billede wolstrup Nybegynder
03. maj 2007 - 10:34 #14
Kan se den ændre navnet godt nok, det store billede bliver også gemt med det nye navn, men thumben bliver slet ikke gemt..
Avatar billede zurekk Nybegynder
03. maj 2007 - 10:38 #15
imagejpeg($destinationImage, basename($thumbnail_dir, ".jpeg") . "_thumb.jpeg", 100);
imagejpeg($destinationImage, basename($thumbnail_dir, ".jpg") . "_thumb.jpg", 100);

Har du prøvet den?
Fordi ifølge php.net skulle dette blive til
billedenavn_thumb.jpg
Avatar billede wolstrup Nybegynder
03. maj 2007 - 10:47 #16
Det giver samme resultat, uploader man et billede med navnet f.eks. img.jpg virker det helt fint. Uploader man så igen et billede med samme navn kommer det store billede til at hedde img_001.jpg men thumben bliver ikke kopieret..
Avatar billede dkfire Nybegynder
03. maj 2007 - 10:52 #17
Hvornår bruger du tjekfilnavn ??
Avatar billede zurekk Nybegynder
03. maj 2007 - 10:58 #18
imagejpeg($destinationImage, basename($thumbnail_dir, ".jpg") . "_thumb.jpg", 100);

giver billede_thumb.jpg
har jeg selv lige testet.
Hvis du så vil kunne uploade med samme navn igen, må du bare smide et random nummer foran.

F.eks.
$random = date('ymhms');
imagejpeg($destinationImage, $random . "_" . basename($lort, ".jpg") . "_thumb.jpg";, 100);

Og evt. det samme med det store billede.

Min ovenstående eksempel giver:
0705100521_billede_thumb.jpg
Avatar billede dkfire Nybegynder
03. maj 2007 - 11:09 #19
Selvom du sætter et random nummer foran, bliver du stadig nød til at tjekke at filnavnet ikker er brugt i forvejen.
Avatar billede zurekk Nybegynder
03. maj 2007 - 11:13 #20
Nej, for så kan det bruges så ofte man har lyst..
Avatar billede wolstrup Nybegynder
03. maj 2007 - 11:24 #21
Jeg tjekker øverst oppe

$dest = tjekfilnavn($dest);
Avatar billede dkfire Nybegynder
03. maj 2007 - 11:26 #22
Øhhh nu jeg slet ikke med.

Hvis man kun må uploade 2 gange, hvordan vil du holde styr på det ?

Hvis man gerne må uploade flere end 2 gange, hvordan undgår du så at overskrive en existerende fil selv med random nummer ?
Du bliver squ da nød til at tjekke om filen existere eller ej.
Avatar billede dkfire Nybegynder
03. maj 2007 - 11:32 #23
wolstrup: så bliver du nød til at gøre det samme med thumbnail.
Avatar billede zurekk Nybegynder
03. maj 2007 - 11:39 #24
dkfire >
Mit "random" nummer, er datoen, og tiden for når man uploader, så medmindre et billede med samme navn, og i samme sekund bliver uploadet, så skulle der ikke være noget problem.
Avatar billede zurekk Nybegynder
03. maj 2007 - 11:43 #25
www.mmkay.dk/test.php

Der kan du se hvad der kommer ud af mit script.

Der har jeg angivet stien som /snejlefarphg/bruum/billede.jpg
Avatar billede wolstrup Nybegynder
03. maj 2007 - 12:09 #26
zurekk => Den kopierer slet ikke thumben når jeg laver dine ændringer

dkfire => Hvordan laver jeg tjek på thumben? Troede egentlig at thumben blev genereret ud fra navnet på det store billede som jo i så fald ville være ændret hvis der fandtes et billede med samme navn i forvejen..
Avatar billede zurekk Nybegynder
03. maj 2007 - 12:21 #27
Du huskede at ændre $lort til $thumbnail_dir ikke?
Avatar billede zurekk Nybegynder
03. maj 2007 - 12:36 #28
<?php

$billede        = $_FILES['upfile']['name'];
    $type            = strrchr($billede, ".");// For at finde filtypen til tjek af jpeg kontra jpg
    $billede        = strtolower($billede);// ændre alt til små bogstaver
    $dest            = $usermap . $billede;// Stien til det store billede
    $dest            = tjekfilnavn($dest);
    $thumbnail_dir  = $usermap_thumbs . $billede;// Stien til det thumbnail
    $overskrift        = $_POST['kommentar'];



    $oprettelsesDato = date('Ymd');
    $source = $_FILES['upfile']['tmp_name'];
    if (is_uploaded_file($source))
        {
            if (tjektype($_FILES['upfile']['type']))
                {
                    if (move_uploaded_file($source, $dest))
                        {
                            list($width, $height) = getimagesize($dest);
                            $new_width = 100;
                            $krympefaktor = $new_width/$width;
                            $new_height = round($height * $krympefaktor);
                            $destinationImage = imagecreatetruecolor($new_width, $new_height);
                           
                            if(tjektype($_FILES['upfile']['type'] == "image/pjpeg"))
                                {
                               
                                $sourceImage = imagecreatefromjpeg($dest);
                                imagecopyresampled($destinationImage, $sourceImage, 0, 0, 0, 0, $new_width, $new_height, imagesx($sourceImage), imagesy($sourceImage));
                       
                            if ($type == ".jpeg") {
                                imagejpeg($destinationImage, date('ymdhms') . "_" basename( $thumbnail_dir, '.jpg' ) . "_thumb.jpg");
                                $type = '.jpg';
                                }
                            else
                                {
                                imagejpeg($destinationImage, date('ymdhms') . "_" basename( $thumbnail_dir, '.jpeg' ) . "_thumb.jpeg");
                                $type = '.jpeg';
                                }
                           
                                }
                            else if(tjektype($_FILES['upfile']['type'] == "image/png"))
                                {
                                $sourceImage = imagecreatefrompng($dest);
                                imagecopyresampled($destinationImage, $sourceImage, 0, 0, 0, 0, $new_width, $new_height, imagesx($sourceImage), imagesy($sourceImage));
                                imagepng($destinationImage, $thumbnail_dir.basename($billede, ".png")."_thumb.png");
                                $type = '.png';
                                }
                   
                $name = date('ymdhms') . "_" basename( $thumbnail_dir, $type ) . "_thumb" . $type;
                mysql_query("INSERT INTO images (user, name, text, date)
                            VALUES ('$userid', '$name', '$overskrift', '$oprettelsesDato')") or die (mysql_error());
                mysql_close();
                $besked = "Tekst og billede gemt";
               
                        }
                    else
                        {
                       
                $besked = "Der blev ikke gemt noget";
               
                }
            }
        else
            {
                $besked = "Du prøvede at gemme et billedeformat som ikke er tilladt. Du kan gemme billeder i JPEG og PNG formaterne.";
            }
           
        }
    else
        {
        mysql_query("INSERT INTO RS_Nyhed SET overskrift='$overskrift', sti='images/intetBillede.png',
                    tekst='$tekst', dato='$oprettelsesDato'");
        mysql_close();
        header("location: adminNyhed.php");
        }
}


Så prøv den der..
Avatar billede wolstrup Nybegynder
03. maj 2007 - 12:48 #29
Får Parse error: syntax error, unexpected T_STRING in (stien) on line 89
Avatar billede zurekk Nybegynder
03. maj 2007 - 12:48 #30
Hvad er der på linje 89 =)?
Avatar billede wolstrup Nybegynder
03. maj 2007 - 12:57 #31
Du havde bare lige glemt nogle "." foran basename.. Nu virker det en smule, bortset fra at et billeder ved navn michael1.jpg, kommer til at hedde 070503120550_michael1.jpg_thumb.jpeg, og så ender det i roden istedet for i mappen thumbnails.
Avatar billede zurekk Nybegynder
03. maj 2007 - 13:00 #32
Prøv med

                            if ($type == ".jpg") {
                                imagejpeg($destinationImage, "dinmappe/" . date('ymdhms') . "_" basename( $thumbnail_dir, '.jpg' ) . "_thumb.jpg");
                                $type = '.jpg';
                                }
                            else
                                {
                                imagejpeg($destinationImage, "dinmappe/" . date('ymdhms') . "_" basename( $thumbnail_dir, '.jpeg' ) . "_thumb.jpeg");
                                $type = '.jpeg';
                                }
Avatar billede wolstrup Nybegynder
03. maj 2007 - 13:12 #33
Perfekt... Kan jeg lave mere harmoni mellem de store og de små billeder, så der er et mønster i det. Nu har jeg f.eks. to store billeder:

michael1.jpg
michael1_001.jpg

og to små:

070503010517_michael1_thumb.jpg
070503010538_michael1_thumb.jpg

Lidt svært at skelne hvad der hører til hvad :)
Avatar billede zurekk Nybegynder
03. maj 2007 - 13:20 #34
Det kommer an på hvordan dit script ser ud når du uploader de originale, om du gør det på samme side og om du gør det på samme tid =)

Men du kan evt. smide det script som tilføjer original billederne, så skal jeg kigge på det.
Avatar billede zurekk Nybegynder
03. maj 2007 - 13:21 #35
Evt. smide hele filen.
Avatar billede wolstrup Nybegynder
03. maj 2007 - 13:23 #36
Hele filen ser nu således ud:

if ($submit) {

if(is_dir($usermap)){
}else{
mkdir($usermap, 0777);
mkdir($usermap_thumbs, 0777);
}

function tjektype($type) {
    $tilladt = array('image/x-png', 'image/png', 'image/pjpeg', 'image/jpeg');
    if(!in_array($type, $tilladt)) {
        return false;
    }else{
        return true;
    }
}

function tjekfilnavn($filnavn) {
    $i = 0;
    $ext = strrchr($filnavn, '.');
    $navn = substr($filnavn, 0, -strlen($ext));
    while (is_file($filnavn)) {
        $i++;
        $filnavn = $navn . "_" . sprintf("%03u", $i) . $ext;
    }
    return $filnavn;
}

  $billede        = $_FILES['upfile']['name'];
    $type            = strrchr($billede, ".");// For at finde filtypen til tjek af jpeg kontra jpg
    $billede        = strtolower($billede);// ændre alt til små bogstaver
    $dest            = $usermap . $billede;// Stien til det store billede
    $dest            = tjekfilnavn($dest);
    $thumbnail_dir  = $usermap_thumbs . $billede;// Stien til det thumbnail
    $overskrift        = $_POST['kommentar'];



    $oprettelsesDato = date('Ymd');
    $source = $_FILES['upfile']['tmp_name'];
    if (is_uploaded_file($source))
        {
            if (tjektype($_FILES['upfile']['type']))
                {
                    if (move_uploaded_file($source, $dest))
                        {
                            list($width, $height) = getimagesize($dest);
                            $new_width = 100;
                            $krympefaktor = $new_width/$width;
                            $new_height = round($height * $krympefaktor);
                            $destinationImage = imagecreatetruecolor($new_width, $new_height);
                           
                            if(tjektype($_FILES['upfile']['type'] == "image/pjpeg"))
                                {
                               
                                $sourceImage = imagecreatefromjpeg($dest);
                                imagecopyresampled($destinationImage, $sourceImage, 0, 0, 0, 0, $new_width, $new_height, imagesx($sourceImage), imagesy($sourceImage));
                       
                                if ($type == ".jpg") {
                                imagejpeg($destinationImage, $usermap_thumbs . date('ymdhms') . "_" . basename( $thumbnail_dir, '.jpg' ) . "_thumb.jpg");
                                $type = '.jpg';
                                $thumb = date('ymdhms') . "_" . basename( $thumbnail_dir, '.jpg' ) . "_thumb.jpg";
                                }
                            else
                                {
                                imagejpeg($destinationImage, $usermap_thumbs . date('ymdhms') . "_" . basename( $thumbnail_dir, '.jpeg' ) . "_thumb.jpeg");
                                $type = '.jpeg';
                                $thumb = date('ymdhms') . "_" . basename( $thumbnail_dir, '.jpeg' ) . "_thumb.jpeg";
                                }
                           
                                }
                            else if(tjektype($_FILES['upfile']['type'] == "image/png"))
                                {
                                $sourceImage = imagecreatefrompng($dest);
                                imagecopyresampled($destinationImage, $sourceImage, 0, 0, 0, 0, $new_width, $new_height, imagesx($sourceImage), imagesy($sourceImage));
                                imagepng($destinationImage, $thumbnail_dir.basename($billede, ".png")."_thumb.png");
                                $type = '.png';
                                }
                   
                mysql_query("INSERT INTO images (id, user, name, thumb, text, date)
                            VALUES ('', '$userid', '$billede', '$thumb', '$overskrift', '$oprettelsesDato')") or die (mysql_error());
                mysql_close();

            echo  "<script>alert('Your picture has been uploaded');</script>";
            echo "<script>location.href='ucp.php?i=diary&mode=gallery';</script>";
               
                        }
                    else
                        {
                       
                $besked = "Der blev ikke gemt noget";
               
                }
            }
        else
            {
                $besked = "Du prøvede at gemme et billedeformat som ikke er tilladt. Du kan gemme billeder i JPEG og PNG formaterne.";
            }
           
        }
    else
        {
        mysql_query("INSERT INTO RS_Nyhed SET overskrift='$overskrift', sti='images/intetBillede.png',
                    tekst='$tekst', dato='$oprettelsesDato'");
        mysql_close();
        header("location: adminNyhed.php");
        }
}
Avatar billede zurekk Nybegynder
03. maj 2007 - 13:40 #37
<?php

if ($submit) {

if(is_dir($usermap)){
}else{
mkdir($usermap, 0777);
mkdir($usermap_thumbs, 0777);
}

function tjektype($type) {
    $tilladt = array('image/x-png', 'image/png', 'image/pjpeg', 'image/jpeg');
    if(!in_array($type, $tilladt)) {
        return false;
    }else{
        return true;
    }
}

function tjekfilnavn($filnavn) {
    $i = 0;
    $ext = strrchr($filnavn, '.');
    $navn = substr($filnavn, 0, -strlen($ext));
    while (is_file($filnavn)) {
        $i++;
        $filnavn = $navn . "_" . sprintf("%03u", $i) . $ext;
    }
    return $filnavn;
}

  $billede        = $_FILES['upfile']['name'];
    $type            = strrchr($billede, ".");// For at finde filtypen til tjek af jpeg kontra jpg
    $billede        = strtolower($billede);// ændre alt til små bogstaver
    $dest            = $usermap . $billede;// Stien til det store billede
    $dest            = tjekfilnavn($dest);
    $thumbnail_dir  = $usermap_thumbs . $billede;// Stien til det thumbnail
    $overskrift        = $_POST['kommentar'];


    $random = date('ymdhms');
    $oprettelsesDato = date('Ymd');
    $source = $_FILES['upfile']['tmp_name'];
    if (is_uploaded_file($source))
        {
            $newsource = $random . "_" . $billede;
            rename($source, $newsource);
            if (tjektype($_FILES['upfile']['type']))
                {
                    if (move_uploaded_file($newsource, $dest))
                        {
                           
                            list($width, $height) = getimagesize($dest);
                            $new_width = 100;
                            $krympefaktor = $new_width/$width;
                            $new_height = round($height * $krympefaktor);
                            $destinationImage = imagecreatetruecolor($new_width, $new_height);
                         
                            if(tjektype($_FILES['upfile']['type'] == "image/pjpeg"))
                                {
                             
                                $sourceImage = imagecreatefromjpeg($dest);
                                imagecopyresampled($destinationImage, $sourceImage, 0, 0, 0, 0, $new_width, $new_height, imagesx($sourceImage), imagesy($sourceImage));
                     
                                if ($type == ".jpg") {
                                imagejpeg($destinationImage, $usermap_thumbs . $random . "_" . basename( $thumbnail_dir, '.jpg' ) . "_thumb.jpg");
                                $type = '.jpg';
                                $thumb = date('ymdhms') . "_" . basename( $thumbnail_dir, '.jpg' ) . "_thumb.jpg";
                                }
                            else
                                {
                                imagejpeg($destinationImage, $usermap_thumbs . $random . "_" . basename( $thumbnail_dir, '.jpeg' ) . "_thumb.jpeg");
                                $type = '.jpeg';
                                $thumb = date('ymdhms') . "_" . basename( $thumbnail_dir, '.jpeg' ) . "_thumb.jpeg";
                                }
                         
                                }
                            else if(tjektype($_FILES['upfile']['type'] == "image/png"))
                                {
                                $sourceImage = imagecreatefrompng($dest);
                                imagecopyresampled($destinationImage, $sourceImage, 0, 0, 0, 0, $new_width, $new_height, imagesx($sourceImage), imagesy($sourceImage));
                                imagejpeg($destinationImage, $usermap_thumbs . $random . "_" . basename( $thumbnail_dir, '.png' ) . "_thumb.png");
                                $type = '.png';
                                }
                 
                mysql_query("INSERT INTO images (user, name, thumb, text, date)
                            VALUES ('$userid', '$billede', '$thumb', '$overskrift', '$oprettelsesDato')") or die (mysql_error());
                mysql_close();

            echo  "<script>alert('Your picture has been uploaded');</script>";
            echo "<script>location.href='ucp.php?i=diary&mode=gallery';</script>";
             
                        }
                    else
                        {
                     
                $besked = "Der blev ikke gemt noget";
             
                }
            }
        else
            {
                $besked = "Du prøvede at gemme et billedeformat som ikke er tilladt. Du kan gemme billeder i JPEG og PNG formaterne.";
            }
         
        }
    else
        {
        mysql_query("INSERT INTO RS_Nyhed SET overskrift='$overskrift', sti='images/intetBillede.png',
                    tekst='$tekst', dato='$oprettelsesDato'");
        mysql_close();
        header("location: adminNyhed.php");
        }
}
?>



Prøv den, man vil ikke love noget, da jeg synes din kode er en smule rodet.
Avatar billede wolstrup Nybegynder
08. maj 2007 - 12:54 #38
Smid et svar
Avatar billede zurekk Nybegynder
11. maj 2007 - 00:37 #39
Ved ikke om det er mig du mener, men hvis det er, så, her :)
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
Vi tilbyder markedets bedste kurser inden for webudvikling

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