Avatar billede franklinpaper Nybegynder
04. juli 2009 - 23:45 Der er 7 kommentarer og
1 løsning

PHP med include

Hej

I lang tid har jeg ikke udviklet websites. Sidst, jeg gjorde det, kendte jeg ikke til problemet med frames (søgemaskineoptimering, titler, direkte links osv).

I dag kender jeg til problemet, men jeg er ikke i stand til på andre måder at lave websites med indhold, som skal være en fast del af alle sider (f.eks. en menu øverst).
Jeg kan  vælge at kopiere "rammen" med menu mm. for hver gang, der skal være en side med nyt indhold. Det vil få den konsekvens, at jeg skal ændre alle sider, hvis jeg vil ændre f.eks. menuen.

Den bedste løsning vil være at have en <include>-funktion i php.
Jeg har dog meget lidt erfaring emd PHP og ingen erfaring med ASP.

Alt indhold på siden skal være samlet i en "firkant" på midten. Logoet skal være øverst (inden for "firkanten"). Menuen skal være til venstre (inden for "firkanten"). Indhold under logo og ud for menu (inden for "firkanten").

Hvor omfattende vil det være at lave en komplet side som beskrevet ovenfor i php?
- Så omfattende, at det ikke er realistisk, at jeg inden for meget kort tid kan lære det?
- Findes der gode skabeloner, eller kan du lave en?
- Er der stadigvæk mulighed for, at jeg kan have scroll-funktion i content-delen?
- Er der meget udover include-delen, jeg skal lære om php? Kan jeg ellers blot gøre, som jeg plejer med HTML?


På forhånd mange tak.
Avatar billede loevgaard Praktikant
05. juli 2009 - 03:17 #1
Prøv at lav følgende setup på en server, der understøtter PHP, så er jeg sikker på, at du kan regne den ud:

---------------------------
top.php
<h1>Top</h1>
---------------------------
bottom.php
<h1>Top</h1>
---------------------------
index.php
<?php
require_once('top.php');
?>

Indhold

<?php
require_once('bottom.php');
?>
Avatar billede franklinpaper Nybegynder
05. juli 2009 - 22:27 #2
Det virker!
Hvordan skal opstillingen se ud, for at der kan være en menu ud for området med indhold?
Med andre ord: Hvordan laver jeg en opstilling som beskrevet i mit indlæg?
Avatar billede franklinpaper Nybegynder
05. juli 2009 - 22:50 #3
Jeg har et forslag til opstillingen. Vil dette fungere?:

Jeg placerer alt indhold i midten af siden. Jeg opretter usynlige tabeller (se billede nedenfor).
I tabellen med menuen anbringer jeg denne kode:
<?php
require_once('menu.php');
?>

I tabellen med logoet anbringer jeg denne kode:
<?php
require_once('logo.php');
?>

http://img9.imageshack.us/img9/2520/tabeller.gif

Kan det lade sig gøre?
Vil længden af tabellen af menuen og logoet selv tilpasse sig, når indholdet kommer fra andre sider (menu.php og logo.php)?

På forhånd mange tak.
Avatar billede loevgaard Praktikant
06. juli 2009 - 02:30 #4
Altså det man normalt gør er at man har en top.php og en bottom.php, som indeholder alt det html, som normalt indkranser indholdet.

F.eks. så har jeg lavet følgende side: www.markiseeksperten.dk. Der er toppen og menuen til venstre i htmlTop.php (som jeg kalder den), mens bunden og grafikken i bunden er i htmlBottom.php. Selve index.php ser sådan her ud:

<?php
require_once('htmlTop.php');
?>

<h1>Markiser hos Markiseeksperten</h1>
...
...

<?php
require_once('htmlBottom.php');
?>
Avatar billede franklinpaper Nybegynder
06. juli 2009 - 20:14 #5
Jeg forstår ikke, hvordan du kan have navigation og logo i samme fil. Derfor har jeg istedet lavet en opdeling med tabeller, som fungerer.
Dog bruger jeg "require" to gange på siden, men har kun held med den ene. Den ene placerer rigtigt indhold i venstre side (row). Den anden skulle placere indhold i højre side (row), men sætter det øverst uden for rowen!
Hvorfor?

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<link rel="stylesheet" href="Side med tabel.css" type="text/css">
<title>Side med tabel</title>
</head>

<body>
<table>
<tr>
<td class="Left">
<?php
require_once('left.php');
?>
</td>
<td class="Middle">
Her er alt indholdet.
</td>
<?php
require_once('right.php');
?>
</td>
</tr>
</table>
</body>
</html>
Avatar billede franklinpaper Nybegynder
06. juli 2009 - 20:26 #6
Tak for hjælpen. Har lavet enkelt ændirng i ovenstende kode.
Problemet er løst, hvis denne kode er anvendelig (ser rigtigt ud i min browser - det er jo ikke altid nok)

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<link rel="stylesheet" href="Side med tabel.css" type="text/css">
<title>Side med tabel</title>
</head>

<body>
<table>
<tr>
<td class="Left">
<?php
require_once('left.php');
?>
</td>
<td class="Middle">
Her er alt indholdet.
</td>
<td class ="Right">
<?php
require_once('right.php');
?>
</td>
</tr>
</table>
</body>
</html>
Avatar billede franklinpaper Nybegynder
13. juli 2009 - 14:40 #7
Jeg godkender dit svar. Du skal bare se i koden, om jeg har forstået det rigtigt.
Avatar billede loevgaard Praktikant
13. juli 2009 - 14:50 #8
Sådan som jeg ser din kode, så ser den rigtig ud :)
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester