PHP - Begynderhjælp

I denne lille artikel vil jeg gennemgå hvordan du forbereder din webside til PHP-programmering, samt lære dig at bruge den meget nyttige "Include-funktion".

PHP-sider rummer en lang række fordele som man ikke kan bruge på almindelige HTML-sider, men forskellen i programmering af hjemmesider er såmænd ikke så stor endda.

Det første skridt på vejen til at kunne drage nytte af PHP-kodningens mange fordele, består helt enkelt i at omdøbe alle sine HTML-sider fra filendelsen .html til .php

Det er i den forbindelse vigtigt at huske, at man selvfølgelig skal lave sine link til diverse undersider om. Har man eksempelvis en side med en gæstebog, der hedder "gæstebog.html", så skal linket til denne side omdøbes til "gæstebog.php", men så er man også godt i gang med at kunne anvende diverse PHP-funktioner på hjemmesiden.

Problemløsning med Include-funktionen

Een af mine hjemmesider, der tidligere var lavet i HTML, havde cirka halvtreds undersider. Enhver kan forestille sig hvor tidskrævende det måtte være når der skulle rettes i menuen på denne webside.
Det forgik ved at åbne samtlige halvtreds sider, rette i menuen, og gemme siden igen. Problemet blev ikke mindre af at jeg havde navigationsmenuen to steder på siden, - nemlig en menu i venstre side, og een i bunden af siden.

Dette irriterende problem blev løst ved hjælp af PHP-kodning, på den måde at jeg lavede en PHP-side kun med menuen, og satte denne side ind på samtlige undersider med en "Include-funktion".
Nu behøver jeg fremover kun at rette i den ene include-side menuen er på, - så vil rettelsen omfatte samtlige halvtreds undersider.

Som en meget dygtig programmør og webmaster skrev til mig i hans forum:

"Jeg husker meget tydeligt da jeg første gang stiftede bekendtskab med include-funktionen, - det var som at finde guld".

Sådan husker jeg det også.

Når man laver en include-side, så er det vigtigt at huske at den absolut kun skal indeholde det man ønsker at includere. Includesiden skal således hverken have en head-section eller en body-section, eller noget som helst andet. Koderne for disse er jo i forvejen på den side hvor man ønsker at includere includesiden.

Den færdige include-side skal have et navn. Er det eksempelvis en menu, så vil det være meget nærliggende at kalde siden for "menu.php"

Når menuen er lavet, så kan include-siden "menu.php" sættes ind på alle de sider hvor man ønsker menuen skal ses. Det foregår med "include-funktionen" som ser således ud, og som skal placeres på den side, og på det sted, hvor menuen skal være:

<?php
include($_SERVER['DOCUMENT_ROOT']."/menu.php");
?>

Bemærk: at der i koden for include-funktionen står "Document root". Det betyder at din include-side skal være i root-directory.
Hvis du er uklar på hvad begreber som root og root directory dækker over, så bør du også læse den del af artiklen der er i bunden af denne webside.

Jeg har, som et eksempel, lavet en webside hvor der er gjort flittigt brug af include-funktionen, så du kan se det fungere i praksis.
På testsiden med eksemplet kan du endvidere klikke på de enkelte elementer, således at du kan se hver enkelt include-side for sig selv. Siden kan ses på dette link:

Se webside med include-funktionen:
[KLIK HER]

Som det forhåbentligt fremgår af denne lille introduktion til PHP, så er include-funktionen en særdeles nyttig funktion. Der findes en lang række andre meget simple funktioner, som kan føje nogle nyttige features til din webside. Nogle eksempler på dette kan du se i de fem funktioner herunder:

Din IP-adresse er: 38.107.179.228

Der er nu gået 35 dage af år 2012

Datoen i dag er: Sunday February 05 2012

Du åbnede denne webside klokken 06:34:10

Sidst opdateret: Sunday March 13 2011 14:07

Funktionen "Sidst opdateret" er faktisk en meget efterspurgt funktion. Denne kode er i øvrigt også det mest komplicerede af de fem, - og det er såmænd ikke mere "kompliceret" end dette, hvilket må siges at være ret enkelt:

<?
$last_modified = filemtime("phpside.php");
print(date("l F d Y H:i", $last_modified));
?>

I denne PHP-kode indgår der en række bogstavskoder som angiver timestamps samt tilgængelige tid- og datoformater. Du kan finde en komplet liste over disse bogstaver på dette link:
[KLIK HER]

Vigtigt: Hvis du bruger funktionen på din egen webside, så skal du huske at udskifte filnavnet "phpside.php" med navnet på den webside hvor du bruger koden.

Som det vil fremgå af nogle af ovenstående PHP-eksempler, så er timestamps almindeligvis på engelsk. Hvis man ønsker funktionen "Sidst opdateret" med angivelse af dansksprogede dag- og månedsnavne, så bliver PHP-koden en del mere avanceret idet den nu også skal rumme en oversættelse:

Siden er sidst opdateret: Søndag den 5. februar 2012

Ovenstående dansksprogede eksempel er fundet på Niels Gamborgs hjemmeside på dette link: [NIELS GAMBORG - KLIK HER]

Du kan se PHP-koden som en txt-fil (tekstfil) på dette link, eller højreklikke på linket for at downloade filen: [TEKSTFIL - KLIK HER]

Funktionen "Sidst opdateret" kan også laves med et java-script. Java-script fungere både på HTML og PHP-sider.
Du kan se java-scriptet som en txt-fil (tekstfil) på dette link, eller højreklikke på linket for at downloade filen: [JAVASCRIPT - KLIK HER]

PHP-koden der viser dine besøgende deres egen IP-adresse er også en rimeligt okay gimmick at have med på sin hjemmeside. Denne kode ser således ud:

<?php echo $_SERVER['REMOTE_ADDR'] ?>

Denne kode findes også i en mere avanveret udgave hvor den besøgende ikke alene kan se sin IP-adresse, men også kan se om det er en IPv4 eller IPv6 adresse:

Din IPv4-adresse er 38.107.179.228

Denne PHP-kode er lavet af Christian Læssøe der har websiden IT-Works hvor man også kan finde andre spændende ting til hjemmesiden. [IT WORKS - KLIK HER]

Du kan Christians PHP-kode som en txt-fil (tekstfil) på dette link, eller højreklikke på linket for at downloade filen: [TEKSTFIL - KLIK HER]

De mange PHP-funktioner fungerer fint på en traditonelt HTML-kodet webside, når bare man husker at filendelsen på siden skal være .php. Man behøver således ikke at frygte at en flirt med PHP-kodning betyder et uigenkaldeligt farvel til den gode gammelkendte HTML-kodning.

Præcis som i HTML-kodning, så er der også i PHP-kodning nogle tegn som markerer henholdsvis start og afslutning på koden. I PHP ser disse tegn således ud:

Kode start: <?
Kode slut: ?>


Visse HTML-editorer, - eksempelvis Frontpage - fungerer ikke så godt sammen med disse tegn. Bruger man en editor hvor dette er et prblem, så kan man alternativt anvende start-stop-koderne for script. Det fungerer fuldt ud lige så godt:

Kode start: <script language="php">
Kode slut: </script>

Sidst, men ikke mindst, så findes der PHP-editorer lige så vel som der findes HTML-editorer. Een af disse hedder "Maguma Studio", og den fås oven i købet i en fortræffelig gratisudgave. Du kan downloade den på dette link: [DOWNLOAD MAGUMA]

Såfremt du har fået mod på at lære mere om de mange muligheder der er i PHP-kodning, så er der en række gode link med PHP-tips at finde på disse sider:

Hephey - PHP hjælp: [KLIK HER]

PHP Begynders guide: [KLIK HER]

PHP Grundlæggende regler: [KLIK HER]

PHP Tutorials og artikler: [KLIK HER]

Teknik & Sjov - Lidt PHP: [KLIK HER]


Tekst, PHP-kodning og HTML-kodning:
Flemming Nielsen Webmaster FN Support


Root directory og definition af stier

Der er erfaringsmæssigt mange brugere der har problemer med at definere stier korrekt. I langt de fleste af de tilfælde hvor link ikke virker, eller hvor brugere ikke får billeder ind på deres hjemmeside, så skyldes det næsten altid at stien til de ønskede objekter ikke er defineret korrekt.

Biblioteksstrukturen på et webhotels serverplads er i mange henseender sammenlignelig med den biblioteksstruktur de fleste brugere kender fra Windows Stifinder. På de fleste computere er "Root directory" identisk med C-drevet, som på en computer er defineret således: C:\

Denne enkle betegnelse for et root directory kan ikke anvendes på webhoteller, idet alle brugere har unikke domænenavne. Har du eksempelvis et domæne der hedder "www.mitdomæne.dk", så vil den nøjagtige sti til dette se således ud:

http://www.mitdomæne.dk/

Denne sti er samtidig stien til dit root directory, og er således ret identisk med den fra Windows Stifinder så velkendte C:\

I dit root directory ligger der en underliggende mappe- og filstruktur. Din index-fil til din webside vil typisk ligge i root directory. Det er den fil som er startsiden på din webside, og den vil typisk hedde: "index.html". For øvelsens skyld kan vi så lige definere stien til din index-fil korrekt også. Den ser nemlig således ud:

http://www.mitdomæne.dk/index.html

I det følgende eksempel forestiller vi os at du har en stylesheet-fil med navnet "mystyle.css" og at du placerer denne fil et andet sted end i root directory, - eksempelvis i en mappe du har kaldt "stylesheets".
En korrekt sti til denne fil skal således både indeholde stien til root directory, stien til mappen, og stien til selve filen i mappen. Denne sti vil derfor se således ud:

http://www.mitdomæne.dk/stylesheets/mystyle.css

For forståelsen skyld får du lige endnu et eksempel:

Jeg har et billede af mig selv. Dette billede hedder, praktisk nok, "mig.jpg". Hvis jeg lægger dette billede ud direkte i root directory, så er stien til billedet forholdsvis enkel, - den vil nemlig se således ud:

http://www.fnsupport.dk/mig.jpg

Nu kan man jo ikke have alle sine filer til at ligge og sejle rundt i root directory i een stor pærevælling. Det ville svare til at alle filer på ens computer lå direkte i roden til C-drevet i stedet for at være pænt ordnet og sorteret i mapper og undermapper.

Root directory på dit webhotel er primært beregnet til at indeholde dine websider og nogle helt specielle filer som .htaccess, der skal ligge i roden for at fungere. De øvrige filer bør man sortere og gruppere i egne undermapper, for bare at holde en lille smule styr på det. Billeder bør eksempelvis være i en mappe der udelukkende indeholder billeder.

I det aktuelle eksempel har jeg derfor lavet en mappe til billeder. Denne mappe hedder "billeder", og jeg har i denne mappe også lavet nogle undermapper, således at jeg kan sortere mine billeder i forskellige grupper.
Billeder af mig selv, som eksempelvis "mig.jpg", skal ligge i en undermappe i "billeder", som hedder "egne-foto". Nu bliver stien til billedet en anelse mere kompliceret. Den ser nu således ud:

http://www.fnsupport.dk/billeder/egne-foto/mig.jpg

En sti er stort set det samme som et link. Den nemmeste måde at tjekke en sti på er at skrive stien direkte i din browsers adresselinie. Hvis det pågældende objekt ikke dukker op, og du i stedet får den velkendte "Siden kan ikke vises", så er dit link helt enkelt defineret forkert.

Du kan jo prøve at skrive de stier, jeg her har lagt som et eksempel, i din browsers adresselinie, - så vil du se billedet "mig.jpg" dukke op på din skærm.
Brug copy/paste, - det er nemmere, og det er i øvrigt altid en god skik at gøre dette når man skal videregive link til andre. Så er man i det mindste sikker på at linket er korrekt gengivet.

Du bør især være opmærksom på at link er "Case sensetive". Det betyder at der skelnes meget nøje mellem små og store bogstaver, og at linket ikke virker hvis du ikke overholder dette. Det er derfor også meget vigtigt at du gengiver filtyper præcis således som de er skrevet, - så er en jpg-fil benævnt "jpg" med små bogstaver, så skal du også gengive den med små bogstaver i dit link til filen.