Nyeste sider på Ludvigs Hjørne: sammenligning af online backup og af antivirusprogrammer.

Ludvigs Hjørne

Læs mere om mig og mine andre hjemmesider på Google+

Tema:
Hjemmeside
Sikkerhed
Begynder/uøvet
Linux Ubuntu
Nyhedsgrupper
Nye styreformer

Bitdefender Total Security

Hjælp på tryk

Se artiklen om KompoZer.

logo
Trin for trin

Avancerede sider med php

Du kan bruge php til at lave avancerede og dynamiske hjemmesider.

KompoZer laver hjemmesider ved hjælp af html og css. Men du kan sagtens bruge KompoZer, selvom du vil lave mere avancerede hjemmesider med php. På denne side fortæller jeg lidt om php. Du får nogle enkelte eksempler på praktisk brug af php, og du får nogle kodeeksempler, som du kan tilrette og bruge på din egen hjemmeside:

  • Inkludering af en fil med en menu
  • Vis tilfældigt billede
  • Indsæt tilfældigt indhold
  • Indsættelse af dags dato
  • Klik-tæller
  • Kontaktformular
  • Adgangskode på en eller flere sider

I modsætning til almindelige hjemmesider, som du laver med KompoZer, så kan du ikke slippe for koder, når du bruger php. Du kan dog sagtens bruge kodeeksemplerne uden at forstå koderne, eftersom jeg fortæller dig, hvordan du tilretter og indsætter koderne i din hjemmeside.

Sidens indhold:  

Lidt om php   

Php er et programmeringssprog, der afvikles på en webserver. Når en besøgende beder om at få hentet en hjemmeside, afvikles php-koderne og resultatet sendes til den besøgendes browser. Du kan bruge php til at lave mere intelligente og dynamiske hjemmesider, og php kan gøre det meget nemmere for dig at vedligeholde dine sider, fordi du kan indsætte indholdet i andre filer på hjemmesiden.

Du kan fx have din menu liggende i en fil for sig, og php kan så indsætte menuen på alle dine sider. Vil du tilføje et nyt menupunkt, skal du kun rette i én fil, selvom du har hundreder af sider.

Du kan desuden bruge php til at skabe dynamiske hjemmesider, så der fx vises et tilfældigt billede, hver gang siden vises. Du kan også bruge php til at lave adgangskontrol til en side, ligesom du kan bruge php til at generere forskelligt indhold til forskellige besøgende.

Php kan også bruges til at gemme, hente og behandle indhold i en database, og det er her, php virkelig viser sin styrke. Men brugen af databaser er mere avanceret, så det vil jeg ikke komme nærmere ind på i denne omgang.

Du kan kun bruge php, hvis webserveren understøtter det. Tjek derfor først, om dit webhotel tilbyder php på dit abonnement. Der findes andre programmeringssprog til webservere, hvor de mest kendte alternativer er asp og asp.net. KompoZer understøtter dog kun php, hvorfor jeg ikke vil beskæftige mig med de andre sprog på denne side.

Hvis din hjemmeside skal benytte php, så skal hjemmesidedokumentet ikke gemmes med filtypen html. I stedet skal det have filtypen php, så webserveren ved, at dokumentet indeholder php-koder.

KompoZer og php   

KompoZers understøttelse af php går reelt blot ud på, at KompoZer kan genkende en php-kode, og at KompoZer derfor holder fingrene fra koden. KompoZer kan ikke genkende asp-kode, hvorfor en asp-kode vil blive ændret og dermed ødelagt.

Før menuen er blevet flyttet over i en selvstændig fil

Efter menuen er blevet flyttet og derefter indsat med php

Der er desværre grænser for understøttelsen af php, når det gælder inkluderede filer. Reelt kan du flytte en hvilken som helst del af en hjemmesides koder over i en selvstændig fil, som så inkluderes med php. Men KompoZer vil ikke tillade dig at slette headeren fra en side, så den skal du altså beholde i sidens koder, når du bruger KompoZer. I stedet bør du nøjes med at flytte fast indhold på den synlige del af hjemmesiden, som fx en menu, over i en selvstændig fil.

KompoZer kan ikke vise resultatet af php-koden. Koden skal som nævnt ovenfor afvikles på en webserver, så du kan ikke se den færdige side, før du uploader den til webhotellet.

I stedet for at få vist den færdige side vil du få vist en lille php-ikon der, hvor du har indsat php-koden. Det gør det selvfølgelig noget sværere at arbejde med siden, især hvis du bruger php-kode til at inkludere en fil med din menu eller andet fast indhold. Det vil derfor være en god ide at lave sidens layout helt færdig, før du flytter menu og andet fast indhold ud i en selvstændig fil.

Nogle grundlæggende php-koder   

Du behøver reelt ikke at kunne forstå dette afsnit for at kunne bruge kodeeksemplerne længere nede på siden. Så du skal altså ikke gå i panik, hvis afsnittet er sort snak for dig.

Eksempel på en php-kode

Php-koder kan indsættes midt i dine html-koder. De skal blot omsluttes af koderne <?php og ?>, så serveren ved, at det ikke er almindelige html-koder. Og du kan sagtens indsætte flere sæt php-koder på en enkelt side.

Du kan skrive kommentarer i php, så du senere kan huske, hvad en bestemt kode gør. Du kan indsætte kommentarer, der fylder flere linjer mellem /* (skråstreg+stjerne) og */ (stjerne+skråstreg). Eller du kan skrive en kommentar efter // (to skråstreger) - hvor kommentaren så afsluttes automatisk, når du laver et linjeskift.

En af de mest praktiske ting i php er, at du kan gemme en værdi i en variabel. En variabel starter med $ (dollartegn). Du kan fx gemme en adgangskode i en variabel, og den kan så sammenlignes med den kode, den besøgende indtaster på en hjemmeside. Her gemmer jeg adgangskoden i en variabel:
$adgangskode = "jeg vil ind";
Bemærk, at php-kommandoer skal afsluttes med ; (semikolon). Værdien er angivet i anførselstegn. Du kan bruge to forskellige anførselstegn, " og ' men de skal altid bruges i par, altså "jeg vil ind" eller 'jeg vil ind' og ikke "jeg vil ind'.

Anførselstegnene kan bruges inde i hinanden. I så fald skal du skifte mellem de to typer, fx: 'Jeg vil "ikke" ind' eller "Jeg vil 'ikke' ind". Dette er praktisk, fordi html-koder kan risikere at indeholde anførselstegn. Er det tilfældet, skal du skifte mellem dem, fx:
echo "Her er en billedkode: <img src='mitbillede.jpg' width='200' ...>";

Du kan bruge begge slags anførselstegn i både html og i php. I html fungerer de ens, men i php er der i nogle tilfælde forskel på virkningen, fx hvis du placerer en variabel i anførselstegn. Hvis du beder om at få vist "$adgangskode" på skærmen, vil variablen blive fortolket, så der komme til at stå jeg vil ind. Hvis du beder om at få vist '$adgangskode' på skærmen, vil der komme til at stå $adgangskode. Hvis der er flere anførselstegn inde i hinanden, er det de yderste, der bestemmer, om en variabel skal fortolkes.

Du kan bede om at få noget vist på skærmen med koden echo, fx:
echo "Du har indtastet adgangskoden: $indtastet_kode.";
Der så vil vise dette på skærmen:
Du har indtastet adgangskoden: luk mig ind.

Php-sproget indeholder en masse funktioner, du kan bruge. Funktioner benytter () (paranteser) til at angive værdier eller betingelser, og du kan bruge {} (krøllede paranteser), hvis der skal udføres flere linjer med kommandoer.

I dette eksempel tjekkes, om den indtastede kode svarer til adgangskoden, hvorefter en passende tekst vises på skærmen:
if ($indtastet_kode == $adgangskode) {
echo "Du har indtastet den rigtige adgangskode";
}
else {
echo "Du har indtastet en forkert kode, skrid med dig!";
}

Bemærk, at der er benyttet to lighedstegn i ovenstående. Når du påfører en værdi, gøres det med et enkelt lighedstegn, når du sammenligner, skal du bruge to. Det er også muligt at tjekke, om værdierne er forskellige, så udskifter du blot == med !=. Mere om operatorer (på engelsk).

Reelt er det ikke nødvendigt at benytte de krøllede paranteser i ovenstående eksempel. De er kun nødvendige, hvis der er flere linjer med kommandoer, som fx:
if ($indtastet_kode == $adgangskode) {
echo "Du har indtastet den rigtige adgangskode";
echo "Kom indenfor, gamle jas";
}

Indrykningen først i linjerne i koden er for at gøre den mere overskuelig. I de ovenstående eksempler er de indrykkede linjer kode, som kun skal udføres, hvis en bestemt forudsætning er opfyldt.

Hvis du har et php-script, der viser en fejlmeddelelse i stedet for at gøre det, du forventede, så skyldes fejlen ofte forkert brug af de koder, der er nævnt i dette afsnit. Det kan fx være et manglende ; (semikolon) sidst på en linje eller forkert brug af ' eller " (anførselstegn) eller det kan være, at du mangler den ene parantes eller krøllede parantes i et sæt paranteser. Fejlmeddelelsen vil indeholde et linjenummer, men fejlen kan godt ligge i en linje højere oppe i koden. Fx vil en manglende ; i linje 11 vil vise en fejl i linje 12 eller en senere linje.

Sådan indsætter du php-kode i KompoZer   

Indsættelse af php-kode
Indsættelse af php-kode

Klik på menupunktet Indsæt => Indsæt PHP-kode. Indtast eller indsæt den ønskede php-kode, og klik på OK. Du vil nu se en php-ikon på det sted på siden, hvor du indsatte php-koden (se billedet i afsnittet Inkludering af filer).

Bemærk, at KompoZer automatisk indsætter start- og slutkode for php-koden (<?php og ?>).

Hvis du vil ændre i den indsatte kode, skal du blot dobbeltklikke på php-ikonen, så åbnes en rediger-boks med koden.

Du kan også indsætte php-kode på samme måde, som du kan indsætte HTML-kode, som du kan se på billedet i afsnittet Nogle grundlæggende php-koder. I så fald skal du blot huske selv at angive start- og slutkode. Og endelig kan du indsætte php-kode direkte i kildekodevisning - også her skal du huske selv at angive start- og slutkode.

Kodeeksempler   

I de næste afsnit kan du finde en række kodeeksempler og læse, hvordan du bruger dem.

Jeg har i de fleste kode-eksempler indsat kommentarer for at forklare, hvad koden gør. Og jeg har farvet kommentarerne i eksemplerne røde, så de er nemme at genkende. Du kan sagtens udelade kommentarerne, når du indsætter kodeeksemplerne, men de kan være rare at have, når du om et halvt år ikke kan huske, hvad en bestemt kode gør.

Nogle værdier i koderne kan/skal du ændre, dem har jeg farvet grønne. Det kan fx være fil- eller mappenavne eller en adgangskode.

Inkludering af filer   

Menuen placeres i en selvstændig fil, der så indsættes med php

Du kan placere noget af det faste indhold på en side i en selvstændig fil, der så indsættes på nogle eller alle sider. Det faste indhold kan fx være en menu, og/eller det kan være din adresse i en sidefod nederst på siden. Skal du senere ændre på det faste indhold, skal du kun rette ét sted, uanset hvor mange sider, du har.

Du kan også bruge inkludering af filer til dynamisk indhold. Hvis du har lavet en side med en nyhedsboks, kan du fx gemme indholdet i nyhedsboksen i en særskilt fil. Når du skal opdatere nyhedsboksen, kan du nøjes med at skrive en ny tekst i Notesblok og så overføre filen via et netværkssted. Dels kan det være hurtigere end at skulle åbne KompoZer, og dels risikerer du ikke at kommet til at ændre ved noget af det andet indhold på siden.

Du kan finde et andet eksempel på inkludering af dynamisk indhold i afsnittet Inkludering af tilfældigt indhold.

Du inkluderer indholdet i en fil i din hjemmeside ved at indsætte denne kode. Du skal blot ændre filnavn.php til navnet på din fil:

/* Her indsættes filen med navnet filnavn.php */
include 'filnavn.php';

Reelt set behøver den inkluderede fil ikke at have filtypen php, den kan godt have filtypen txt. Det er kun hjemmesidedokumentet, der skal have filtypen php. Men bruger du filtypen txt, vil uvedkommende kunne læse indholdet, hvis de gætter filnavnet. Det får de ikke lov til, hvis filtypen er php. Det har ikke den store betydning, hvis der blot er en menu i filen, men det er et sikkerhedsproblem, hvis den fx indeholder adgangskoder som til en adgangskontrol eller en database.

Du skal selvfølgelig også have lavet filen med det indhold, der skal indsættes. En tekst i en nyhedsboks er forholdsvis nem at placere i en selvstændig fil, fordi den ikke behøver at indeholde koder. Du bruger blot Notesblok til at oprette en fil med den ønskede tekst, hvorefter du uploader filen til webhotellet.

Det er straks værre med en menu, som naturligvis indeholder koder. Her vil det være en god ide at lave menuen i KompoZer, så KompoZer laver koderne for dig. Du kan herefter gå ind i kildekodevisning og klippe koderne ud og sætte dem ind i en selvstændig fil. Følg denne guide:

Gå ind i kildekodevisning, find menukoden, og klip den ud

Færdiggør din side med det ønskede layout. Klik på fanen Kildekode. Du skal nu finde koden til menuen. Markér koden, klik på menupunktet Rediger og vælg Klip.

Indsæt i stedet php-koden

Der hvor koden stod, skal du i stedet skrive:
<?php include 'filnavn.php'; ?>.

Åbn Notesblok og indsæt koden

Åbn Windows Notesblok (klik på knappen Start i proceslinjen => Alle programmer => Tilbehør => Notesblok). Indsæt det kopierede ved at klikke på menupunktet Rediger => Sæt ind. Gem filen ved at klikke på Filer => Gem. Brug rullemenuen ud for Filtype til at vælge Alle. Vælg en placering, angiv et filnavn og filtypen php - fx menu.php - og klik på knappen Gem.

KompoZer kan ikke overføre inkluderede filer for dig, brug i stedet et ftp-program eller et netværkssted til at overføre filen.

Vis tilfældigt billede   

Du får her to forskellige sæt koder til at vælge et tilfældigt billede og indsætte det på siden. Dermed kan den besøgende få vist forskellige billeder ved hvert besøg.

Den ene kode inkluderer billeder, som du manuelt skal skrive filnavnene på. Den anden er mere smart, idet den tjekker, hvilke billeder der ligger i en bestemt mappe på serveren, og så finder den et tilfældigt af dem. Det har den fordel, at du kan tilføje nye billeder, der skal kunne vælges, uden du behøver at opdatere hjemmesiden Du skal blot uploade billedet til den pågældende mappe på webhotellet.

Vælg et tilfældigt billede fra en liste

Kopiér nedenstående kode. Åbn din side i KompoZer, placér markøren, der hvor billedet skal være, åbn boksen til indsættelse af php-kode og indsæt den kopierede kode i den. Tilret koden som beskrevet nedenfor, og klik på knappen OK. Bemærk, at du først vil kunne se billedet, når siden er uploadet til serveren. Du skal uploade billederne manuelt, eftersom de ikke overføres af KompoZer; brug et ftp-program eller et netværkssted.

Du skal udskifte billede1.jpg med navnet på det første billede. Ligger billedet i en undermappe, skal du også angive den. Hvis du fx har billedet migselv.jpg liggende i mappen billeder, skal du udskifte billede1.jpg med billeder/migselv.jpg.

Udskift Her er mit billede med en alternativ tekst, der kan vises, hvis billedet af en eller anden grund ikke kan vises, og Her er en billedtekst med den tekst, der skal vises, når musemarkøren holdes hen over billedet. Gentag med alle linjer. Du kan sagtens indsætte flere eller færre linjer med billeder, alt efter dit behov.

/* Her indsættes alle billederne i et array */
$alle_billeder = array(
'billede1.jpg alt="Her er mit billede" title="Her er en billedtekst"',
'billede2.jpg alt="Her er mit billede" title="Her er en billedtekst"',
'billede3.jpg alt="Her er mit billede" title="Her er en billedtekst"',
);

/* Her vælges et tilfældigt billede fra arrayet */
$tilfaeldigt = array_rand($alle_billeder);
$billede = $alle_billeder[$tilfaeldigt];

/* Her udtrækkes filnavnet */
list($filnavn, $alt, $title) = explode(' ',$billede);
$filnavn = trim($filnavn,"'");

/* Her findes størrelsen på billedet */
list($width, $height) = getimagesize($filnavn);

/* Her tilføjes html-kode, og det tilfældige billede og dets størrelse indsættes i koden */
echo "<img src=$billede width='$width' height='$height'>";

Vælg et tilfældigt billede i en mappe

I den nedenstående kode, går jeg ud fra, at der er tale om jpg-billeder, og at de ligger i en mappe med navnet tilfaeldige_billeder - du kan selvfølgelig sagtens ændre jpg til gif, hvis dine billeder er i gif-formatet, ligesom du kan ændre mappenavnet.

Kopiér koden og indsæt den via boksen til indsættelse af php-kode. Bemærk, at du skal uploade billederne manuelt, eftersom de ikke overføres af KompoZer; brug et ftp-program eller et netværkssted.

/* Her findes et tilfældigt billede i mappen */
$filnavne = glob("tilfaeldige_billeder/*.jpg");
$tilfaeldig = array_rand($filnavne);
$filnavn=$filnavne[$tilfaeldig];

/* Her findes størrelsen på billedet */
list($width, $height) = getimagesize($filnavn);

/* Her tilføjes html-kode, og billedet og dets størrelse indsættes i koden */
echo "<img src='$filnavn' width='$width' height='$height' alt=''>";

Bemærk, at med denne kode kan du ikke få indsat en alt-tekst eller en tekst, der vises, når musemarkøren holdes hen over billedet. Men det er der råd for, tjek afsnittet Inkludering af tilfældigt indhold for en løsning på dette.

Inkludering af tilfældigt indhold   

Du kan lave en blanding af funktionen til at inkludere en fil og det tilfældige valg af et billede i en mappe. Dermed kan du få vist en tilfældig tekst, som fx "Dagens citat" eller et tilfældigt billede, hvor du også har mulighed for at angive en tekst, der skal vises, når musemarkøren holdes hen over billedet.

Fremgangsmåden er den samme, uanset om der er tale om tekst eller billeder. Du opretter en mappe, hvor du placerer filer med det, der skal inkluderes. I nedenstående kode, hedder mappen tilfaeldig, men du kan selvfølgelig sagtens kalde den noget andet, du skal i så fald blot huske også at ændre navnet i nedenstående kode. Filerne, der skal inkluderes i dette eksempel, har alle filtypen php. De kan fx hedde citat1.php, citat2.php og der_er_ikke_noget_at_komme_efter.php. Om navngivning af filer.

/* Her findes en tilfældig fil i mappen */
$filnavne = glob("tilfaeldig/*.php");
$tilfaeldig = array_rand($filnavne);
$filnavn=$filnavne[$tilfaeldig];

/* Her indsættes den tilfældige fil */
include $filnavn;

Ovenstående kan ikke kun bruges til citater men til alt indhold, der skal vælges tilfældigt, fx også billeder med indlagt "musetekst". I stedet for at gemme citater i php-filerne, skal filerne blot indholde det ønskede indhold, inklusive html-koder. Vil du fx bruge metoden til at indsætte et tilfældigt billede med musetekst, så kan indholdet i filen se således ud:

<img src="filnavn.jpg" width="100" height="200" alt="Her er et billede" title="Her er en musetekst">

Du skal så selv udskifte filnavn.jpg i den ovenstående kode med billedets navn, 100 skal udskiftes med billedets bredde, 200 med billedets højde og de to tekster med henholdsvis en alt-tekst og en musetekst. Alt-teksten vises, hvis et billede af en eller anden grund ikke kan vises. Du skal oprette en fil for hvert billede.

Du skal uploade filerne manuelt, eftersom de ikke overføres af KompoZer; brug et ftp-program eller et netværkssted.

Indsæt dags dato   

Denne kode indsætter dags dato. Bemærk, at det er webserverens dato, der indsættes. Hvis webserveren står i USA, vil du altså få indsat den danske dato med fem til ti timers forsinkelse.

Kopiér nedenstående kode. Åbn din hjemmeside i KompoZer, placér markøren der, hvor du vil indsætte dags dato, og indsæt koden. Bemærk, at du først vil kunne se datoen, når siden er uploadet til serveren.

/* Kode til at finde dags dato og indsætte den på hjemmesiden */

/* Her laves arrays med de danske dage- og månedsnavne */
$dag = array("Søndag", "Mandag", "Tirsdag", "Onsdag", "Torsdag", "Fredag", "Lørdag");

$md = array("januar", "februar", "marts", "april", "maj", "juni", "juli", "august", "september", "oktober", "november", "december") ;

/* Her hentes dag- og månednummer */
$dagpos = date("w");
$maanedpos = date("m")-1;

/* Her tildeles variablerne dansk dag- og månednavn */
$dag = $dag[$dagpos];
$maaned = $md[$maanedpos];

/* Her hentes datoen fra webserveren */
$dato = date(j);

/* Her samler det hele i en streng i stil med: Mandag d. 24. december */
$dagsdato="$dag d. $dato. $maaned";

/* Her udskrives dags dato på hjemmesiden */
echo $dagsdato;

Hvis du vil have dags dato formateret med en bestemt farve eller med en bestemt skrifttype, så kan du, inden du indsætter koden, skrive dato, der hvor du vil have indsat dags dato. Formatér nu teksten som ønsket. Når du indsætter ovenstående kode, så indsæt den mellem a og t i dato. Markér og slet nu henholdsvis da og to - altså uden at slette php-koden. Dags dato vil nu vises med samme formatering - som tidligere nævnt dog først, når siden er uploadet til webhotellet.

Kliktæller   

Kliktællerens statistik

Jeg har lavet en simpel kliktæller, så du fx kan se, hvor mange der klikker på dine links til andre sider eller til downloads af filer. Kliktælleren benytter tre filer: klik.php indeholder selve tælleren; links.php bruges til at opbevare linkene og antallet af klik; og statistik.php bruges til at aflæse statistikken.

Download de tre filer. Filerne er pakket ned i en zip-fil, så du skal pakke dem ud, før du kan bruge dem. Det kan gøres via et højreklik på zip-filen => Udpak alle => følg udpak-guiden.

Du skal ændre lidt i to af filerne og i dine links på hjemmesiden.

Ændringer i klik.php:

Åbn filen klik.php i en teksteditor, fx Notesblok. Du kan ikke bruge et avanceret program som Word, fordi det indsætter ekstra koder i filen.

Hvis et link ikke virker, vises en fejlside med en mailadresse, som den besøgende kan skrive til. Du skal udskifte din@mailadresse.dk i nedenstående linje med den ønskede mailadresse. Hvis du ikke ønsker, at besøgende kan skrive til dig i tilfælde af fejl, så slet linjen.

$mail = "Oplys venligst webmaster på mail din@mailadresse.dk om det fejlbehæftede link";

Hvis du allerede har en fil, der hedder links.php på din hjemmeside, kan du ændre filnavnet på den vedlagte links.php. Du skal så også ændre links.php i nedenstående linje til det nye navn:

$linje = file('links.php');

Gem og luk klik.php.

Jeg har indsat nogle prøve-linjer i filen, så du kan se formatet, fx:

001__http://kimludvigsen.dk__Ludvigs Hjørne__0

001 er linknummeret - det skal du bruge, når du angiver linket på din hjemmeside, se længere nede. __ (to understregs-tegn) er en adskillelseskode som bruges flere gange i linjen. Den skal være der. Herefter følger adressen til hjemmesiden og et nyt sæt adskillelsestegn. Den efterfølgende tekst vises i statistikken (se billedet ovenfor). Dermed kan du bruge en mere sigende tekst end selve link-adressen. Efter endnu et sæt adskillelsestegn følger klikantallet. Normalt vil du angive det som 0, men du kan også starte din tæller med et højere tal. Kliktælleren opdaterer dette tal, efterhånden som der klikkes på de enkelte links.

Du kan tilføje alle de links, du vil, ved at tilføje flere linjer efter samme opskrift. Husk at angive forskellige linknumre for hvert link, så de næste links har nummer 002, 003 osv. Gem og luk links.php, når du har tilføjet de ønskede links.

Bemærk, at hvis du senere vil tilføje links, så hent links.php fra serveren og tilføj de nye links i den. Hvis du tilføjer de nye links i din lokale udgave og uploader den, får du overskrevet din statistik.

Ændringer i statistik.php:

Du skal ikke ændre noget i filen statistik.php. Men du kan evt. omdøbe filen til noget mindre gennemskueligt, hvis du vil forhindre, at andre kan se statistikken ved at gætte filnavnet. Hvis du ændrer navnet på filen links.php, skal du dog også ændre filnavnet i nedenstående linje.

$linje = file('links.php');

Når du har tilrettet de tre filer, skal de uploades til webhotellet, hvor de skal placeres i samme mappe som selve hjemmesiden. Brug et ftp-program eller et netværkssted. Når du vil se linkstatistikken, skal du blot hente siden http://minhjemmeside.dk/statistip.php.

Du kan risikere at få problemer, når du bruger tælleren, fordi nogle webhoteller kræver, at du manuelt skal give skriveadgang til filen links.php. I så fald vil du få vist en fejlmeddelelse, der fortæller dig, hvilken oplysning du skal lede efter på dit webhotels support-sider.

Udskift dine links med et specielle links til kliktælleren

Du skal også rette i selve hjemmesiden. I stedet for et direkte link til en anden side eller en fildownload, skal du bruge et specielt link. I stedet for at linke til Ludvigs Hjørne med adressen http://kimludvigsen.dk skal du i linket angive en adresse i stil med klik.php?id=001. Hvor 001 angiver linknummeret i filen links.php.

Bemærk, at du ikke skal skrive http:// eller www. foran linket. Linket skal blot angives som klik.php?id=001.

Overfør den tilrettede hjemmeside til webhotellet, og tjek om kliktælleren fungerer.

Kontaktformular   

Kontaktformular

I stedet for at offentliggøre din mail-adresse på hjem­mesiden, kan du benytte en kontakt­formular. Dermed kan de besø­gende sende dig en mail, uden at spam­merne kan høste din mail­adresse. Spam­merne kan ganske vist bruge formu­laren til at sende dig spam, men formularen indeholder en usynlig spamfælde, der fanger langt de fleste spammere.

Kontaktformularen består af en formular-kode, som du skal indsætte på din hjemmeside, og en php-fil, som du skal rette lidt i og derefter uploade til dit webhotel.

Download php-filen. Filen er pakket ned i en zip-fil, så du skal pakke den ud, før du kan bruge den. Det kan gøres via et højreklik på zip-filen => Udpak alle => følg udpak-guiden.

Ændringer i filen kontaktformular.php:

Åbn filen kontaktformular.php i en teksteditor, fx Notesblok. Du kan ikke bruge et avanceret program som Word, fordi det indsætter ekstra koder i filen.

I nedenstående linje angives din hjemmesides navn. Det bruges i mailen til dig og i en evt. kopimail til afsenderen. Udskift minhjemmeside.dk med din hjemmesides navn eller adresse.

$hjemmeside = "minhjemmeside.dk";

I nedenstående linje skal du angive den mailadresse, som formularmailene skal sendes til. Udskift min@mailadresse.dk med den ønskede mailadresse.

$mail = "min@mailadresse.dk";

I nedenstående linje angives den mailadresse, der skal bruges i den kopimail, der sendes til afsenderen. Udskift kanikke@besvares.invalid med den ønskede mailadresse. Hvis du ikke ønsker, at afsenderen skal kende din mailadresse, så lad være med at ændre i linjen.

$afsendermail = "kanikke@besvares.invalid";

Når beskeden er sendt, sendes den besøgende videre til den hjemmeside som er angivet i nedenstående linje. Udskift http://minhjemmeside.dk med adressen til den ønskede side.

$viderestil = "http://minhjemmeside.dk";

Du kan fx angive adressen til din forside, eller du kan angive adressen til en speciel side, hvor du fortæller, at beskeden er sendt, og at du vil svare snarest muligt.

Upload kontaktformular.php med et ftp-program eller via et netværkssted til webhotellet.

Ændringer på hjemmesiden:

Jeg har lavet en simpel formular med felter til navn, e-mail-adresse og et besked-felt, som du nemt kan kopiere og indsætte et ønsket sted på din side.

Kopier nedenstående kode, placér markøren det ønskede sted på din side i KompoZer, klik på menupunktet Indsæt => HTML. Indsæt det kopierede, og klik på Indsæt. Bemærk, at dette er html-kode, så det skal ikke indsættes som php-kode.

<form method="post" action="kontaktformular.php" name="formular"> <table style="width:475px; margin-left:auto; margin-right:auto;"><tbody> <tr><td align="left" style="width:100px;">Navn:</td><td align="left"><input name="navn" style="width:375px;" type="text"></td></tr> <tr><td align="left">E-mail:</td><td align="left"> <span style="display: none;">Dette felt skal ikke udfyldes: <input name="email" type="text"><br></span><input name="epost" style="width:375px;" type="text"></td></tr> <tr><td align="left">Emne:</td><td align="left"><input name="emne" style="width:375px;" type="text"></td></tr> <tr><td align="left">Besked:</td><td align="center"><textarea name="besked" style="width:375px; height:100px" rows="5" cols="40"></textarea></td></tr> <tr><td colspan="2" style="text-align:center;">Send mig en kopi <input type="checkbox" name="kopi"></td></tr> <tr><td colspan="2" align="center"><input value="Send" type="submit"><input name="clear" value="Slet alt" title="Slet alt" type="reset"></td></tr> </tbody></table></form>

Efter indsættelsen vil du kunne se formularen i KompoZer, og du kan evt. ændre på den eller dens tekster. Afslut med at overføre den tilrettede hjemmeside til webhotellet og lave en test af formularen.

Du kan risikere, at dit webhotel ikke tillader brugen af denne kontaktformular, i så fald vil webhotellet typisk selv have en formular, du kan bruge.

Adgangskode   

Du kan bruge php til at lave en adgangskontrol til en eller flere sider på din hjemmeside. Jeg har her lavet en simpel adgangskontrol med et enkelt brugernavn og en tilhørende adgangskode. Den kan fx bruges til at beskytte familierelaterede sider, som ikke kommer andre ved.

Det er desværre lidt nørdet at indsætte og bevare en adgangskontrol på grund af mangelfuld understøttelse af php i KompoZer. Adgangskodekontrollen skal indsættes allerførst i sidens kode, og det tillader KompoZer ikke. For at bruge adgangskontrol, skal du derfor gemme siden lokalt i stedet for at overføre den direkte via KompoZer. Du skal herefter åbne filen, og indsætte en stump kode, og så skal du overføre siden manuelt med et ftp-program eller et netværkssted.

Hvis du efterfølgende henter og retter siden i KompoZer, skal du atter indsætte kodestumpen og overføre siden manuelt. KompoZer fjerner nemlig kodestumpen, når du åbner siden.

Jeg prøver i det efterfølgende at gøre det så let som muligt at bruge adgangs­kontrol, men helt let bliver det desværre ikke.

Min adgangskontrol består af kode, der skal indsættes på alle de sider, du vil beskytte mod uvedkommende. Koden kan reelt sagtens indsættes direkte på de enkelte sider, men jeg har valgt at placere den i en selvstændig fil, som du så skal inkludere på de pågældende sider. Det har den fordel, at du nemt kan skifte adgangskode, uden du behøver at skulle rette i alle siderne. Det er også mere overskueligt, når du skal indsætte koden, fordi du kun skal indsætte en enkelt linje.

Siden kræver login

Hvis den besøgende ikke er logget ind vises en login-­side i stedet for den rigtige side.

Når først en besøgende er logget ind, huskes dette for alle sider, indtil browseren lukkes. Det er selvfølgelig ikke så praktisk, hvis fx den besøgende bruger en computer, som uvedkommende har adgang til. Du får derfor også lidt kode, der kan bruges til at placere en log af-knap på siden.

Download php-filen. Filen adgangskontrol.php er pakket ned i en zip-fil, så du skal pakke den ud, før du kan bruge den. Det kan gøres via et højreklik på zip-filen => Udpak alle => følg udpak-guiden.

OBS! Jeg har opdateret login-scriptet d. 1/10-2008. Har du hentet scriptet inden denne dato, så hent den nye udgave. Den gamle udgave virkede ikke på visse webhoteller, og der var desuden en valideringsfejl i formularen.

Ændringer i filen adgangskontrol.php:

Åbn filen adgangskontrol.php i en teksteditor, fx Notesblok. Du kan ikke bruge et avanceret program som Word, fordi det indsætter ekstra koder i filen. Find linjerne:

$accepteret_bruger = "brugernavn";
$accepteret_kode = "kode";

Udskift brugernavn med det ønskede brugernavn og kode med den ønskede adgangskode. Vær opmærksom på, at der skelnes mellem store og små bogstaver. Angiver du en kode som Familie, kommer man ikke ind, hvis man indtaster familie. Du kan evt. også ændre den grønne tekst i denne linje:

$logintekst = "<h2>Denne side kræver login</h2>";

Det er en tekst, der vises oven over login-formularen. Hvis du ikke vil have vist en tekst over formularen, så slet hele linjen.

Når den besøgende klikker på log af-knappen, logges han af, og samtidig sendes han til en anden side. Find nedenstående linje, og udskift den grønne hjemmesideadresse med adressen på den side, han skal sendes til, når han logger af. Det kan fx være din forside.

$hjemmeside = "http://minhjemmeside.dk";

Når du har foretaget de ønskede ændringer, så gem og luk filen. Upload herefter adgangskontrol.php til webhotellet med et ftp-program eller et netværkssted.

Ændringer på hjemmesiden:

Indsæt log af-knap

Hvis du vil have indsat en log af-knap, skal du kopiere nedenstående kode. Placér markøren der, hvor du vil have placeret log af-knappen. Klik på menupunktet Indsæt => HTML, indsæt koden og klik på knappen Indsæt. Log af-knappen indsættes på en linje for sig. Bemærk, at nedenstående kode skal indsættes som html-kode, og ikke som php-kode.

<div style="width: 100px;"><form action="" method="post"><input value="Log af" type="submit" name="logaf" style="width: 100px;"></form></div>

Gem siden på din egen computer ved at klikke på knappen Gem

Som tidligere nævnt kan du ikke indsætte adgangskontrollen via KompoZer. Du skal i stedet gemme siden på din egen computer via knappen Gem - husk, at filen skal gemmes som en php-fil i stedet for som html. Det vil sige, at du ud for Filtype skal vælge Alle filer, og du skal samtidig omdøbe filen, så den hedder etellerandet.php.

Åbn nu filen i Notesblok. Allerførst i filen skal du indsætte denne linje:

<?php include 'adgangskontrol.php'; ?>

Åbn siden i Notesblok og indsæt inkluderingskoden allerførst i filen

Gem og luk filen, og overfør den til webhotellet med et ftp-program eller et netværkssted.

Gentag med alle de sider, der skal have adgangskontrol, men tjek lige med en enkelt side først, så du har styr på processen.

Alternativ formular

En lidt pænere login-formular

Ovenstående adgangs­kontrol viser en lidt kedelig login-side. Du får her en lidt mere flek­sibel ud­gave, der gør det muligt at ind­sætte for­mu­laren et valgfrit sted på din hjem­me­side, så du fx kan få vist dit logo eller din overskrift på siden.

Adgangskontrollen er opdelt i to filer, hvor den første del skal indsættes allerførst i koden, som beskrevet ovenfor. Den anden del indeholder selve formularen, som du kan placere et valgfrit sted på siden. Du skal blot huske at placere den før det indhold, der skal beskyttes.

Download php-filerne. Filerne adgangskontrol.php og adgangsformular.php er pakket ned i en zip-fil, så du skal pakke dem ud, før du kan bruge dem. Det kan gøres via et højreklik på zip-filen => Udpak alle => følg udpak-guiden.

OBS! Jeg har opdateret login-scriptet d. 1/10-2008. Har du hentet scriptet inden denne dato, så hent den nye udgave. Den gamle udgave virkede ikke på visse webhoteller, og der var desuden en valideringsfejl i formularen.

Ændringer i adgangskontrol.php:

Foretag de samme ændringer i adgangskontrol.php som nævnt ovenfor.

Ændringer i adgangsformular.php:

Du behøver ikke ændre noget i adgangsformular.php. Hvis du ved, hvad du gør, kan du dog ændre udseendet på formularen ved at ændre i koden.

Du kan risikere, at indsættelse af formularen vil betyde, at login-siden ikke vil validere. Det skyldes, at formularen afbryder indlæsningen af resten af siden, hvorfor du risikerer, at nogle div-bokse eller andre elementer ikke bliver afsluttet korrekt. Siden vil blive vist korrekt, men den vil ikke validere.

Du har i så fald to muligheder: Acceptere, at login-siden ikke validerer, eller prøve at indsætte de manglende afslutninger i adgangsformular.php. Jeg kan desværre ikke give dig en endegyldig anvisning på, hvad du skal indsætte, men det vil normalt være en eller flere forekomster af koden </div>, der skal indsættes lige før koden </body>.

Ændringer på hjemmesiden:

Indsæt evt. en log af-knap som beskrevet ovenfor.

Du indsætter login-formularen ved at kopiere nedenstående kode. Placér markøren det ønskede sted på siden, og indsæt den kopierede kode.

include 'adgangsformular.php';

Du kan evt i stedet indsætte koden direkte i kildekodevisning, hvilket kan give dig lidt mere kontrol over placeringen. Husk i så fald at angive start- og slutkoder til php, altså: <?php include 'adgangsformular.php'; ?>.

Mere avanceret adgangskontrol

Der findes mere avancerede php-scripts, der fx gør det muligt at oprette flere brugernavne og adgangskoder. Du kan fx finde et php-script til flere brugere på Hjemmesideskolen. Hjemmesideskolens script bruger en MySQL-database til at holde styr på brugerne, så det er lidt mere nørdet at opsætte adgangskontrollen.

Husk, at uanset hvilket script du bruger til adgangskontrol, så vil det sandsynligvis kræve, at der indsættes php-kode først i sidens koder. Og i så fald skal du indsætte php-scriptet med Notesblok som beskrevet ovenfor. Du får ikke lov at indsætte php-kode først i sidens kode, når du bruger KompoZer.


Download

KompoZer fylder knap 7 MB. Download KompoZer fra MozillaDanmarks hjemmeside.

Trin for trin-guiderne hjælper dig godt i gang med at bruge KompoZer.