Regulære udtryk, 4. del, Kogebogsudtryk

Størrelse: px
Starte visningen fra side:

Download "Regulære udtryk, 4. del, Kogebogsudtryk"

Transkript

1 Denne guide er oprindeligt udgivet på Eksperten.dk Regulære udtryk, 4. del, Kogebogsudtryk Artiken gennemgår regex'er til nogle almindelige opgaver: dato, klokkeslet, adresse, URL, HTML-tags og -attributter, hel linje med bestemte ord og password. Desuden introduceres if-then-else matchning. Skrevet den 04. Feb 2009 af nielle I kategorien Programmering / Reg.Exp. Indledning Dette er den 4. og foreløbig sidste artikel i min miniserie om regulære udtryk. Den var fra starten af tænkt til at skulle være en simpel liste over nogle specielt brugbare "dagligdags" regulære udtryk. Den endte med at være noget lidt mere end det. Den endte i øvrigt også med at være noget længere end planlagt. Artiklen er ikke nogen facitliste. Andre kan sagtens have en anden mening om, hvordan en given regexp bør se ud. Under alle omstændigheder afhænger den slags altid af sammenhængen det skal bruges i. Der er også forskel på hvordan en regexp bør se ud, hvis man ønsker at udtrække data af en streng - i forhold til hvordan den skal se ud hvis den skal bruges til at validere et input. I det første tilfælde behøver den ikke at være så omstændelig idet man forudsætter at data allerede er i orden, og man blot ønsker at undgå at få fat i "falske" match. I det andet tilfælde ønsker man netop at sikre sig at input faktisk er ok. Som altid vil kodeeksemplerne være i PHP. Hvis man ønsker at bruge regexp i andre sprog vil jeg henvise til den 3. artikel som er tænkt som en slags regexp'ernes Rosetta-sten. :^) v. 1.0: 23/12/ Første version. v. 1.1: 09/01/ Tilføjelse til mønsteret for matchning af en dato. v. 1.1b: 09/01/ Rettelse i dato-mønsteret: Der er da ikke 32 dage i en måned... Match en lovlig dato Datoer på formen dd-mm-yyyy kan matches med dette mønster: $pattern = "(0[1-9] [12]\d 3[01])-(0[1-9] 1[012])-(19 20)\d{2}"; Det tager dog ikke højde for at nogen måneder kun er 28, 29 eller 30 dage. Det er endvidere baseret på at året af formen 19xx eller 20xx, men denne del kan selvfølgelig tilpasses. Eller, hvis datoer også skal kunne matches selvom der ikke nødvendigvis er foranstillet med '0' - som f.eks : $pattern = "(0?[1-9] [12]\d 3[01])-(0?[1-9] 1[012])-(19 20)\d{2}";

2 Match et klokkeslæt Klokkeslæt på formen hh:mm:ss kan matches med: $pattern = "\d{2}:\d{2}:\d{2}"; Er der millisekunder med, kan det matches med: $pattern = "\d{2}:\d{2}:\d{2}:\d{3}"; Disse mønstre tillader godt nok ulovlige klokkeslæt som f.eks. 99:99:99 og hvis man vil være helt sikker på at undgå at matche på disse kan man gøre noget i stil med det der er gjort ovenfor for datoer. Match en adresse En typisk anvendelse af regulære udtryk er validering af input fra brugeren. F.eks. validering af en indtastet adresse fra en form på en hjemmeside: $name = trim($_post['name']); $ = trim($_post[' ']); Jeg vil gerne tilmeldes jeres nyhedsbrev: <form method="post"> Navn: <input type="text" name="name" value="= $name"><br> <input type="text" name=" " value="= $ "><br> <input type="submit" value="send"> </form> php function RegisterForNewsletterConfirmationMail($name, $ ) { // Gem i databasen som mulig modtager af newsletter. // Send en godkendelses . //... } echo "Tak for din interesse. Du vil modtage en med et link som du skal klikke på før at din tilmelding til vores nyhedsbrev aktiveres."; if (!empty($name) &&!empty($ )) { $namepattern = "^.{10,}$"; // Mindst 10 tegn i navnet $ pattern = "^[^@]+@(?:[\w-]+\.)+[a-z]{2,}$"; if (!preg_match("/$ pattern/i", $ )) {

3 echo "Det ligner ikke en adresse!"; } else if (!preg_match("/$namepattern/", $name)) { echo "Navnet er for kort!"; } else { // Alt ok RegisterForNewsletterConfirmationMail($name, $ ); } } else if (!empty($name)!empty($ )) { echo "Du mangler at udfylde mindst et af felterne."; } regexp'en: ^[^@]+@(?:[\w-]+\.)+[a-z]{2,}$ består af følgende dele: ^... (?:[\w-]+\.)+... [a-z]{2,}... $ (o) ^ og $ : matcher hhv. "starten af strengen" og "slutningen af strengen". De er med for at sikre at der ikke er andet end -kandidaten i strengen. (o) [^@]+ : matcher det der står foran Faktisk er der ikke nogen restriktioner på hvad der må stå der - det er overladt til den modtagende mail server at bestemme om det er en rigtig eller forkert modtager. : matcher tegn". (o) (?:[\w-]+\.)+ : matcher domæne-delen af adressen på nær TLD'et. I "nielle@ matcher den " og i "nielle@eksperten.dk" matcher den "eksperten.". Læg specielt mærke til at punktummet er inkluderet i det matchede (o) [a-z]{2,} : matcher Top Level Domænet. De længste TLD'er som pt. er i brug er ".museum" og ".travel" så delmønsteret kunne også have været den mere strikse [a-z]{2,6}. Men hvem ved... måske kommer der nogle endnu længere i fremtiden, og så ville det være lidt trist at skulle rette i sit script af den grund. Husk i øvrigt på, at selv om en regexp kan validere at noget ligner en adresse så kan den hverken verificere: (o) at den overhovedet findes (o) at der er nogen som faktisk læser de s der sendes til den (o) at den tilhører den bruger som har indtastet den For at tage højde for den slags bør man have et system som sender en med et aktiveringslink til den angivne adresse. Dette falder dog lidt uden for denne artikel. Generelt om validering af input fra brugerne Når man validere på en form kan man vælge at validere clientside med JavaScript eller serverside med PHP. Og man kan selvfølgelig vælge at gøre begge dele. Man må endelig ikke basere sin sikkerhed på clientside validering (nu snakker jeg altså web programmering). Folk med hacker-tendenser har rigeligt af muligheder for at slå diverse valideringer fra eller at sammensætte specielt input med det specifikke formål at kompromittere et system. Validering på

4 clientside har sin berettigelse, men det er først og fremmest som en hjælp til brugerne snarere end som en sikkerhedsmekanisme. Hvis input skal valideres, så skal det også valideres på serverside. Men sikkerheden stopper ikke nødvendigvis der - man bør f.eks. også være opmærksom på angrebstyper som SQL injektion og cross-side scripting. Match en URL Der er visse ligheder mellem hvordan man behandler en web adresse i forhold til en adresse. Dette er selvfølgelig ikke så underligt eftersom at delleddet efter '@' tegnet jo er en web adresse. Imidlertid er der alligevel nogle ekstra problemstillinger. (o) Man ønsker måske ikke at kunne komme til at matche på sådan noget som "Folk glemmer måske mellemrummet efter et punktum.de fortsætter bare lige efter...". (o) En web adresse kan indeholde en del mere end blot selve domænet, f.eks. " Mit bud på en løsning: $pattern = ' ((?:https? ftp)://)? # scheme ([\w-]+\.)+ # host - domain og subdomain\'s ([a-z]{2,}) # host - tld (:\d+)? # port (/~?[^\s/?&]*)* # path ([?&][^\s=?&\#]+=[^\s=?&\#]*)* # query - after the question mark? (\#[^\s]+)? # fragment '; $phppattern = "{". $pattern. "}x"; $text = "xxx yyy"; $text = preg_replace($phppattern, "<a href='$0'>$0</a>", $text); echo $text. "<br>"; $text = "xxx yyy"; $text = preg_replace($phppattern, "<a href='$0'>$0</a>", $text); echo $text. "<br>"; $text = "xxx query3=13#fragment yyy"; $text = preg_replace($phppattern, "<a href='$0'>$0</a>", $text); echo $text. "<br>"; Et URL består potentielt af så mange dele at det hurtigt bliver svært at holde styr på hvilket delmønster af

5 regexp'en som holder styr på hvad. Ved at tilføje x-modifieren til regexp'en får man mulighed for at skrive kommentarer. Disse starter med et '#', og da '#' dermed er blevet et specialtegn (på samme måde som '.', '^', osv.) skal det dermed også escapes hvis det blot skal matche et '#' - som i fragment-leddet ovenfor. Samtidigt betyder x-modifieren at eventuelle whitespace-tegn i regexp'en ignoreres, og det er årsagen til at jeg kan tillade mig at opstille de enkelte kommentarer pænt over hinanden. Hvis man har brug for at matche whitespace-tegn kan man altid falde tilbage på at matche dem med \s. Somme tider kan man ikke få det som man vil; den viste regexp vil f.eks. fortolke punkt 1 fra ovenfor, "... et punktum.de fortsætter..." som et URL. Tit ser man at folk forsøger at lave en regexp som bare skal kunne klare alt. Resultatet er ofte at de i stedet får lavet et monster udtryk som introducerer flere fejl end det eliminere. Desuden bliver sådanne udtryk som regel temmelig skrøbelige, forstået på den måde at man ikke kan lave en eneste lille bitte rettelse uden at den slet ikke fungere mere. Det er vigtigt at man er klar over at regexp ikke er et vidundermiddel, og at man nogen gange er bedre tjent med at dele en given opgave over flere udtryk, eller måske endda finde en helt anden løsning. Matchning på HTML tags Regulære udtryk kan bruges til at saniterer potentielt farligt input fra brugerne - men husk at gøre det servereside, ellers er det ikke meget værd som beskyttelse! Specielt som webudvikler skal man kende lidt til hacking, i hvert fald til det niveau hvor man er klar over hvilke typer angreb der findes, og hvordan man så beskytter sig i mod dem. Et af disse angreb er crosssite scripting, ofte forkortet som XSS for ikke at forveksle det med cascading style sheets. I al sin enkelthed går det ud på at en hacker-type forsøger at poste tekst med skadelig JavaScript (eller anden type clientside script) til dit site i håb om at du så bare poster det råt og ubehandlet på din tagwall. Hvis det sker for dig en dag så er du uheldigvis i fint selskab med et par rigtigt store websites. $tiltagwall = 'html kode her... <script type="text/javascript"> {Noget potentielt farligt JavaScript her} </script>... og mere html kode her... <SCRIPT type="text/javascript"> {Lidt mere JavaScript her} </script>... og resten af html\'en her.'; $pattern = "<script[^>]*>.*?</script>"; // Læg mærke til tricket med [^>]* $phppattern = "#$pattern#is"; $tiltagwall = preg_replace($phppattern, "", $tiltagwall); echo $tiltagwall; Resultat:

6 html kode her og mere html kode her og resten af html'en her. Nu har PHP faktisk allerede en ganske udmærket funktion, i form af strip_tags(), til netop den slags problemstillinger. Imidlertid klare den ikke lige det viste eksempel, hvor at man ville få dette: html kode her... {Noget potentielt farligt JavaScript her}... og mere html kode her... {Lidt mere JavaScript her}... og resten af html'en her. (selve <script> taggene er dog forsvundet - så det postede er ikke skadelig mere) Efter min mening gør denne "mangel" nu heller ikke så meget, for jeg ville aldrig drømme om at bruge ret mange kræfter at smukkesere poster med indhold i stil med det ovenstående. Sådan nogen ville jeg simpelthen smide helt væk i stedet for! Hvis folk forsøger at sabotere mit site, står de alligevel til at blive bannet - måske endda anmeldt. Som sagt har PHP allerede strip_tags() og eksemplerne i denne sektion er mere tænkt som en demonstration (eller til brug i andre sprog). Match attributter - brug af if-then-else regexp'en HTML-tags har ofte attributter, og attributterne har værdier; Desværre er folk ikke altid så omhyggelig med om der skal et '-tegn eller et "-tegn eller ingenting om værdien: <img src='/img/elogo.png' alt='logo' /> <img src="/img/elogo.png" alt="logo" /> <img src=/img/elogo.png alt=logo /> Dette giver nogle problemer når man f.eks. ønsker at få fat på værdien af src-atributten i det ovenstående. Det er nu nok til at klare, for det er vel bare et eller andet med at matche alt efter 'src' indtil at man enten møder et mellemrum eller en '/' eller en '>'. Så kan man altid trimme for eventuelle ' eller "-tegn bagefter. Hmm, rent faktisk er den med '/'-tegnet et problem, for netop det tegn indgår muligvis også i filstien. Endnu værre bliver det dog med alt-attributten. Der kan man ikke tillade sig at antage at matche til og med første mellemrum, for det er jo også tilladt med mellemrum i selve teksten: <img src="/img/elogo.png" alt="e'logo bryderen er ikke videre kendt" /> Nu er jeg ikke så ond at jeg fortæller om alle problemerne for så at fortælle at der ikke er en løsning. Løsningen er noget i stil med at se på det første tegn efter '=' og så gøre noget forskelligt alt efter om det er et '-tegn eller et "-tegn eller ingen af delene: $pattern = '<img [^>]*?alt=(["\'])?(.*?)(?(1)\1 [ />])'; // '-tegnet skal escapes i en '-streng $phppattern = "#$pattern#i"; $tekst = "xxx <img aaa='111' alt='a b c' bbb='222'> yyy"; preg_match($phppattern, $tekst, $matches); echo "alt = [". $matches[2]. "], omklamrings-tegn = [". $matches[1]. "]<br>";

7 $tekst = 'xxx <img aaa="111" alt="a b c" bbb="222"> yyy'; preg_match($phppattern, $tekst, $matches); echo "alt = [". $matches[2]. "], omklamrings-tegn = [". $matches[1]. "]<br>"; $tekst = 'xxx <img aaa="111" alt=a b c bbb="222"> yyy'; preg_match($phppattern, $tekst, $matches); echo "alt = [". $matches[2]. "], omklamrings-tegn = [". $matches[1]. "]<br>"; Resultat: alt = [a b c], omklamrings-tegn = ['] alt = [a b c], omklamrings-tegn = ["] alt = [a], omklamrings-tegn = [] Forklaring: Den kødfulde del af regexp'en er denne her alt=(["\'])?(.*?)(?(1)\1 [ />]) som kan deles i disse 4 delmønstre: alt=... (["\'])?... (.*?)... (?(1)\1 [ />]) (o) alt= : matcher teksten "alt=" og det er denne del, som sikre at det netop er alt-attributtens værdi vi ender med. (o) ["'] : matcher "et '-tegn eller et "-tegn". (o) (["']) : Dette bliver fanget i den første gruppe, og kan derefter tilbagerefereres som \1, hvilket jeg benytter om lidt. (o) (["'])? : Det afsluttende?-tegn er yderlig en detalje - den sikre at der også kan matches i tilfældet hvor der hverken er et '- eller et "-tegn på den plads. (o).*? : Lazy-matcher det der kommer efter gruppe 1. Hvis der ikke er noget som tvinger denne til at matche noget, ville.*? faktisk slet ikke matche andet end den tomme streng. Tvangen kommer fra det 4. delmønster som jeg kommer til lige om et sekund. (o) (.*?) : Det matchede huskes som 2. gruppe, og det er derfor at vi efterfølgende kan udskrive det som værdien af $matches[2]. Det 4. delmønster bruger en regex-konstruktion som jeg ikke har fortalt om før nu - if-then-else: (o) (?(n) then else ) : "hvis gruppe n matchede noget, matcher if-then-else det der står på pladsen 'then', og ellers matcher den det der står på pladsen 'else'". Pladserne 'then' og 'else' kan være regulære udtryk. I det konkrete tilfælde, (?(1)\1 [ />]), er det: (o) n = 1 : Hvis det lykkes for gruppe 1 at matche noget er det 'then' delen der benyttes, og ellers er det 'else' delen. (o) then = \1 : Hvis gruppe 1 matcher noget, vil "\1" være en backreference til den. Hvis der derfor

8 matches et '- eller et "-tegn vil 4. delmønster tvinge den totale regex til at lede efter dennes tvilling i den modsatte ende af værdien. (o) else = [ />] : Hvis det derimod ikke lykkes for gruppe 1 at matche, vil 4. delmønster i stedet tvinge regex'en til at fortsætte med at matche indtil der mødes et mellemrum eller et '>'-tegn. Matche en linje, som indeholder et bestemt ord Vi har et stykke tekst, bestående af flere linjer, og vi ønsker at få fat i netop de linjer hvor et bestemt ord indgår. Et første gæt kunne være at forsøge at matche på "\bord\b": $tekst = "Linje med et bestemt ord i. Endnu en linje, hvor ordet ikke er i. Det der ord igen."; $pattern = "\bord\b"; // Delmønstre: \b... ord... \b $phppattern = "/$pattern/im"; // m-modifieren er vigtig her! preg_match_all($phppattern, $tekst, $matches); echo "[pre]"; print_r($matches); echo "</pre >"; Resultat: Array ( [0] => Array ( [0] => ord [1] => ord ) ) Vi får godt nok fat i de to gange "ord", men så heller ikke ret meget mere... vi får ikke resten af linjernes indhold. En mulig løsning er at ændre vores mønster til: $pattern = "^.*?\bord\b.*$"; og det giver det ønskede resultat: Array

9 ( ) [0] => Array ( [0] => Linje med et bestemt ord i. [1] => Det der ord igen. ) Løsningen virker, men den skalerer ikke specielt godt til flere ord... Match en linje, som indeholder to bestemte ord Vi har et stykke tekst, bestående af flere linjer, og vi ønsker at få fat i netop de linjer hvor to bestemte ord indgår. Hvis vi ved/forlanger at ord1 kommer før ord2: $pattern = "^.*\bord1\b.*?\bord2\b.*$"; Eller... hvis vi intet ved om, eller ligefrem er ligeglad med, rækkefølgen af dem: $pattern = "^.*?(\bord1\b.*?\bord2\b \bord2\b.*?\bord1\b).*$"; Måske ikke særligt kønt, men det klare jobbet. Det bliver dog rigtigt hurtigt endnu værre når vi forsøger at udvide løsningerne til 3, 4, 5,... ord. Positive lookahead to the rescue! Lad os prøve en anden fremgangsmåde; test på et enkelt ord (igen): $pattern = "^(?=.*?\bord\b).*$"; Parentesen (?=...) kaldes for en positive lookahead (artikel nr. 2). Den går basalt ud på at: (o) xxx(?=yyy) : matcher "det der står på pladsen xxx, hvis og kun, hvis det efterfølges af det der står på pladsen yyy". Både xxx og yyy kan være regulære udtryk i egen ret, og det er de i det ovenstående; i mønsteret "^(?=.*?\bord\b)" er xxx lige med mønsteret '^' og yyy lig med ".*?\bord\b": (o) ^ : matcher "starten af strengen". (o).*?\bord\b : lazy-matcher "et vilkårligt antal tegn, efterfulgt af starten af et ord (\b), efterfulgt af teksten/ordet 'ord', efterfulgt af slutningen af et ord (\b)". (o) ^(?=.*?\bord\b) : matcher derfor "starten af strengen, hvis og kun, hvis den er efterfulgt af et stykke tekst som indeholder ordet 'ord' (uden at dette er en del af et større ord)".

10 Læg her specielt mærke til formuleringen:... matcher "starten af strengen..."... Det er nemlig kun starten der matches af det ovenstående! For at få fat i indholdet af selve linjen skal den derfor udvides en smule til: (o) ^(?=.*?\bord\b).*$ : matcher "starten af strengen, hvis og kun, hvis ordet 'ord' indgår, efterfulgt af et vilkårligt antal tegn, efterfulgt af enden af strengen". Vi har altså stadig et regulært udtryk, som matcher en linje, hvis og kun, hvis den indeholder 'ord'. Det er det samme som en side eller to længere oppe... Så hvad har vi fået egentlig ud af det? Vi har fået ud det ud af det at vi nu har et udtryk som kan "stables" på en skalerbar måde: (o) ^(?=.*?\bord1\b).*$ : matcher "en linje, hvis og kun, hvis den indeholder ordet 'ord1'". (o) ^(?=.*?\bord1\b) (?=.*?\bord2\b).*$ : matcher "en linje, hvis og kun, hvis den indeholder ordene 'ord1' og 'ord2'". (o) ^(?=.*?\bord1\b) (?=.*?\bord2\b) (?=.*?\bord3\b).*$ : matcher "en linje, hvis og kun, hvis den indeholder ordene 'ord1' og 'ord2' og 'ord3'". (o) osv. 1, 2, mange... - match et password Vi startede altså med den grundlæggende regex, "\bord\b", og den blev til pakket ind til "^(?=.*?\bord\b).*$". Den generelle opskrift ser sådan ud: Hvis man vil matche alle de linjer, som indeholder noget, som matcher "det regulære udtryk 'regex'", skal man bruge regex'en "^(?=.*?regex).*$". Eksempel: Vi ønsker at et password skal opfylde visse betingelser for at være sikker: Det skal være mindst otte tegn langt, indeholde minimum to store bogstaver, minimum to små bogstaver, mindst et tal og mindst et af tegnene '@', '#', ' ', ' ', '$', '%' og '&'. Hver af disse krak kan udtrykkes med en regex: (o) regex1 =.{8,} : matcher "8 eller flere vilkårlige tegn". (o) regex2 = [A-Z].*?[A-Z] : matcher "mindst 2 store bogstaver". 'Æ', 'Ø' og 'Å' er dog ikke dækket af løsningen. (o) regex3 = [a-z].*?[a-z] : matcher "mindst 2 små bogstaver". 'æ', 'ø' og 'å' undtaget. (o) regex4 = \d : matcher "mindst 1 ciffer". (o) regex5 = [@# $%&] : matcher "et vilkårligt af tegnene '@', '#', ' ', ' ', '$', '%' eller '&'". Med opskriften fra før klares dette med denne stablede regex: $pattern = '^(?=.*?regex1)(?=.*?regex2)(?=.*?regex3)(?=.*regex4)(?=.*regex5).*$'; Koden:

11 <form method="post"> <input type="password" name="glpassword"><br> <input type="password" name="nypassword1"><br> <input type="password" name="nypassword2"><br> <input type="submit" value="nyt password"> </form> $glpassword = trim($_post['glpassword']); $nypassword1 = trim($_post['nypassword1']); $nypassword2 = trim($_post['nypassword2']); if (!empty($glpassword)) { // 1) Tjek at $glpassword er det gamle password // 2) Tjek at $nypassword1 == $nypassword2 //... og så... $pattern = '^(?=.{8,})(?=.*?[A-Z].*?[A-Z])(?=.*?[a-z].*?[az])(?=.*?\d)(?=.*?[@# $%&]).*$'; $phppattern = "/$pattern/"; if (preg_match($phppattern, $nypassword1)) { echo "OK"; // Opdater brugeren til at bruge det nye password } else { echo "Ikke OK"; } } else { echo "..."; } Der er snydt lidt på vægten ved regex1 og det oprindelige delmønster er simplificeret fra (?=.*?.{8,}) til (?=.{8,}) men ellers går den det samme. Kommentar af cf560 d. 13. Jan takker Kommentar af jih d. 28. Aug nice.. :-) Kommentar af horizon d. 20. Aug En lille ting jeg har undret mig over mht. validering af s og urls i php og som jeg sjældent ser kommenteret nogen steder er hvorfor man ikke "bare" bruger funktionen filter_var($string, FILTER_VALIDATE_ ) eller FILTER_VALIDATE_URL er dette ikke hurtigere at bruge eller kontrollerer disse ikke lige så grundigt? (og ja, er med på reg.exp. også bruges i mange andre progammeringssprog, undrer mig bare i php sammenhænge)

Regulære udtryk, 2. del

Regulære udtryk, 2. del Denne guide er oprindeligt udgivet på Eksperten.dk Regulære udtryk, 2. del Artiklen uddyber mange af de begreber, som blev introduceret i den 1. artikel. Den burde dog kunne læses alene, hvis man allerede

Læs mere

Regulære udtryk, 1. del

Regulære udtryk, 1. del Denne guide er oprindeligt udgivet på Eksperten.dk Regulære udtryk, 1. del Validere input - udtrække tekst af tekst efter specielle kriterier - efterbehandle tekst. Regulære udtryk kan alt dette og mere

Læs mere

Gæstebog med validering opbygget med MySQL

Gæstebog med validering opbygget med MySQL Denne guide er oprindeligt udgivet på Eksperten.dk Gæstebog med validering opbygget med MySQL Dette er en simpel gæstebog, som kan hjælpe folk med at lave en velfungerende gæstebog uden alt for meget arbejde.

Læs mere

Med register_globals = On får du automatisk adgang til en række variabelnavne i dit script.

Med register_globals = On får du automatisk adgang til en række variabelnavne i dit script. Denne guide er oprindeligt udgivet på Eksperten.dk Register Globals Off Lad os slå en ting fast med det samme - register_globals = Off er en god ting, i hvert fald set ud fra et sikkerhedsmæssigt synspunkt.

Læs mere

Loginsystem (med MySQL)

Loginsystem (med MySQL) Denne guide er oprindeligt udgivet på Eksperten.dk Loginsystem (med MySQL) Dette er en guide til, hvordan man kan lave et loginsystem med php og muligvis også med sessioner og MySQL Skrevet den 02. Feb

Læs mere

I denne artikel, vil der blive gennemgået de grundlæggende PHP-funktioner, såsom udskrift til skærmen, tid og dato og if-sætningen.

I denne artikel, vil der blive gennemgået de grundlæggende PHP-funktioner, såsom udskrift til skærmen, tid og dato og if-sætningen. Denne guide er oprindeligt udgivet på Eksperten.dk Grundlæggende PHP I denne artikel, vil der blive gennemgået de grundlæggende PHP-funktioner, såsom udskrift til skærmen, tid og dato og if-sætningen.

Læs mere

Tagwall med Php & MySQL

Tagwall med Php & MySQL Denne guide er oprindeligt udgivet på Eksperten.dk Tagwall med Php & MySQL Her laver vi en tagwall i Php & MySQL... jeg forklarer dog ikke så meget, men jeg håber du kan få det til at blive til en tagwall

Læs mere

Ratingsystem i PHP og MySQL

Ratingsystem i PHP og MySQL Denne guide er oprindeligt udgivet på Eksperten.dk Ratingsystem i PHP og MySQL Lær at lave et system til at vise rating/bedømmelse på artikler og nyheder. Skrevet den 03. Feb 2009 af virtual1ty I kategorien

Læs mere

Sådan kan du sende data fra din egen hjemmeside til JitBesked via en HTML-JDF.

Sådan kan du sende data fra din egen hjemmeside til JitBesked via en HTML-JDF. Sådan kan du sende data fra din egen hjemmeside til JitBesked via en HTML-JDF. Vejledningen her beskriver hvordan man opbygger en form i HTML og sender indholdet af felterne til JitBesked. Det kræver du

Læs mere

I denne arktikle går jeg gennem Slet, Ret og Opret data i en MySQL database. der er også en lille del i den hvor den postere datanen ud i en løkke

I denne arktikle går jeg gennem Slet, Ret og Opret data i en MySQL database. der er også en lille del i den hvor den postere datanen ud i en løkke Denne guide er oprindeligt udgivet på Eksperten.dk MySQL for nybegynder I denne arktikle går jeg gennem Slet, Ret og Opret data i en MySQL database. der er også en lille del i den hvor den postere datanen

Læs mere

Interaktionsudvikling

Interaktionsudvikling Projektopgave 3: Interaktionsudvikling CPH business, klasse: MulA2013 Projektansvarlige undervisere Thomas Hartmann MereteGeldermann lützen: Projekt produkt url: www.amalieardahl.dk/projekt3/index.html

Læs mere

At klippe en streng over på det mest hensigtsmæssige sted

At klippe en streng over på det mest hensigtsmæssige sted Denne guide er oprindeligt udgivet på Eksperten.dk At klippe en streng over på det mest hensigtsmæssige sted Formålet med denne artikel er at kaste lidt lys over, hvordan man klipper en streng over på

Læs mere

Afsending af s vha. ASP

Afsending af  s vha. ASP Denne guide er oprindeligt udgivet på Eksperten.dk Afsending af emails vha. ASP Det kan ofte være praktisk at afsende emails fra sin hjemmeside. Denne artikel tager udgangspunkt i komponenten JMail fra

Læs mere

Dynamisk PHP design OPDATERET

Dynamisk PHP design OPDATERET Denne guide er oprindeligt udgivet på Eksperten.dk Dynamisk PHP design OPDATERET I har måske undret jer over "http://bla.dk/?side=kontakt", her beskriver jeg hvordan, og hvorfor Skrevet den 03. Feb 2009

Læs mere

PHP Snippets. De små korte. Skrevet af Daniel Pedersen

PHP Snippets. De små korte. Skrevet af Daniel Pedersen PHP Snippets De små korte Skrevet af Daniel Pedersen Indhold PHP Snippets De små korte er en samling af små og praktiske kode eksempler med kort forklaring, som med formål at kunne benyttes til opsalgsværk

Læs mere

Kontrol-strukturer i PHP

Kontrol-strukturer i PHP Denne guide er oprindeligt udgivet på Eksperten.dk Kontrol-strukturer i PHP Denne artikel gennemgår kontrolstrukturer i PHP. 'if', 'switch', 'while' og 'for' bliver gennemgået. Den forudsætter lidt grundlæggende

Læs mere

Begrynder til at lave log ind system

Begrynder til at lave log ind system Denne guide er oprindeligt udgivet på Eksperten.dk Begrynder til at lave log ind system Hej Vil jeg gerne lave en lille programmering forklare til hvordan du laver din helt egen lille start på at log ind

Læs mere

SESSION med PHP. En let begynderguide som kan føre dig ind i en verden af muligheder. Denne guide er oprindeligt udgivet på Eksperten.

SESSION med PHP. En let begynderguide som kan føre dig ind i en verden af muligheder. Denne guide er oprindeligt udgivet på Eksperten. Denne guide er oprindeligt udgivet på Eksperten.dk SESSION med PHP En let begynderguide som kan føre dig ind i en verden af muligheder Skrevet den 03. Feb 2009 af mccookie I kategorien Programmering /

Læs mere

I denne artikel vil jeg gennemgå hvordan en side for RSS "Live Bogmærke" kan se ud.

I denne artikel vil jeg gennemgå hvordan en side for RSS Live Bogmærke kan se ud. Denne guide er oprindeligt udgivet på Eksperten.dk RSS "Live Bogmærke" I denne artikel vil jeg gennemgå hvordan en side for RSS "Live Bogmærke" kan se ud. Skrevet den 10. Feb 2009 af madsass I kategorien

Læs mere

Uploade billeder eller andre filer ved hjælp af php og mysql

Uploade billeder eller andre filer ved hjælp af php og mysql Denne guide er oprindeligt udgivet på Eksperten.dk Uploade billeder eller andre filer ved hjælp af php og mysql Denne artikel viser hvordan man kan uploade et billede eller en anden fil, og tilknytte det

Læs mere

Upload af billeder/filer for nybegyndere Del. 2

Upload af billeder/filer for nybegyndere Del. 2 Denne guide er oprindeligt udgivet på Eksperten.dk Upload af billeder/filer for nybegyndere Del. 2 I denne Del vil jeg ikke gaa saa dybt i fil upload som i sidste. Jeg vil i stedet forklare om funktioner

Læs mere

Listen over reserverede ord er meget lang, men de væsentligste vil jeg beskrive her i denne artikel:

Listen over reserverede ord er meget lang, men de væsentligste vil jeg beskrive her i denne artikel: Denne guide er oprindeligt udgivet på Eksperten.dk SQL og ASP En artikel omkring simpel SQL og hvordan disse opbygges, udformes og udføres, sådan at man kan få et brugbart resultat i ASP. Dette ligefra

Læs mere

I mit script tager jeg højde for det problem ved, at gemme et unikt tal mellem 0-9 på 6 cifre og derved vil de så blive vist som 2 online.

I mit script tager jeg højde for det problem ved, at gemme et unikt tal mellem 0-9 på 6 cifre og derved vil de så blive vist som 2 online. Denne guide er oprindeligt udgivet på Eksperten.dk Hvem er online? Online script, som tager højde for at der kan være flere personer, som har den samme IP-adresse. Scriptet viser hvor lang tid brugeren

Læs mere

Reeksamen, DSDS, forår 2008

Reeksamen, DSDS, forår 2008 Reeksamen, DSDS, forår 2008 Introduktion til Scripting, Databaser og Systemarkitektur Jonas Holbech IT Universitetet i København 22. august 2008 Alle hjælpemidler er tilladte, dog ikke computer og kommunikationsmidler.

Læs mere

Log ind med PHP. Denne guide er oprindeligt udgivet på Eksperten.dk. Skrevet den 09. May 2011 af dab93 I kategorien Programmering / Andre

Log ind med PHP. Denne guide er oprindeligt udgivet på Eksperten.dk. Skrevet den 09. May 2011 af dab93 I kategorien Programmering / Andre Denne guide er oprindeligt udgivet på Eksperten.dk Log ind med PHP Med denne guide lærer du hvordan du kan logge ind på din hjemmeside med PHP. Guiden viser dig hvordan koderne skal opstilles, og hvad

Læs mere

Hvad Hvorfor Hvordan Overvåg sites via egne feeds

Hvad Hvorfor Hvordan Overvåg sites via egne feeds Hvad Hvorfor Hvordan Overvåg sites via egne feeds Undersøg siden, du vil overvåge Grundbegreber i feed43 Grundbegreber i rss Vælg det præcise udsnit, du vil overvåge via rss Ønsker vi at overvåge udviklingen

Læs mere

PHP 3 UGERS FORLØB PHP, MYSQL & SQL

PHP 3 UGERS FORLØB PHP, MYSQL & SQL PHP 3 UGERS FORLØB PHP, MYSQL & SQL Uge 1 & 2 Det basale: Det primære mål efter uge 1 og 2, er at få forståelse for hvordan AMP miljøet fungerer i praksis, og hvordan man bruger PHP kodesproget til at

Læs mere

//Udskriver System.out.println("Hej " + ditfornavn + " " + ditefternavn + "."); System.out.println("Du er " + dinalder + " aar gammel!

//Udskriver System.out.println(Hej  + ditfornavn +   + ditefternavn + .); System.out.println(Du er  + dinalder +  aar gammel! Denne guide er oprindeligt udgivet på Eksperten.dk Brugerinput i Java Denne her artikel gennemgår diverse ting ved brug af brugerinput i Java. Den starter med det simple og fortæller derefter skridt for

Læs mere

De skjulte input typer:

De skjulte input typer: Hvis man skal lave en html formular er der nogle felter til rådighed som kan benyttes, alt efter hvad output fra formularen skal være. Det felt som alle andre felter skal omkranses af er form tagget, som

Læs mere

Simpel upload af filer

Simpel upload af filer Denne guide er oprindeligt udgivet på Eksperten.dk Simpel upload af filer Jeg ser tit brugere spørge til hvordan man uploader en fil via php. Nu vil jeg prøve ganske kort at lave lidt kode og forklare

Læs mere

Serversideprogrammering, CMS og eshop. Dag 1: Introduktion og serverside programmering Niels Østergaard

Serversideprogrammering, CMS og eshop. Dag 1: Introduktion og serverside programmering Niels Østergaard Serversideprogrammering, CMS og eshop Dag 1: Introduktion og serverside programmering Niels Østergaard Dagens program Introduktion til forløbet Begrebet serverside Introduktion til PHP-programmering Tilmelding

Læs mere

Denne artikel er en detaljeret gennemgag af det fundamentale i batchfiler til hjemmebrug :-) FEEL THE POWER! ;-)

Denne artikel er en detaljeret gennemgag af det fundamentale i batchfiler til hjemmebrug :-) FEEL THE POWER! ;-) Denne guide er oprindeligt udgivet på Eksperten.dk Batch genopfriskning Denne artikel er en detaljeret gennemgag af det fundamentale i batchfiler til hjemmebrug :-) FEEL THE POWER! ;-) Skrevet den 03.

Læs mere

Som sagt kræves der helst lidt viden om OOP hvis man virkelig vil lærer noget, og ikke bare lave copypaste

Som sagt kræves der helst lidt viden om OOP hvis man virkelig vil lærer noget, og ikke bare lave copypaste Denne guide er oprindeligt udgivet på Eksperten.dk Indkøbsvogn i PHP I denne artikel vil jeg prøve at lave en indkøbskurv som let kan udvides, og som ikke er svær at forstå. Det er bedst med viden om OOP(klasser),

Læs mere

Arrays i PHP. Denne guide er oprindeligt udgivet på Eksperten.dk. Skrevet den 04. Feb 2009 af taskmgr I kategorien Programmering / PHP

Arrays i PHP. Denne guide er oprindeligt udgivet på Eksperten.dk. Skrevet den 04. Feb 2009 af taskmgr I kategorien Programmering / PHP Denne guide er oprindeligt udgivet på Eksperten.dk Arrays i PHP De fleste som har skrevet omfattende scripts, er før eller siden stødt på problemet med at de bliver vanskelige at overskue hvis man bruger

Læs mere

Indholdsfortegnelse If-sætningen... 3 Opgaver... 4 OR, AND sammen med if-sætningen... 5 Rand() funktion... 5 Opgave... 5 Include() funktionen...

Indholdsfortegnelse If-sætningen... 3 Opgaver... 4 OR, AND sammen med if-sætningen... 5 Rand() funktion... 5 Opgave... 5 Include() funktionen... Modul 2 Indholdsfortegnelse If-sætningen... 3 Opgaver... 4 OR, AND sammen med if-sætningen... 5 Rand() funktion... 5 Opgave... 5 Include() funktionen... 6 Opgave... 6 POST/GET og formular... 6 Opgaver...

Læs mere

Denne artikel er til dem der ønsker at vide mere om hvad CSS er og hvad CSS kan bruges til hvad angår WWW.

Denne artikel er til dem der ønsker at vide mere om hvad CSS er og hvad CSS kan bruges til hvad angår WWW. Denne guide er oprindeligt udgivet på Eksperten.dk CSS - en gennemgang Denne artikel er til dem der ønsker at vide mere om hvad CSS er og hvad CSS kan bruges til hvad angår WWW. Der er lidt CSS historie

Læs mere

Website sikkerhed SQL Injections og mere...

Website sikkerhed SQL Injections og mere... ... Skrevet af Daniel Pedersen 1 Introduktion Sikkerheden i dag skal være i top, der er rigtig mange små hurtige og nemme metoder til at få adgang til ens hjemmeside. Mange er ikke ældre end 14 år, og

Læs mere

Form og dens underlige box model

Form og dens underlige box model Denne guide er oprindeligt udgivet på Eksperten.dk Form og dens underlige box model Denne artikel handler om hvilke problemer man som webudvikler kan komme ud for, og hvordan man løser dem. Jeg kommer

Læs mere

Mozilla Firefox (tidligere Firebird): Fremhæve ord

Mozilla Firefox (tidligere Firebird): Fremhæve ord Denne guide er oprindeligt udgivet på Eksperten.dk Mozilla Firefox (tidligere Firebird): Fremhæve ord Du kender sikkert Google Værktøjslinjen til Internet Explorer, ellers har du sikkert hørt om den. I

Læs mere

Koden i denne guide vil kun virke i Flash MX 2003 og MX ikke ældre versioner!

Koden i denne guide vil kun virke i Flash MX 2003 og MX ikke ældre versioner! Denne guide er oprindeligt udgivet på Eksperten.dk Slideshow - Guide Denne guide gennemgår grundigt og forklarende hvordan man i Flash laver et slideshow med simpel fade-effekt med billeder hentet dynamisk.

Læs mere

Start på javascript. Denne guide er oprindeligt udgivet på Eksperten.dk. Skrevet den 03. Feb 2009 af webstuff I kategorien Programmering / JavaScript

Start på javascript. Denne guide er oprindeligt udgivet på Eksperten.dk. Skrevet den 03. Feb 2009 af webstuff I kategorien Programmering / JavaScript Denne guide er oprindeligt udgivet på Eksperten.dk Start på javascript En begynder artikel til javascript som vil gennemgå: 1: Intro 2: Variabler 3: Arrays 4: Matematik 5: Betingelser 6: Løkker 7: Funktioner

Læs mere

The Design Diaries Project 3 2. Semester. Blog om designprincipper

The Design Diaries Project 3 2. Semester. Blog om designprincipper The Design Diaries Project 3 2. Semester Blog om designprincipper By Lif Neergaard www.lifmediadesign.dk cph-ln175@cphbusiness.dk Mathias Larsen www.nefjam.dk cph-ml414@cphbusiness.dk Ida Christensen www.idamedia.dk

Læs mere

Session-highjack...et halvt skridt mod en modgift

Session-highjack...et halvt skridt mod en modgift Denne guide er oprindeligt udgivet på Eksperten.dk Session-highjack...et halvt skridt mod en modgift Denne artikel forsøger at beskrive hvad PHP session highjacking er og prøver at komme med et bud på

Læs mere

Eksamen, DSDS, forår 2009

Eksamen, DSDS, forår 2009 Eksamen, DSDS, forår 2009 Introduktion til Scripting, Databaser og Systemarkitektur Jonas Holbech IT Universitetet i København 3. juni 2009 Alle hjælpemidler er tilladte, dog ikke computer og kommunikationsmidler.

Læs mere

Denne artikel gennemgår kort nogle mulighederne for brug af XML i ASP. Det sker ved brug af eksempler. Eksemplerne vil være i VBS.

Denne artikel gennemgår kort nogle mulighederne for brug af XML i ASP. Det sker ved brug af eksempler. Eksemplerne vil være i VBS. Denne guide er oprindeligt udgivet på Eksperten.dk XML i ASP Denne artikel gennemgår kort nogle mulighederne for brug af XML i ASP. Det sker ved brug af eksempler. Eksemplerne vil være i VBS. Den forudsætter

Læs mere

I denne artikel vil du ved hjælp af arrays kunne afrunde et decimaltal til et helt tal.

I denne artikel vil du ved hjælp af arrays kunne afrunde et decimaltal til et helt tal. Denne guide er oprindeligt udgivet på Eksperten.dk Afrund til helt tal I denne artikel vil du ved hjælp af arrays kunne afrunde et decimaltal til et helt tal. Skrevet den 03. Feb 2009 af tjomsen I kategorien

Læs mere

Loginsystem med PHP4, klasser, sessions og MySQL database

Loginsystem med PHP4, klasser, sessions og MySQL database Denne guide er oprindeligt udgivet på Eksperten.dk Loginsystem med PHP4, klasser, sessions og MySQL database Artiklen indeholder et simpelt loginsystem, der benytter en klasse. Den er med vilje simplificeret,

Læs mere

Anvendelse af metoder - Programmering

Anvendelse af metoder - Programmering Denne guide er oprindeligt udgivet på Eksperten.dk Anvendelse af metoder - Programmering En forhåbentlig rigtig god forklaring på hvad metoder er og hvordan de anvendes. Lidt om private og public, retur

Læs mere

JSP, Tomcat. Tutorial lavet af Jákup W. Hansen TSU semester 10.october 2007

JSP, Tomcat. Tutorial lavet af Jákup W. Hansen TSU semester 10.october 2007 JSP, Tomcat Tutorial lavet af Jákup W. Hansen TSU 2006 3.semester 10.october 2007 Hvad er JSP(Java Server Pages): Det er en teknik som er bygget ovenover Servlets teknikken, men fidusen er at det skal

Læs mere

OPRETTELSE AF ET SIMPELT GRATIS ARRANGEMENT

OPRETTELSE AF ET SIMPELT GRATIS ARRANGEMENT OPRETTELSE AF ET SIMPELT GRATIS ARRANGEMENT Hvis du skal oprette et simpelt gratis arrangement, kan du følge vejledningen nedenfor. Den vil gennemgå de steder, der er obligatoriske for dig at udfylde samt

Læs mere

GUIDE TIL VALG AF WEBSITEUDBYDER

GUIDE TIL VALG AF WEBSITEUDBYDER WEBBUREAU UDBYDER GUIDE TIL VALG AF WEBSITEUDBYDER Denne guide er fra til dig, der gerne vil have lavet en hjemmeside eller en webshop og er ved at indhente tilbud fra webbureauer og freelancere. ABONNEMENTSLØSNINGER

Læs mere

Arkitektur for begyndere

Arkitektur for begyndere Denne guide er oprindeligt udgivet på Eksperten.dk Arkitektur for begyndere Denne artikel beskriver forskellige basale n-tier arkitekturer. Som man bør kende og have valgt inden man går igang med at udvikle

Læs mere

Procesbeskrivelse - Webprogrammering

Procesbeskrivelse - Webprogrammering Procesbeskrivelse - Webprogrammering Indholdsfortegnelse Forudsætninger... 1 Konceptet... 2 Hjemmesiden... 2 Server-side... 3 Filstrukturen... 3 Databasehåndtering og serverforbindelse... 4 Client-side...

Læs mere

Umbraco installationsvejledning

Umbraco installationsvejledning på et ScanNet ASP Webhotel Indledning Beskrivelse Denne vejledning vil indeholde installation af CMS systemet Umbraco på et ASP Webhotel. Det dansk grundlagt Content Management System (CMS) Umbraco er

Læs mere

Manual KUN nyhedsbreve og billeder

Manual KUN nyhedsbreve og billeder Manual KUN nyhedsbreve og billeder Indholdsfortegnelse 10. Nyheder... 3 10.1. Opret Nyheds Årsmappe... 3 10.2. Opret Nyhed... 4 10.3. Nyhedsbreve... 5 10.3.1. Nyhedsbrev Årsmappe... 5 10.4. Opret nyhedsbrev...

Læs mere

Kaminsky DNS exploit

Kaminsky DNS exploit Syddansk Universitet DM829 Kaminsky DNS exploit Jan Christensen - 241189 Anders Knudsen 150885 12. maj 2012 Indhold 1 Indledning 2 2 Introduktion til DNS 2 2.1 Cache............................... 3 2.2

Læs mere

Sådan skriver du artikler til Eksperten!

Sådan skriver du artikler til Eksperten! Denne guide er oprindeligt udgivet på Eksperten.dk Sådan skriver du artikler til Eksperten! Når du skriver artikler handler det om at få den ud til de rigtige personer, og vise den frem så den er let forståelig.

Læs mere

Eksamen, DSDS, efterår 2007

Eksamen, DSDS, efterår 2007 Eksamen, DSDS, efterår 2007 Introduktion til Scripting, Databaser og Systemarkitektur Jonas Holbech og Martin Elsman IT Universitetet i København 7. januar 2008 Alle hjælpemidler er tilladte, dog ikke

Læs mere

Web 2.0. World Wide Web (www)

Web 2.0. World Wide Web (www) Web 2.0 World Wide Web (www) I marts 1989 skrev Tim Berners-Lee et information udveksling program kaldt ENQUIRE. Da han arbejde i CERN, var han ikke tilfreds med kommunikationen, derfor videreudviklede

Læs mere

Bemærk! Et PHP script har kun brug for at forbinde én gang til databaseserveren. Det kan så sagtens udføre flere kommandoer vha. denne forbindelse.

Bemærk! Et PHP script har kun brug for at forbinde én gang til databaseserveren. Det kan så sagtens udføre flere kommandoer vha. denne forbindelse. Mysqli Webintegrator Når vi arbejder med server-side scripting ( i vort tilfælde PHP), har vi ofte behov for at kunne tilgå data, som vi opbevarer i en database. Det kan f.eks. dreje sig om nyhederne i

Læs mere

Boligportal.dk s kravspecifikation til XML-feed

Boligportal.dk s kravspecifikation til XML-feed Boligportal.dk s kravspecifikation til XML-feed Introduktion I forbindelse med automatisk import af lejeboliger til Boligportal.dk skal der udarbejdes en XML-feed, som Boligportal.dk kan hente på en URL.

Læs mere

Database design for begyndere

Database design for begyndere Denne guide er oprindeligt udgivet på Eksperten.dk Database design for begyndere Denne artikel beskriver hvordan man kommer fra ide til database design. Den stopper inden normal former. Den forudsætter

Læs mere

PHP Pagination. Denne guide er oprindeligt udgivet på Eksperten.dk. Skrevet den 01. May 2011 af dab93 I kategorien Programmering / Andre

PHP Pagination. Denne guide er oprindeligt udgivet på Eksperten.dk. Skrevet den 01. May 2011 af dab93 I kategorien Programmering / Andre Denne guide er oprindeligt udgivet på Eksperten.dk PHP Pagination I denne guide lærer du om at lave et pagination system med programmerings sproget PHP og MySQL database. Et pagination system er en "side-skiftende"

Læs mere

www.rikkecarlsen.com/ cupcakes/index.html

www.rikkecarlsen.com/ cupcakes/index.html 2. semester - 3. projekt Interaktionsudvikling - en fortsættelse af projekt 2 - CUPCAKES Mul B - Cphbusiness - 2014 Link til website: www.rikkecarlsen.com/ cupcakes/index.html Gruppe 7 Camilla Mia Poulsen

Læs mere

Delphi og Databaser for begyndere

Delphi og Databaser for begyndere Denne guide er oprindeligt udgivet på Eksperten.dk Delphi og Databaser for begyndere Denne artikel handler om hvordan man udnytter noget af det bedste i Delphi: Dets gode muligheder for integrering med

Læs mere

Hack of the Month opgave 2

Hack of the Month opgave 2 Hack of the Month opgave 2 www.hackofthemonth.dk Holdet bag www.hackofthemonth.dk: Søren Rasmus (ikke mig) Roninz Stiller hver måned en ny opgave: Applikationssikkerhed Webapplikationssikkerhed Slide 2

Læs mere

Dokumentering af umbraco artikeleksport:

Dokumentering af umbraco artikeleksport: Dokumentering af umbraco artikeleksport: Lav en artikel side 2-3. Installationsguide side 3-5. Opsættelse af databasen og web.config side 5-8. Umbraco: templates side 8. Umbraco: borger.dk tab side 8.

Læs mere

Quickguide til www.erhvervskvinder.dk

Quickguide til www.erhvervskvinder.dk Quickguide til www.erhvervskvinder.dk ErhvervsKvinders hjemmeside er opdelt i en del, som er åben for alle og en del, der er forbeholdt medlemmerne. Viden om ErhvervsKvinder: Vil du vide noget om ErhvervsKvinder?

Læs mere

PHP Crash course. Databaser

PHP Crash course. Databaser PHP Crash course Databaser PHP Intro PHP er et server scripting sprog der kan bruges til at lave aktivt indhold på hjemme sider. Der er to betingelser som skal opfyldes for at serveren fortolker PHP koden.

Læs mere

Skrevet den 18. Feb 2010 af arne_v I kategorien Programmering / Visual Basic.NET

Skrevet den 18. Feb 2010 af arne_v I kategorien Programmering / Visual Basic.NET Denne guide er oprindeligt udgivet på Eksperten.dk Parameters Denne artikel beskriver hvorfor parameters er gode. Den forudsætter lidt kendskab til VB.NET og ADO.NET. Der findes en tilsvarende artikel

Læs mere

OPRETTELSE AF ET SIMPELT BETALINGSARRANGEMENT

OPRETTELSE AF ET SIMPELT BETALINGSARRANGEMENT OPRETTELSE AF ET SIMPELT BETALINGSARRANGEMENT Hvis du skal oprette et simpelt betalingsarrangement, kan du følge vejledningen nedenfor. Den vil gennemgå de steder, der er obligatoriske for dig at udfylde

Læs mere

Ændret den 9. januar 2019 Ældre Sagens hjemmesidesystem: Indsæt artikel med billedgalleri Side 1 af 14

Ændret den 9. januar 2019 Ældre Sagens hjemmesidesystem: Indsæt artikel med billedgalleri Side 1 af 14 1.7.1 Indsæt artikel med billedgalleri En artikel med billedgalleri indsættes samme steder som en artikel. Forskellen er, at der er et billedgalleri under manchetteksten. Arbejdsgangen er først at oprette

Læs mere

Lav en hjemme side der kan sælge fly billetter til en stor i Europa.

Lav en hjemme side der kan sælge fly billetter til en stor i Europa. EKSAMENS OPGAVE Lav en hjemme side der kan sælge fly billetter til en stor i Europa. Det første jeg startede ud med var at brainstorme hvad det var jeg skulle bruge i min side da jeg nu ved hvad den skal

Læs mere

poedit og oversættelse af sprogfiler

poedit og oversættelse af sprogfiler poedit og oversættelse af sprogfiler af Georg S. Adamsen WordPress.Blogos.dk 2009 http://kortlink.dk/wordpressblogosdk/6g38 1 af 11 14-04-2009 14:55 Jeg får af og til spørgsmål om, hvordan man bruger poedit,

Læs mere

Hej alle sammen, nu fjerner vi lige mystikken om alle de "ulovlige tags" her på eksperten.dk

Hej alle sammen, nu fjerner vi lige mystikken om alle de ulovlige tags her på eksperten.dk Denne guide er oprindeligt udgivet på Eksperten.dk Tags på Eksperten.dk Hej alle sammen, nu fjerner vi lige mystikken om alle de "ulovlige tags" her på eksperten.dk Skrevet den 30. okt 2009 af mbm2007

Læs mere

Sådan kommer du nemt i gang med Joomla!

Sådan kommer du nemt i gang med Joomla! Joomla! Kursus Sådan kommer du nemt i gang med Joomla! Hvorfor er Joomla! alt for svær at komme i gang med I mit daglige virke som konsulent og underviser, med speciale i Joomla!, får jeg tit at vide at

Læs mere

Eksamen, DSDS, forår 2008

Eksamen, DSDS, forår 2008 Eksamen, DSDS, forår 2008 Introduktion til Scripting, Databaser og Systemarkitektur Jonas Holbech IT Universitetet i København 3. juni 2008 Alle hjælpemidler er tilladte, dog ikke computer og kommunikationsmidler.

Læs mere

I stedet for at oprette en masse medlemmer, er det muligt at importere disse når bare nogle enkle spilleregler overholdes.

I stedet for at oprette en masse medlemmer, er det muligt at importere disse når bare nogle enkle spilleregler overholdes. I stedet for at oprette en masse medlemmer, er det muligt at importere disse når bare nogle enkle spilleregler overholdes. Sidst i denne vejledning er vist et Excel dokument som det KAN se ud. Ligesom

Læs mere

Boligportal.dk s kravspecifikation til XML-feed

Boligportal.dk s kravspecifikation til XML-feed Boligportal.dk s kravspecifikation til XML-feed Introduktion I forbindelse med automatisk import af lejeboliger til Boligportal.dk skal der udarbejdes en XML-feed, som Boligportal.dk kan hente på en URL.

Læs mere

jquery - selectors, attributes, traversing og manipulation

jquery - selectors, attributes, traversing og manipulation Denne guide er oprindeligt udgivet på Eksperten.dk jquery - selectors, attributes, traversing og manipulation Jeg vil med denne første artikel fra mig om jquery komme kort ind på jquerys vidunderlige verden.

Læs mere

Hvad er Objekter - Programmering

Hvad er Objekter - Programmering Denne guide er oprindeligt udgivet på Eksperten.dk Hvad er Objekter - Programmering En rigtig god gennemgang af hvad objekter er! Hvordan de oprettes og anvendes! Det er helt klart til nybegyndere, som

Læs mere

Indholdsfortegnelse Databaser og PHP... 3 Opgave... 4 Opgave... 5 Opgave... 6 Sidste opgave er en lille gæstebog... 7 Kilder og nyttige links:...

Indholdsfortegnelse Databaser og PHP... 3 Opgave... 4 Opgave... 5 Opgave... 6 Sidste opgave er en lille gæstebog... 7 Kilder og nyttige links:... Indholdsfortegnelse Databaser og PHP... 3 Opgave... 4 Opgave... 5 Opgave... 6 Sidste opgave er en lille gæstebog... 7 Kilder og nyttige links:... 9 Nogle HTML tags... 9 Databaser og PHP Når vi snakker

Læs mere

Vejledning i indberetning til registreringsnettet i korn 2010

Vejledning i indberetning til registreringsnettet i korn 2010 Vejledning i indberetning til registreringsnettet i korn 2010 Du finder siderne til registreringsnettet på LandbrugsInfo Planteavl Planteværn Varsling/registreringsnet eller www.landbrugsinfo.dk/regnet

Læs mere

ADMINISTRATIONS MANUAL

ADMINISTRATIONS MANUAL ADMINISTRATIONS MANUAL onmap.dk Administrations Manual Dansk Version 0.1 Side 1 Denne manual beskrive hvordan en race administrator kan opsætte og bruge onmap.dk race protalen til at lave en specialiseret

Læs mere

7 Google Analytics tricks din far ikke lærte dig

7 Google Analytics tricks din far ikke lærte dig 7 Google Analytics tricks din far ikke lærte dig -Af Morten Vadskær 1ste udgave Integration med Google Website Optimizer multivariant tests... 3 Registrere fejl i dine formularer... 5 Hvor langt når dine

Læs mere

Password hashing og salt

Password hashing og salt Denne guide er oprindeligt udgivet på Eksperten.dk Password hashing og salt Denne artikel beskriver hvorfor hashing og salt er godt, når man skal gemme passwords. Den forudsætter et vist kendskab til programmering

Læs mere

Lav dine egne hjemmesider/websider

Lav dine egne hjemmesider/websider Sider, der skal publiceres på World Wide Web, laves i et særligt format, html, som fortæller browseren, hvordan den skal vise tekst og billeder. Html (Hypertext markup language) er meget fleksibelt og

Læs mere

Flerbruger miljø, opdel database

Flerbruger miljø, opdel database Denne guide er oprindeligt udgivet på Eksperten.dk Flerbruger miljø, opdel database Denne artikel henvender sig primært til begyndere og let øvede brugere af Access der ønsker at vide noget om flerbruger

Læs mere

PHP kode til hjemmeside menu.

PHP kode til hjemmeside menu. PHP kode til hjemmeside menu. Home Hovedmenu 1 Hovedmenu 2 Hovedmenu 3 Hovedmenu 4 Undermenu 1 Breadcrumb Her vises indholdet af den valgte side Undermenu 2 Undermenu 3 Undermenu 4 Evt. en mulighed for

Læs mere

Parameters. Denne artikel beskriver hvorfor parameters er gode. Den forudsætter lidt kendskab til C# og ADO.NET.

Parameters. Denne artikel beskriver hvorfor parameters er gode. Den forudsætter lidt kendskab til C# og ADO.NET. Denne guide er oprindeligt udgivet på Eksperten.dk Parameters Denne artikel beskriver hvorfor parameters er gode. Den forudsætter lidt kendskab til C# og ADO.NET. Der findes en tilsvarende artikel med

Læs mere

Design Diaries.

Design Diaries. Design Diaries http://blog.lykkeeilert.dk/ Patricia Gambula Larsen Patrick Lykke Eilert Ninette Andersen cph-pl130@cphbusiness.dk cph-pe58@cphbusiness.dk cph-na96@cphbusiness.dk INDHOLD Use case model

Læs mere

Kildehenvisninger. - Information og guide til korrekte kildehenvisninger

Kildehenvisninger. - Information og guide til korrekte kildehenvisninger Kildehenvisninger - Information og guide til korrekte kildehenvisninger Af: Emil Madsen Slotshaven Gymnasium d.12/12 2016 Indhold Hvorfor overhovedet kildehenvise?:... 1 Hvad er en kildehenvisning så?:...

Læs mere

SKOLELOGIN KNANPU1 FULDE NAVN ANAN PUSKAR EMAIL ANAN-1991@HOTMAIL.COM URL TIL LØSNING HTTP://WWW.ANANP.DK/SURVEY URL TIL PORTFOLIO

SKOLELOGIN KNANPU1 FULDE NAVN ANAN PUSKAR EMAIL ANAN-1991@HOTMAIL.COM URL TIL LØSNING HTTP://WWW.ANANP.DK/SURVEY URL TIL PORTFOLIO SKOLELOGIN KNANPU1 FULDE NAVN ANAN PUSKAR EMAIL ANAN-1991@HOTMAIL.COM URL TIL LØSNING HTTP://WWW.ANANP.DK/SURVEY URL TIL PORTFOLIO HTTP://WWW.ANANP.DK/PORTFOLIO Opgavebeskrivelse Jeg er ansat hos firmaet

Læs mere

Ordbøgerne.dk. Navne: Andreas Foldager og Rasmus Bjerring Pedersen Fag: IT B Lærer: Karl Bjarnason Afleveringsdato: 17-11-06.

Ordbøgerne.dk. Navne: Andreas Foldager og Rasmus Bjerring Pedersen Fag: IT B Lærer: Karl Bjarnason Afleveringsdato: 17-11-06. Ordbøgerne.dk Navne: Andreas Foldager og Rasmus Bjerring Pedersen Fag: IT B Lærer: Karl Bjarnason Afleveringsdato: 17-11-06 Side 1 af 35 Indholdsfortegnelse Indledning:...3 Design...4 Visuelt design:...4

Læs mere

IndentifyIT Survey Rapport

IndentifyIT Survey Rapport IndentifyIT Survey Rapport af Andreas Stjerneklar Kristensen Login: Knankr23 Email: Andreas.kristensen@gmail.com SurveyID: ASKsurvey3 Løsning findes på http://andreasstjerneklar.dk/#nav=spørg eskema Portfolio

Læs mere

Oprettelse af DNS Records i Hostnordic Selfcare

Oprettelse af DNS Records i Hostnordic Selfcare Oprettelse af DNS Records i Hostnordic Selfcare Brugervejledning Date: 2011-01-31 Version: 1 Author: Martin Schou Target Level: Customer Target Audience: End User Language: da-dk Side 1 af 8 JURIDISKE

Læs mere

Prepared Statements. Denne artikel beskriver hvorfor prepared statements er gode. Den forudsætter lidt kendskab til Java og JDBC.

Prepared Statements. Denne artikel beskriver hvorfor prepared statements er gode. Den forudsætter lidt kendskab til Java og JDBC. Denne guide er oprindeligt udgivet på Eksperten.dk Prepared Statements Denne artikel beskriver hvorfor prepared statements er gode. Den forudsætter lidt kendskab til Java og JDBC. Skrevet den 18. Feb 2010

Læs mere

HTML, PHP, SQL, webserver, hvad er hvad??

HTML, PHP, SQL, webserver, hvad er hvad?? Dagens menu HTML og PHP: Baglæs fra output til input PHP: Variable, strenge og arrays Funktioner, oprettelse og kald (og variable på tværs af funktioner) echo vs return? if-else konstruktioner MySQL: Hvad

Læs mere