Gå til innhold

Alternativer til "include" - lager hjemmeside


Anbefalte innlegg

Jeg har en index side som inneholder text, versjon #, banner, og forskjellige andre ting. Når jeg da trykker på en annen link, så vil jeg fortsatt ha opp alle disse ekstra tingene som banner, versjon # og alt det, det eneste jeg vil endre på er hovedteksten. Til nå har jeg brukt include for å includere alle de tingene, men da må jeg jo lage dobbelt opp med sider. Vanskelig å forklare så legger ved min index.php:

 

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<title>Main Page</title>
<link rel="stylesheet" href="style1.css" style="text/css">
</head>
<body>

<div id="ikon">
<a href="http://www.nanbjor.tk"><img src="Bilder/ikon.gif" id="n" alt="http://www.nanbjor.tk"></a>
</div>
<div id="banner">
<? include("banner.htm"); ?>
</div>
<div id="version">
<? include("version.htm"); ?>
</div>
<div id="meny">
<? include("meny.htm"); ?>
</div>
<div id="main">
<? include("main.htm"); ?>
</div>

<div id="lineup"></div>

<div id="rights">
<?php include("rights.htm"); ?>
</div>


</body>
</html>

Så legger jeg inn "mail.htm" for å få opp teksten.

 

Spørsmålet mitt er egentlig om det er en lettere måte å gjøre dette på? Jeg vil fortsatt includere alle disse ekstra tingene, men jeg vil gjøre det på en annen måte. Det skal nevnes at jeg ikke kan noen ting om php.

 

Kan jeg for eksempel få alle sidene til å "referere" til hovedsiden (eller noe) slik at alle sidene ligner på hovedsiden, men hovedteksten er annerledes?

 

På forhånd takk :)

 

EDIT:

 

Utrolig vanskelig å forklare men prøver på nytt:

 

La oss si at jeg kaller "div" en jeg har tekst inni for "1". Går det ann å programere slik at når noen feks. trykker på linken "om meg" så skifter php scriptet bare ut teksten "1" med en ny tekst som handler om meg. Si at jeg kaller denne teksten for "om meg". Går det ann å kun skifte ut tekst "1" med tekst "om meg" og la alt annet forbli slik det var?

 

spm2:

Går det ann å få php-scriptet til å forstå hvem tekst den har oppe? Feks. hvis jeg har oppe "om meg" så blir linken i margen "om meg" litt gråere eller noe slik at leserene kan se hvilken link de har trykket på? Eller at det står i addressefeltet hva de er inne på?

 

Jeg er interessert i å lære meg php, så hvis dere vil besvare mine spm. med å henvise meg til en internettside som lærer bort dette, er det helt greit! Kanskje til og med foretrukket.

Endret av w3p
Lenke til kommentar
Videoannonse
Annonse

Må si jeg er virkelig i tvil om hva du mener...

Men.. jeg prøver.

For det første skal php starte med <?php og avslutte med ?>.

 

Så over til ditt spm..

 

Hvis jeg fortår deg rett, kan du bruke include($_GET['side'].php); istedet for include(main.html).

 

Da må du sette linkene slik: <a href="?side=ommeg"> så må den siden hete ommeg.php.

 

Søk litt rundt på forumet etter include, så finner du det nok ut...

 

Du bør egentlig ikke bruke include($_GET['side']) direkte, da denne kan missbrukes av andre.. Men slike ting kan du tenke litt over når du søker i forumet! :thumbup:

Lenke til kommentar

Legg inn denne teksten i <head> i index.php-fila di:

<?php
if ($_GET['side']) $side = $_GET['side'];
else  $side = '<navnet på siden som skal inkluderes til å begynne med, eller hvis ikke annet er spesifisert (uten .htm-endelse)>';

Det dette gjør er å spesifisere hvilken fil som inkluderes første gang siden åpnes. F.eks. setter du inn "Hoved" i klammene, så vil Hoved.htm inkluderes automatisk.
?>

Så setter du inn følgende der du vil ha filen inkludert:

<?php
include($side '.<filendelse (htm, inc, txt, php)>');
?>

Så linker du på følgende måte:

<a href="index.php?side=om_meg">

Du kan også sette flere variabler i en link, hvis du vil bytte ut flere diver ved hjelp av en link. Dette er nyttig dersom du f.eks. har undermenyer for hovedkategoriene dine, som du vil at skal inkluderes i en annen div. Da må du også selvfølgelig utvide php-koden din i head. Bare kopier det du har fra før, men bytte ut "side" med det du vil at den andre variabelen du bruker skal hete. Du må ha de to linjene i <head> for hver variabel. Da ser linkene dine slik ut:

<a href="index.php?side=om_meg&?meny=om_meg_meny">

Endret av atsjoo
Lenke til kommentar

<html>
<head>
<title>Nytt på nanbjor.tk</title>
<link rel="stylesheet" href="ver8.css" style="text/css">
<?php
if ($_GET['side']) $side = $_GET['side'];
else  $side = 'main';
?>
</head>

<body bgcolor="#ffffff">

<div id="text">
<h4>
<?php
include($side '.htm');
?>
</h4></div>

<div id="link_main">
<a href="" class="menu">Main</a></div>

</body>
</html>

 

Hva er da feil her? kommer opp som feil i browseren. Feil på linje 19 (include($side '.htm');)

 

Browseren sier:

 

Warning: main(htm): failed to open stream: No such file or directory in /home/n/na/nanbjor/public_html/Projects/index.php on line 19

 

Warning: main(): Failed opening '<main>htm' for inclusion (include_path='.:/usr/share/pear') in /home/n/na/nanbjor/public_html/Projects/index.php on line 19

Endret av w3p
Lenke til kommentar

Først: include($side '.htm'); bør nok være include "$side.htm";

 

Og så kan vi analysere oss frem til at "No such file or directory in xx" betyr at den aktuelle filen ikke eksisterer. For å unngå en slik feilmelding kan man bytte ut include "$side.htm"; med

 

$file = "$side.htm";
if (file_exists($file)) {
include $file;
} else {
echo "Siden eksisterer ikke";
}

Endret av fjartan
Lenke til kommentar

Opprett en konto eller logg inn for å kommentere

Du må være et medlem for å kunne skrive en kommentar

Opprett konto

Det er enkelt å melde seg inn for å starte en ny konto!

Start en konto

Logg inn

Har du allerede en konto? Logg inn her.

Logg inn nå
  • Hvem er aktive   0 medlemmer

    • Ingen innloggede medlemmer aktive
×
×
  • Opprett ny...