Avatar billede ulle55 Nybegynder
31. marts 2003 - 13:23 Der er 32 kommentarer og
1 løsning

Hvad er det letteste

Hvordan kan man lettest lave en side bygget op af tabeller, hvor man kun ændre indholdet af den ene celle. Jeg har prøvet med "iframe", men det virker ikke ordentligt. Jeg ved at man i asp kan lave et link der hedder noget med f.eks "default.asp?mode=faq" og hvor man så reloader siden, og den midderste celle har nu includeret siden "faq.asp".

Kan man ikke det i php? og hvordan?


Jeg kan lidt php men ikke 100%, så skær det ud i pap
Avatar billede Brian Moos Lindberg Praktikant
31. marts 2003 - 13:27 #1
- er alt det andet på siden det samme hver gang ? så skal du bare kopiere de dele ind i nogle andre filer og så bruge require ("fil.inc.php");
/Brian
Avatar billede googolplex Novice
31. marts 2003 - 13:31 #2
Du kan eventuelt kigge på http://www.html.dk/tutorials/ssi/ eller http://www.webcafe.dk/artikler/php/skabeloner/ for at se hvordan man 'isolerer' kode, så du kun behøver ændre det et sted.
Avatar billede ulle55 Nybegynder
31. marts 2003 - 13:31 #3
Ja det andet er det samme altid. Kan du ikke uddybe det lidt.
Avatar billede Brian Moos Lindberg Praktikant
31. marts 2003 - 13:34 #4
du kopierer alt det kode der står før det der skal ændres til en fil (f.eks header.inc.php) og alt den kode der står efter det der skal ændres til en anden fil (f.eks. footer.inc.php)
- så laver du bare din faq.php således:

<?php
require ("header.inc.php");
?>

her er den text der kan ændres...

<?php
require ("footer.inc.php");
?>

-----
så enkelt er det...
Avatar billede Brian Moos Lindberg Praktikant
31. marts 2003 - 13:34 #5
oopps... skulle have være et svar...
/Brian.
Avatar billede Brian Moos Lindberg Praktikant
31. marts 2003 - 13:36 #6
- men googolplex's svar er sådan set også udmærket... ;-)
Avatar billede Brian Moos Lindberg Praktikant
31. marts 2003 - 13:37 #7
- dog synes jeg at include-filer skal ende på .php så man ikke uden videre kan læse kildekoden... - men det er vel en smagssag...
Avatar billede ohmish Nybegynder
31. marts 2003 - 13:37 #8
jeg har gjort som du selv siger (mere eller mindre):

jeg har en hoved side med et fast udseende.
dvs. en tabel med div. ting og sager til højre, menu til venstre m.m.
i midten af tabellen har jeg så en tom celle med indholdet:
<?php if ($_GET['side']) { include ($_GET['side']); } else { include ("hjem.php"); } ?>

i menuen kalder du så hver link for dinside.php?side=sidenavn.php

Det er ret overskueligt.
Avatar billede ulle55 Nybegynder
31. marts 2003 - 13:38 #9
men kan det også lade sig gøre når jeg bruger tabeller?, det vil kunne lykkes hvis jeg brugte "frames". Desuden kræver det vel at jeg laver en grund skabalon først
Avatar billede Brian Moos Lindberg Praktikant
31. marts 2003 - 13:38 #10
ja, - til begge spørgsmål!
Avatar billede Brian Moos Lindberg Praktikant
31. marts 2003 - 13:39 #11
- men skabelonen kan du jo altid ændre ved at rette i header.inc.php og footer.inc.php...
Avatar billede Brian Moos Lindberg Praktikant
31. marts 2003 - 13:40 #12
ohmish - også et udmærket bud... Faktisk det bedste indtil videre vil jeg mene...
Avatar billede ohmish Nybegynder
31. marts 2003 - 13:43 #13
det er vel nemmest på min måde, hvor hovedsiden har et fast udseende. på den måde behøver dine include filer kun indeholde tekst/billeder og intet andet. de behøver ikke engang være php.

f.eks <?php if ($_GET['side']) { include ($_GET['side']); } else { include ("hjem.html"); } ?>

hjem.html kunne så indeholde så lidt som:
test hej test hest

alle uundværlig kode står jo i hovedsiden.
Avatar billede Brian Moos Lindberg Praktikant
31. marts 2003 - 13:51 #14
man kunne jo også sætte den til selv at tilføje .php..
Avatar billede ohmish Nybegynder
31. marts 2003 - 13:53 #15
ulle55 hva si'r du til det? bare spørg løs
Avatar billede Brian Moos Lindberg Praktikant
31. marts 2003 - 13:53 #16
<?php if ($_GET['side']) { include ($_GET['side'] . ".php"); } else { include ("hjem.html"); } ?>

- og så kalde den med index.php?side=blah
for at få den til at indlæse blah.php
Avatar billede ohmish Nybegynder
31. marts 2003 - 13:57 #17
lindberg> ja men hvorfor? hehe
Avatar billede Brian Moos Lindberg Praktikant
31. marts 2003 - 13:58 #18
kortere url at huske på...
Avatar billede raffar Juniormester
31. marts 2003 - 13:59 #19
Avatar billede ulle55 Nybegynder
31. marts 2003 - 14:08 #20
Vil det være smart at den selv sætter .php på? kan man så ikke kunne sen koden hvis man skriver eks www.domain.dk/blah
Avatar billede Brian Moos Lindberg Praktikant
31. marts 2003 - 14:12 #21
det kommer lidt an på serverens opsætning...
Avatar billede ohmish Nybegynder
31. marts 2003 - 14:15 #22
der er da ingen grund til at undlade .php på nogen måde.
Avatar billede Brian Moos Lindberg Praktikant
31. marts 2003 - 14:18 #23
som jeg sagde... kortere urls...
jeg hader at skulle skrive en eller anden lang url ned til folket hvis den kan gøres kortere...
Avatar billede ohmish Nybegynder
31. marts 2003 - 14:24 #24
ok. men.. til ulle55> filer på serveren bør have fil-endelsen med.
med lindbergs autoendelsestrick ville det os' virke fint.

hvis du vil undgå at folk går direkte ind på f.eks links.php udenom hovedsiden, ka du gøre flg.:

i hovedside.php skriver du øverst:
<?php $status="ok"; ?>

i undersiderne skriver du øverst:
<?php if (!$status) { header ("Location: hovedside.php?side=$PHP_SELF"); }
Avatar billede ulle55 Nybegynder
31. marts 2003 - 14:33 #25
ohmish > Det virker fint, men jeg har et login system til at køre på siden, man kan sagtens loggen ind, men den tekst jeg skal sætte på hver side der skal være beskyttet, har ingen effekt
Avatar billede ohmish Nybegynder
31. marts 2003 - 14:55 #26
hvordan ser den tekstbid ud?
Avatar billede ulle55 Nybegynder
31. marts 2003 - 15:06 #27
<?php
session_start();
if(!$_SESSION['loget_in'] == 1) {//Hvis brugeren ikke er logget in
header("Location: http://www.domain.dk/login.html");//Sender brugeren videre
exit;//Sørger for at resten af koden, ikke bliver udført
}

//Al din kode
?>
Avatar billede ohmish Nybegynder
31. marts 2003 - 15:27 #28
if(!$_SESSION['loget_in'] == 1)
burde den ik hedde if($_SESSION['loget_in'] != 1
eller måske gir det samme resultat.. kender ikke den variant.

anyway... headers fungerer ikke når du har ouput før headeren. Dvs. der må ikke sendes noget til browseren før headeren.

Du må enten bruge javascript redirect, eller sætte din loginkode op i toppen af selve hovedsiden + evt. lidt ekstrakode på undersiderne.
Avatar billede ohmish Nybegynder
31. marts 2003 - 15:30 #29
alternativ til din kode på undersiden:

<?php
session_start();
if($_SESSION['loget_in'] != 1) { //Hvis brugeren ikke er logget ind
?> <body onload="window.location='login.html';"></body> <?php //Sender brugeren videre

exit; //Sørger for at resten af koden, ikke bliver udført
}
?>
Avatar billede ohmish Nybegynder
31. marts 2003 - 15:32 #30
ellers må du jo bare skrive at vedkommende ikke er logget ind. og så evt. inkludere logind siden, efterfulgt af din exit;
Avatar billede the_wanderer Nybegynder
31. marts 2003 - 15:33 #31
du kan gøre det sådan her...

<?php if ($mode == "") {include('forside.php');} else {include('$mode.php');}; ?> //eks. hvis mode er faq henter den faq.php. hvis mode ikke er noget henter den forside.php
Avatar billede ulle55 Nybegynder
31. marts 2003 - 15:34 #32
tak det virker perfekt
Avatar billede ohmish Nybegynder
31. marts 2003 - 15:39 #33
ålrajt

the wanderer, du havde vist ikke læst de andre svar/kommentarer.
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
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

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