Avatar billede Asky Forsker
17. april 2013 - 21:49 Der er 31 kommentarer og
1 løsning

Udfyldelse af formularer

Ved de snart mange formularer, jeg har skrevet er der et problem for brugerne: Hvis de har IE 7, 8 eller 9 irriteres de af de obligatoriske felter. Har de udfyldt alle - undtage én, så ryger det hele, og de skal til at indtaste navn, adresse, telefon og meget mere helt forfra. Er der en løsning på dette?
jeg ved godt, at Opera, Firefox og Crome m fl ikke giver dette problem, men på mange administrative net kører man altså med obligatoriske programmer og i gamle udgaver.
Avatar billede olebole Juniormester
17. april 2013 - 22:31 #1
<ole>

Hvis det sker, må det afgjort skyldes uhensigtsmæssig kode. Hvad der skal gøres, er ikke til at sige, når man ikke kender koden

/mvh
</bole>
Avatar billede olebole Juniormester
17. april 2013 - 22:37 #2
PS: Kan det evt. skyldes, du alt for tidligt er begyndt at binde din kode op på HTML5 features? Det kan du ikke gøre de først kommende år.

Du er nødt til at kode, somom HTML5 ikke eksisterede - og så lade HTML5 features komme de til gode, som bruger en nyere browser
Avatar billede Asky Forsker
18. april 2013 - 07:47 #3
Koden er vist ganske almindelig:


if (empty($_POST['navn'])) {
        //besked hvis brugeren ikke har indtastet noget navn
        echo "                  Alle felter med * skal udfyldes. " ;
            }       
    elseif (empty($_POST['ean'])) {
    //besked hvis brugeren ikke har indtastet noget EANummer
    echo"              EAN skal udfyldes.";
      }
    elseif (empty($_POST['email'])) {
        //besked hvis brugeren ikke har indtastet nogen e-mail
        echo "                Du skal indtaste din e-mail. Evt. Skolekom-adresse" ;
          }
    elseif (empty($_POST['adresse'])) {
        //besked hvis brugeren ikke har indtastet nogen adresse
        echo"                Vi vil også gerne kende din adresse. " ;
        }
    elseif (empty($_POST['by'])) {
        //besked hvis brugeren ikke har indtastet nogen by
        echo"                  Husk også by. "; 
        }
osv.

og i html-en

<fieldset>

<div><label for="ean">*EAN: </label><input type="text" name="ean" required="required"/></div>

<div><label for="cvr">*CVR: </label><input type="text" name="cvr" size="14" required="required" /></div>

osv.
Avatar billede michael_stim Ekspert
18. april 2013 - 09:48 #4
1. Jeg ville nok lave det første check i javascript, så slipper du for at siden reloades
2. I det andet check (PHP), bliver du nød til at sende input-variablerne med, når du trykker på submit (kan være session-, post- eller getvariabler), og i dine textfields bliver du så nød til at checke om der er noget i dine variabler
3. Du bruger Ajax, så slipper du også for reload
Avatar billede Asky Forsker
18. april 2013 - 11:59 #5
Har ikke prøvet AJAX før. Det vil jeg kigge nærmere på. . . .
Avatar billede olebole Juniormester
18. april 2013 - 13:53 #6
Ajax er fint, hvis du er rigtig god til JavaScript, CSS og DOM. Er du ikke det, ville jeg afgjort råde til at lave en løsning i JavaScript og PHP - uden Ajax
Avatar billede Asky Forsker
18. april 2013 - 16:51 #7
Egentlig havde jeg håbet på, at problemet kunne løses med nogle få kodelinier tilføjet den oprindelige programmering. Da min profession ofte bliver kaldt "halvstuderede røvere" og jeg ikke er nogen undtagelse, må jeg jo så ty til JavaScript. Hvis nogen har et eksempel, er jeg hjulpet lidt på vej.
Avatar billede olebole Juniormester
18. april 2013 - 17:51 #8
Så er du sikkert (ikke mindst i denne tid) enig i, at det, som kan ordnes i lokalet, bedst ordnes i lokalet  *o)

Et bud kunne være denne klientkode:

<script type="text/javascript">
function validate(frm) {
    if (frm.navn.value==="") {
        alert("Alle felter med * skal udfyldes.");
        frm.navn.focus();
        return false;
    }
    if (frm.ean.value==="") {
        alert("EAN skal udfyldes.");
        frm.ean.focus();
        return false;
    }
    if (frm.email.value==="") {
        alert("Du skal indtaste din e-mail. Evt. Skolekom-adresse.");
        frm.email.focus();
        return false;
    }
    if (frm.adresse.value==="") {
        alert("Vi vil også gerne kende din adresse.");
        frm.adresse.focus();
        return false;
    }
    if (frm.by.value==="") {
        alert("Husk også by.");
        frm.by.focus();
        return false;
    }
    return true;
}
</script>

<form action="" onsubmit="return validate(this)">

Da klientafviklet JavaScript ikke indebærer nogen sikkerhed, bør du kun se en JS-validering som en service til ære for brugeren. Du bør af hensyn til sikkerheden stadig validere data med PHP på serveren  =)
Avatar billede Asky Forsker
18. april 2013 - 19:28 #9
Du mener altså ikke, at jeg skal erstatte PHP- koden med denne, men supplere. Evt. tage echo -beskederne væk?
Avatar billede olebole Juniormester
18. april 2013 - 20:09 #10
Det kunne lyde, som om din struktur gør, at du også har andre problemer. Mon ikke du f.eks. oplever dobbeltindsætninger, hvis brugeren trykker F5 efter en indsætning?

En bedre struktur ville være opbygget over to dokumenter: Ét med formen og ét med dine funktioner (response.php). Formen submittes efter JS-validering mod response.php, som foretager validering, databasekald, osv. Derefter sendes brugeren tilbage til form-siden via en header.

formular.php
<?php
$error_msg = '';
if (isset($_GET['error'])) {
    $error_msg = '<p class="error">' . $_GET['error'] . '</p>';
}
?>
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>Untitled Document</title>
<style type="text/css">
.error {
    font-weight: bold;
    color: red;
}
</style>
<script type="text/javascript">
function validate(frm) {
    // ... ... ...
}
</script>
</head>
<body>

<?php echo $error_msg ?>
<form action="response.php" method="post" onsubmit="return validate(this)">
<input name="context" value="opret" type="hidden">
<input name="return_page" value="<?php echo $_SERVER['PHP_SELF'] ?>" type="hidden">
... ... ...
</form>

</body>
</html>

response.php
<?php
function createNewUser() {
    // Valider data her
    if (some_error) {
        return 'Der skete en fejl - bla bla.';
    }
   
    // Kør din databasekode m.m. her
    if (some_error) {
        return 'Der skete en anden fejl - bla bla.';
    }
   
    return true;
}

$error = '';
if (isset($_POST['context'])) {
    switch ($_POST['context']) {
        case 'opret':
            $res = createNewUser();
            if (is_string($res)) $error = $res;
        break;
       
        default:
            $error = 'Parameter "context" not known';
    }
} else {
    $error = 'No parameter "context" supplied.';
}

$return_page = isset($_POST['return_page']) ? $_POST['return_page'] : '/index.php';
if ($error!=='') $return_page .= '?error=' . $error;

header($return_page);
?>

Du kan bruge response.php til mange forskellige opgaver. Du retter blot value på det hidden field, der hedder 'context' - og indsætter en tilsvarende case i switch'en i response.php
Avatar billede Asky Forsker
18. april 2013 - 21:28 #11
Tak for eksemplerne. Nu skal jeg ikke bruge database, men ende med at sende en mail med indputtene, men den kode skal vel ind samme sted. En af dagene laver jeg en model, der sender til mig selv. Den vil jeg lege lidt med, inden jeg piller ved det eksisterende.
Avatar billede Asky Forsker
22. april 2013 - 12:35 #12
Det virker med adslillelse i to filer! Mailen bliver afsendt. Der er kun fejlmeddelelser som "invalid argument" ved et par "Foreach()" selvom det valgte tilsyneladende kommer med i mailen.
Avatar billede olebole Juniormester
22. april 2013 - 14:56 #13
Ja, det er der jo ingen her, der kan hjælpe med  =)
Avatar billede Asky Forsker
22. april 2013 - 18:00 #14
Næ, men nogen ved måske, om det er en god ide, at flytte hele PHP-kontrollen af indputfelterne i formularen over i response-filen eller om specielt "Foreach()" skal blive i formularen.
Det er jo de samme koder, som i den oprindelige formular i én fil, hvor der ikke var fejlmeldinger.
Iøvrigt får jeg også fejlmelding på sidste linie i response-filen
"header($return_page);"Den skriver,at header er sendt og ikke kan sendes 2 gange.
Avatar billede olebole Juniormester
22. april 2013 - 18:15 #15
Jeg kan ikke råde om en kode, jeg ikke kender
Avatar billede Asky Forsker
22. april 2013 - 20:38 #16
her er hele response.php:
<?php
function createNewUser() {
    if(isset($_POST['send'])) {

function check_email($email) {
if((preg_match('/(@.*@)|(\.\.)|(@\.)|(\.@)|(^\.)/', $email)) || (preg_match('/^.+\@(\[?)[a-zA-Z0-9\-\.]+\.([a-zA-Z]{2,3}|[0-9]{1,3})(\]?)$/',$email)) ) {
$host = explode('@', $email);
if(checkdnsrr($host[1].'.', 'MX') ) return TRUE;
if(checkdnsrr($host[1].'.', 'A') ) return TRUE;
if(checkdnsrr($host[1].'.', 'CNAME') ) return TRUE;
}
return FALSE;
}

function check_postnummer($postnummer) {
if(preg_match ("/^[0-9]{4,4}$/", $postnummer)) {
return TRUE;
}
else
return FALSE;
}
function check_telefon($telefon) {
if(preg_match ("/^[0-9]{8,10}$/", $telefon)) {
return TRUE;
}
else
return FALSE;
}
$avalg = (isset($_POST['valg']) ? $_POST['valg'] : "");
    if(empty($avalg)){ echo "Sæt kryds i et af felterne."; }
        $N = count($avalg);
    echo " ";
   
    foreach($avalg as $valg){
        $string_valg.= $valg." ";
        echo " ";
    }
$asortering = (isset($_POST['sortering']) ? $_POST['sortering'] : "");
    if(empty($avalg)){ echo "Marker venligst Ja eller Nej."; }
        $N = count($asortering);
    echo " ";
   
    foreach($asortering as $sortering){
        $string_sortering.= $sortering." ";
        echo " ";
    }
    $alokal = (isset($_POST['lokal']) ? $_POST['lokal'] : "");
    if(empty($alokal)){ die ("Husk venligst lokalforeningen. "); }
        $I = count($alokal);
          echo " ";
      $string_lokal = "";
    foreach($alokal as $lokal){
        $string_lokal.= $lokal." ";
  }
if (empty($_POST['navn'])) {
        //besked hvis brugeren ikke har indtastet noget navn
        echo "                  Alle felter med * skal udfyldes. " ;
            }       
    elseif (empty($_POST['ean'])) {
    //besked hvis brugeren ikke har indtastet noget EANummer
    echo"              EAN skal udfyldes.";
      }
    elseif (empty($_POST['email'])) {
        //besked hvis brugeren ikke har indtastet nogen e-mail
        echo "                Du skal indtaste din e-mail. Evt. Skolekom-adresse" ;
          }
    elseif (empty($_POST['adresse'])) {
        //besked hvis brugeren ikke har indtastet nogen adresse
        echo"                Vi vil også gerne kende din adresse. " ;
        }
    elseif (empty($_POST['by'])) {
        //besked hvis brugeren ikke har indtastet nogen by
        echo"                  Husk også? by. Tryk tilbage og udfyld."; 
        }
   
    elseif (empty($_POST['cvr'])) {
        //besked hvis brugeren ikke har indtastet noget navn
        echo"                  Husk også? CVR."; 
        }
    elseif (check_telefon ($_POST ['telefon']) == FALSE){
    echo "Skriv venligst et korrekt telefonnummer.";   
    }
   
    elseif (check_postnummer($_POST['postnummer']) == FALSE){
    echo "Postnummeret skal være et 4-cifret tal." ;
      }
   
    elseif(check_email($_POST['email']) == FALSE) echo"              Skriv venligst en gyldig E-mail adresse.";

    else {


$emne = ($_POST['subject']);
$navn = ($_POST['navn']);
$adresse = ($_POST['adresse']);
$postnummer = ($_POST['postnummer']);
$by = ($_POST['by']);
$telefon = ($_POST['telefon']);
$email = $_POST['email'];
$ean = $_POST['ean'];
$cvr = $_POST['cvr'];
  $betaling = $_POST['betaling'];
$kommune = $_POST['kommune']; //Arbejdskommune
$skole= $_POST['skole'];//arbejdssted

$body ="<html>
<head>
    <meta http-equiv='content-type' content='text/html; charset=utf-8'/>
<style type='text/css'>
#body{
h1 {font-family : Verdana, Tahoma, sans-serif; font-size: 16px ;  text-align : left; color:#000000;}
h2 {font-family : Verdana, Tahoma, sans-serif; font-size 14px; text-align : left;}
h3 {font-family : Verdana, Tahoma, sans-serif; font-size: 12px/1,5 ; text-align : left; color : #000000;}
h4  {font-family : Verdana, Tahoma, sans-serif; font-size: 10px/1,5 ;  text-align : left; }
p {font-family : Verdana, Tahoma, sans-serif; font-size: 12px/1,3 ;  text-align : left; color :#000000;}
}
</style>
</head>
<body>
<h1>Hej $navn, <br/>Tak for din $emne</h1>"."<h3>".$navn." Mail: ".$email."\r\n Adresse: ".$adresse. "\r\n Postnummer: " .$postnummer. " By: " .$by."\r\n Tlf.: " .$telefon." Email: ".$email."\r\n Skole: ".$skole." Arbejdskommune: ".$kommune." Medlem:  " .$valg." Værelse:  ".$sortering." CVR: ".$cvr. " EAN: ".$ean." Lokalkreds: ".$alokal. " Betaling ".$betaling."\n\r Bemærkninger:  " .$_POST['bem']
. "<br/><br/>Venlig hilsen<br/></h3><h1>Bibliodan</h1></body></html>";

require_once('class.phpmailer.php');
include("class.smtp.php"); // optional, gets called from within class.phpmailer.php if not already loaded
$mail            = new PHPMailer();
//$body            = $mail->getFile('contentsbp.php');
//$body            = eregi_replace("[\]",'',$body);
$mail->IsSMTP(); // telling the class to use SMTP
$mail->Host      = "mail.stofanet.dk"; // SMTP server
$mail->SMTPDebug  = 2;                    // enables SMTP debug information (for testing)
// 1 = errors and messages
// 2 = messages only
$mail->SMTPAuth  = true;                  // enable SMTP authentication
$mail->Host      = "mail.stofanet.dk"; // sets the SMTP server
$mail->Port      = 25;                    // set the SMTP port for the GMAIL server
$mail->Username  = "8637850m003"; // SMTP account username
$mail->Password  = "zse45tgb";        // SMTP account password
$mail->From    = "arne@tunet.dk";
$mail->FromName = "Arne";
$mail->AddReplyTo("arne@skyggebjerg.dk","Arne");
//$mail->AddCC($email, "kunde");
$address = "$email";
$mail->AddAddress($address, "Kunde");
$mail->AddBCC("info@bibliodan.dk", "Bibilidan");
$mail->Subject = ($_POST['subject']);

$mail->IsHTML(true);
$mail->MsgHTML($body);
$address = ($_POST['email']);
//$mail->AddAddress($address, "Kunde");
//$mail->AddAttachment("images/phpmailer.gif");      // attachment
$mail->AddAttachment("images/phpmailer_mini.gif"); // attachment
if(!$mail->Send()) {
echo "Mailer Error: " . $mail->ErrorInfo;

} else {

    echo "<p> Formularen er blevet sendt med disse oplysninger: <br/> Navn:  ".$navn." ".$adresse." ".$postnummer." ".$by."<br/> E-mail: ".$email."  Emne: ".$emne."<br/>
    om kort tid modtager du en e-mail med din bestilling";
        }
}
}


    if (some_error) {
        return 'Der skete en fejl - bla bla.';
    }
   
    // Kør din databasekode m.m. her
    if (some_error) {
        return 'Der skete en anden fejl - bla bla.';
    }
   
    return true;
}

$error = '';
if (isset($_POST['context'])) {
    switch ($_POST['context']) {
        case 'opret':
            $res = createNewUser();
            if (is_string($res)) $error = $res;
        break;
       
        default:
            $error = 'Parameter "context" not known';
    }
} else {
    $error = 'No parameter "context" supplied.';
}

$return_page = isset($_POST['return_page']) ? $_POST['return_page'] : '/index.php';
if ($error!=='') $return_page .= '?error=' . $error;

//header($return_page);
?>
Avatar billede Asky Forsker
24. april 2013 - 10:22 #17
Den eneste fejlmeddelelse går på denne programmerering knyttet til en selectbox:

$alokal = (isset($_POST['lokal']) ? $_POST['lokal'] : "");
    if(empty($alokal)){ die ("Husk venligst lokalforeningen. "); }
        $I = count($alokal);
          echo " ";
      $string_lokal = "";
    foreach($alokal as $lokal){
        $string_lokal.= $lokal." ";
  }

I html-en ser selectboksen således ud:

<select name="lokal">
             
    <option  name="lokal[]">&nbsp;</option>
    <option  name="lokal[]"> Hele landet</option>

<option name="lokal[]">Lokalkreds Bornholm </option>

<option name="lokal[]">Lokalkreds Hovedstaden</option>

<option name="lokal[]">Lokalkreds Nordsjælland</option>
<option name="lokal[]">Lokalkreds Midt- og Vestsjælland</option>

<option name="lokal[]">Lokalkreds Storstrøm</option>

<option name="lokal[]">Lokalkreds Fyn</option>

<option name="lokal[]">Lokalkreds Nordjylland</option>

<option name="lokal[]">Lokalkreds Midtjylland</option>

<option name="lokal[]">Lokalkreds Sydjylland</option>

<option name="lokal[]">Lokalkreds Sydvestjylland</option>

<option name="lokal[]">Lokalkreds Sønderjylland</option>

<option name="lokal[]">Sønderjyllands Lokalforening</option>

<option name="lokal[]">Pensionistgruppen</option>
    </select>

Ellers må jeg sige, at problemet med at komme væk fra siden for tidligt er løst, selvom man ikke kommer tilbage til formularsiden automatisk. Til gengæld kan man trykke "tilbage" og se sine indtastninger, hvis det har interesse.
Avatar billede olebole Juniormester
24. april 2013 - 14:26 #18
Det tror pokker! Det giver ikke mening at give OPTIONs en name attribut. Prøv:


<select name="lokal[]">
             
    <option>&nbsp;</option>
    <option> Hele landet</option>
Avatar billede Asky Forsker
24. april 2013 - 21:03 #19
Det giver ingen fejl, men til gengæld er teksten i mailen -"array",så det giver ikke den ønskede oplysning.
Avatar billede olebole Juniormester
24. april 2013 - 21:39 #20
Du bruger noget forkert. Det fungerer fint:

<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>Untitled Document</title>
</head>
<body>

<form action="" method="post">
<select name="lokal[]" size="7" multiple>
    <option>&nbsp;</option>
    <option> Hele landet</option>
    <option>Lokalkreds Bornholm </option>
    <option>Lokalkreds Hovedstaden</option>
    <option>Lokalkreds Nordsjælland</option>
    <option>Lokalkreds Midt- og Vestsjælland</option>
    <option>Lokalkreds Storstrøm</option>
    <option>Lokalkreds Fyn</option>
    <option>Lokalkreds Nordjylland</option>
    <option>Lokalkreds Midtjylland</option>
    <option>Lokalkreds Sydjylland</option>
    <option>Lokalkreds Sydvestjylland</option>
    <option>Lokalkreds Sønderjylland</option>
    <option>Sønderjyllands Lokalforening</option>
    <option>Pensionistgruppen</option>
</select>
<p>
    <button type="submit">TEST</button>
</p>

<?php
$alokal = (isset($_POST['lokal']) ? $_POST['lokal'] : "");
if(empty($alokal)){ die ("Husk venligst lokalforeningen. "); }
$I = count($alokal);
echo " ";
$string_lokal = "";
foreach($alokal as $lokal){
    $string_lokal.= $lokal." ";
}
echo $string_lokal;
?>

</body>
</html>
Avatar billede olebole Juniormester
24. april 2013 - 21:45 #21
- selvom jeg nok selv ville skrive:

<?php
if (!isset($_POST['lokal'])) {
    die ("Husk venligst lokalforeningen. ");
}
$string_lokal = implode(' ', $_POST['lokal']);
echo $string_lokal;
?>
Avatar billede Asky Forsker
25. april 2013 - 09:42 #22
Nu har jeg prøvet begge løsninger i flere forsøg. Jeg får ingen fejl, men ved lokalkreds skriver den kun Array (som før)
Kan det skyldes, at den valuerer fra en anden fil? Oplysningen skal ende i en mail (ikke som echo)
Avatar billede olebole Juniormester
25. april 2013 - 10:00 #23
Du skal naturligvis bruge strengen $string_lokal i mail-teksten. Hvad ville du ellers bruge den til?
Avatar billede Asky Forsker
25. april 2013 - 11:41 #24
Jo netop. Desværre tror jeg, at jeg kører lidt i ring i øjeblikket. Det er lykkedes mig at få svaret "Array" eller slet ingen ting. Nu tror jeg, at jeg laver noget andet og vender tilbage til problemet senere på dagen.
Avatar billede olebole Juniormester
25. april 2013 - 15:23 #25
$alokal er et array, men det er jo ikke den, du skal udskrive. Det er $string_lokal, du skal udskrive:

<body>
<h1>Hej $navn, <br/>Tak for din $emne</h1>"."<h3>".$navn." Mail: ".$email."\r\n Adresse: ".$adresse. "\r\n Postnummer: " .$postnummer. " By: " .$by."\r\n Tlf.: " .$telefon." Email: ".$email."\r\n Skole: ".$skole." Arbejdskommune: ".$kommune." Medlem:  " .$valg." Værelse:  ".$sortering." CVR: ".$cvr. " EAN: ".$ean." Lokalkreds: ".$string_lokal. " Betaling ".$betaling."\n\r Bemærkninger:  " .$_POST['bem']
. "<br/><br/>Venlig hilsen<br/></h3><h1>Bibliodan</h1></body></html>";
Avatar billede Asky Forsker
25. april 2013 - 22:58 #26
Det var godt at komme lidt væk fra problemet. Nu virker det nemlig! :-)
på formularen sørger JavaScriptet for at alle obligatoriske felter bliver udfyldt, derefter tager response.php over og skriver beskeden (echo)til modtageren og sender en mail med bestillingerne. Man kommer dog ikke retur til formularen med mindre man trykker "tilbage". Det er sådan set også udmærket.
Avatar billede olebole Juniormester
25. april 2013 - 23:23 #27
Du sender bare brugeren retur med en header
Avatar billede Asky Forsker
26. april 2013 - 08:42 #28
Ja, det forståjeg godt. Det er 
header($return_page);
Der er dog også visse fordele ved at blive stående på responsen, idet brugeren roligt kan læse echo-beskeden om, at mailen er sendt og bestillingen er gået igennem. Somme tider er usikre kunder i tvivl, om de nu også har sendt bestillingen;-)
Jeg takker mange gange for hjælpen.
Med venlig hilsen Arne (fast kunde:-))
Avatar billede olebole Juniormester
26. april 2013 - 15:55 #29
Idéen med sådan et responsdokument er at holde det fri for output og kun udføre handlinger på serveren. Evt. fejlmeddelelser lægger man så i en session, inden brugeren sendes tilbage til formsiden, hvor de skrives ud.

Opstår der ikke fejl, vil brugeren som regel blive sendt til en side, som informerer om, at mail er sendt, etc.

Det er noget skidt, at brugeren informeres om fejl i ét dokument - og så skal rette dem i et andet, hvor fejlbeskederne ikke længere kan ses  =)
Avatar billede Asky Forsker
26. april 2013 - 17:03 #30
Nu er det jo sådan, at responsen ikke får lov at køre, før alle obligatoriske felter er udfyldt (JScript) men det kan jo desværre slåes fra. Det kunne måske være en ide, at sende echo-beskeden til et specielt svardokument-måske et skilt mindre end skærmen. Tilbage til siden kom beskeden jo, da det var et dokument og det var ikke ideelt at skrive oveni samme side.
Noget andet er, at TDCwebmore kun accepterer mailen sendt som SMTP. Det giver i tilgift en masse skriveri øverst på skærmen.
Avatar billede olebole Juniormester
26. april 2013 - 17:12 #31
Det forstod jeg hat af  =)
Avatar billede Asky Forsker
26. april 2013 - 20:43 #32
Mener du det med TDCwebmore eller det andet?
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