Include. :)

Her kan du få hjælp og stille spørgsmål til PHP!
Besvar
Yasse
Begynder
Indlæg:6
Tilmeldt:11. aug 2011, 18:19
Include. :)

Indlæg af Yasse » 11. aug 2011, 18:20

Havde egentlig skrevet til den der tutorial med include, men da jeg så der var et forum, poster jeg det også her.:)

jeg skrev:


Hej. :)
Har altid brugt include, men har skrevet:
<div name="content" src="index.php" bgcolor="FFFFFF" style="position:absolute; top:0px; left: 0px; width: 0px;">

i min header.php, da jeg så fandt ud af man ikke behøvede og blot kunne css style den og skrive include i index.php


Men da jeg syntes det ikke altid virker for mig, vil jeg gerne prøve det her. Da jeg gerne vil have at siden ligger centreret, men så den passer på alle skærme. (Hvis du forstår?)

problemer er at her, forstår jeg ikke helt "template" og "main". Hvor er index.php inde i billedet? Håber du vil hjælpe mig. :)


håber nogle vil hjælpe, og skære det en smule ud i pap for mig. Tak på forhånd!

Brugeravatar
ThomasI
Grundlægger
Grundlægger
Indlæg:1528
Tilmeldt:28. dec 2010, 10:49

Re: Include. :)

Indlæg af ThomasI » 11. aug 2011, 20:10

Hej Yasse

Er ikke helt sikker på jeg forstå, men nu prøver jeg alligevel...

Altså Index.php er blot det dokument, som ligger i roden af din server. dvs. det er din hjemmesides forside. Så hvis man trykker http://www.dinhjemmeside.dk in i browseren, så vil det være index.php der bliver vist.

Derfor er index.php egentlig en side som så mange andre, den hedder bare index, og det gør at den vil blive vist som forsiden.

Din index.php kan byggers op efter en template, som du kan lave med include - ALLE dine dokumenter kan faktisk bygges op efter din template.

Lad os sige at du vil lave en side som er centreret som du siger...dette kunne du gøre på følgende måde:

først laver du en wrapper div:

Denne div styler du med margin: auto og sætter en brede og højde på den:

Kode: Vælg alt

<div style="margin:auto ; height: 900px ; width: 800px; border-style: solid ; border-width: thin;" >

</div>
inde i denne div kan du så have dine include funktioner såsom header og footer...

mellem header og footer kan du så have et område, som kan være redigerbart, og som ikke skal være standard på alle sider... det kunne se således ud:

Kode: Vælg alt

<div style="margin:auto ; height: 900px ; width: 800px; border-style: solid ; border-width: thin;" >

<?php

include("header.php");

?>
<div style="width: 750px ; height: 650px ; margin:auto; border-style: solid ; border-width: thin; ">

Ikke standard indhold

</div>

<?php

include("footer.php");

?>

</div>
Inde i dine header og footer kan du så ogspå placere nogle divs stylet så de f.eks er 600 brede og 100 høje... På den måde vil headeren ligge over dit rediger bare indhold og footeren under.

Du får altså en template hvor du centralt kan redigere i din footer og header, og ellers have forskelligt indhold i din indholds div i midten.


Håber det kan hjælpe dig...

Ellers må du gerne skrive igen :D

Brugeravatar
webudvikleren
Rutineret
Rutineret
Indlæg:80
Tilmeldt:13. jun 2011, 21:11
Geografisk sted:Esbjerg
Kontakt:

Re: Include. :)

Indlæg af webudvikleren » 11. aug 2011, 20:29

Hej Yasse.

Jeg vil prøve at forklare hvordan man bruger include og hvornår det er smart at udnytte funktionen.

Først og fremmest er det vigtigt du forstår hvad forskellen på de forskellige kodetyper er og hvornår det bruges. Både af din browser og server.

PHP er kode som afvikles før du ser det i din browser.
HTML og CSS er kode som afvikles af din browser.

Dvs din kode:

Kode: Vælg alt

<div name="content" src="index.php" bgcolor="FFFFFF" style="position:absolute; top:0px; left: 0px; width: 0px;">
ikke vil fungere fordi du prøver at implementere en PHP fil direkte fra browseren da det som omkranser din index.php er HTML. Din index.php vil altså ikke blive afviklet.

Hvis vi vender tilbage til dit spørgsmål:
problemer er at her, forstår jeg ikke helt "template" og "main". Hvor er index.php inde i billedet?
Svar:
Du skal (eller kan) arbejde i din index.php, hvilket er den første side man vil få vist på din hjemmeside. I din PHP kode kan du vælge at "include" andre filer for at gøre din hjemmeside dynamisk. Ved at have data eller andre filer, kan du derfor sætte designet og indholdet op forskelligt alt efter hvordan du ønsker det skal fungere.

Eksempel på en opsætning:

I din index.php skriver du:

Kode: Vælg alt

<?php 
include("header.php");
include("main.php");
include("footer.php");
?>
Dette betyder at header.php, main.php og footer.php nu bliver "trukket" eller inkluderet i din index.php. Du behøver nu kun at opdatere disse 3 eksterne sider individuelt. Det gør det mere overskueligt når du har utrolig mange filer. En rar ting er at have en som hedder menu.php og include den. Det giver god mening i hvert fald hvis du også har en side som fx hedder underside.php.

I din header.php plejer jeg at placere links til CSS filer som HTML kode. Den CSS kode du søger til at centrere en side hedder:

Kode: Vælg alt

div #content {
   margin: 0 auto;
   width:980px;
}
HTML koden til at linke til ekstern CSS fil hedder:

Kode: Vælg alt

<link rel="stylesheet" href="STI/TIL/DIN/CSSFIL.css" type="text/css" />
Hvis du er i tvivl om helheden når du har prøvet dig frem, kan du altid vise din kildekode i browseren. Så har du et godt overblik over hvad der er genereret efter alle include-filerne.

Giver det mening?

Yasse
Begynder
Indlæg:6
Tilmeldt:11. aug 2011, 18:19

Re: Include. :)

Indlæg af Yasse » 12. aug 2011, 11:39

Forstår bare ikke main? Der hvor main er, er vel der man skal redigere indholdet? man kan jo ikke bare inkludere main på alle siderne man har, fordi så bliver det på det samme som står på siderne?



forstår heller ikke hvorfor delen man laver en "template.php" side? Fordi det er jo index.php man ser som det første på enes side.

er stadig forvirret. :|

Brugeravatar
ThomasI
Grundlægger
Grundlægger
Indlæg:1528
Tilmeldt:28. dec 2010, 10:49

Re: Include. :)

Indlæg af ThomasI » 12. aug 2011, 12:15

Du har ret...

I videoen vises også main som et inkluderet område...det kan godt være lidt misvisende...

Det er egentlig lidt op til dig selv hvor mange områder på siden du vil have inkluderet som standard... f.eks kunne du have 2 main...en som var standard og en som var redigerbar.

"Template" er bare en standard opsætning af alle dine sider...Du kan så bygge dine sider op omkring denne template, så de alle får et ens look. Altså... åben template...skriv indhold ind i det redigerbare område og gem filen som det den skal hedde...gør derefter det samme igen... på den måde vil du få 2 filer som er opbygget på sammen måde, men som er forskellige med hensyn til det redigerbare område... Når du så engang retter i dine inkluderede filer vil det bliver rettet på alle sider, mens det redigerbare indhold forbliver intakt. :D

Brugeravatar
webudvikleren
Rutineret
Rutineret
Indlæg:80
Tilmeldt:13. jun 2011, 21:11
Geografisk sted:Esbjerg
Kontakt:

Re: Include. :)

Indlæg af webudvikleren » 12. aug 2011, 12:20

Du skal tænke på at du kan ændre din sides indhold vha. $_GET metoden.
Fx: http://www.ditdomæne.dk/index.php?side= ... tikelID=23

I linket ovenfor kan du trække variabler ud sådan:

side = underside
artikelID = 23

Med det kan du så hente artiklen som har ID 23 fra din database, og vise den i din template.php.

Et eksempel på din index.php:

Kode: Vælg alt

<?php
if($_GET['side']==underside) {
include('template.php');
}
?>
Din template.php ser derfor sådan ud:

Kode: Vælg alt

<?php

// forbind til databasecode laver du her
// herefter laver du en $query = mysql_query(SELECT * FROM artikler WHERE id = '$_GET[artikelID]');
// og udskriver denne sådan:

$artikelData = mysql_fetch_array($query);
echo $artikelData['indhold'];


// Her placerer du en mysql_close();
?>
På din index.php vil den så vise teksten. Du kan pynte de forskellige include filer som du har lyst. Helheden skal bare være korrekt mht HTML standarder osv...

Hvis du ser videotutorialen igennem med variabler vil det give mere mening. Link: http://www.nemprogrammering.dk/Tutorials/PHP/T2PHP.php

Håber det hjælper lidt bedre ... :)

Yasse
Begynder
Indlæg:6
Tilmeldt:11. aug 2011, 18:19

Re: Include. :)

Indlæg af Yasse » 12. aug 2011, 13:36

Tak alle sammen, forstår det meget bedre nu. Udover jeg ikke kan se hvad main er godt for, men altså. :P

Brugeravatar
webudvikleren
Rutineret
Rutineret
Indlæg:80
Tilmeldt:13. jun 2011, 21:11
Geografisk sted:Esbjerg
Kontakt:

Re: Include. :)

Indlæg af webudvikleren » 12. aug 2011, 13:43

main.php er også blot en del af din index.php du kan trække ind. Du kan jo navngive dem og bruge dem som du har lyst og behov for... Ingen der siger at du SKAL gøre det... :)

Besvar