1 layout voor pagina II
Door Kasper Isgek, 11 jaar geleden, 2.443x bekeken
In navolging van een andere tutorial (no offense :) )hier een mijns inziens betere versie van het gebruik van een layout waarin aparte pagina's geinclude worden. Werkt met switch en include.
Gesponsorde koppelingen
Inhoudsopgave
96 reacties op '1 layout voor pagina II'
Gesponsorde koppelingen
volgens mij is default target _new. Als je hem helemaal in hetzelfde venster wilt doen (en dus niet alleen in de content) dan zou ik er -voor de zekerheid- target="_parent" bij zetten. Dat kan gewoon in html. Wil je hem in je content dan zou ik die links ook opnemen in een switchpagina in je content, evt met een andere variabele bv. ['id']
Kan iemand me helpen ?
Ik heb dit scriptje even bij mijn nieuwe sitegevoegd en op regel 285 staat :
<p><br>
Maar toch krijg ik deze fout bij lycos en niet bij men localhost :s
Parse error: parse error in /data/members/free/tripod/nl/v/i/n/vince_nys/htdocs/wr/index.php on line 258
http://members.lycos.nl/vince_nys/wr/
Ik heb dit scriptje even bij mijn nieuwe sitegevoegd en op regel 285 staat :
<p><br>
Code (php)
Maar toch krijg ik deze fout bij lycos en niet bij men localhost :s
Parse error: parse error in /data/members/free/tripod/nl/v/i/n/vince_nys/htdocs/wr/index.php on line 258
http://members.lycos.nl/vince_nys/wr/
waarom dit gebruiken als je ook onbepaalde pagina's kan gebruiken:
zo uit de losse pols, dus niet gelet op eventuele fouten, ga uit van niet ;)
Voordeel heirvan is dat je oneindig kan uitbreiden zonder de code van je index.php aan te passen, en tis korter.
Code (php)
1
2
3
4
5
6
7
8
2
3
4
5
6
7
8
<?php
$pagina = "paginas/" . strtolower($_GET['page']) . ".php"; //map van bestand
if !file_exists($pagina) {
$pagina = "paginas/home.php";
}
include($pagina)
?>
$pagina = "paginas/" . strtolower($_GET['page']) . ".php"; //map van bestand
if !file_exists($pagina) {
$pagina = "paginas/home.php";
}
include($pagina)
?>
zo uit de losse pols, dus niet gelet op eventuele fouten, ga uit van niet ;)
Voordeel heirvan is dat je oneindig kan uitbreiden zonder de code van je index.php aan te passen, en tis korter.
hmm...die break was ik vergeten. Is wel verstandig om die erbij te gebruiken, maar hoeft niet. Zal hem ff updaten.
Wietse, heb je misschien een voorbeeld van wat je bedoelt? Je tabelgrootte, is die in pixels of in procenten? Als het in pixels is zit daar waarschijnlijk de fout. Probeer dan eens de tabelgrootte op 80% te zetten oid.
Wietse, heb je misschien een voorbeeld van wat je bedoelt? Je tabelgrootte, is die in pixels of in procenten? Als het in pixels is zit daar waarschijnlijk de fout. Probeer dan eens de tabelgrootte op 80% te zetten oid.
Andres, het gebruik van onbepaalde pagina's is m.i. minder veilig dan het gebruiken van een switch. Daarnaast denk ik dat een switch beter is omdat het overzichtelijk blijft wat je in je menu gebruikt e.d. Maar aan jouw code zitten inderdaad andere voordelen zoals alleen het bijwerken van het menu :)
bedankt voor dit script ik ben me een beetje aan het verdiepen in de werking van het php gebeuren
heb nu een website met een met siteman cms maar als ik er dingen in wil voegen werkt het niet omdat ikhet script niet snap
maar zo wordt het me stukken duidelijker
bedankt ik begin het nu door te krijgen
heb nu een website met een met siteman cms maar als ik er dingen in wil voegen werkt het niet omdat ikhet script niet snap
maar zo wordt het me stukken duidelijker
bedankt ik begin het nu door te krijgen
ik heb een tabel met een menu en een ander tabel waar ander pagina's in worden geopend maar als in het nieuw document een link staat dan opent hij het andere document in een nieuw venster ik heb al geprobeerd met <base target="_parent"> in het nieuw document te zetten maar dat helpt niet wie kan mijn daar mee helpen
Om juiste te latte zien wat mijn probleem is zet ik hier een link naar mijn pagina
http://62.212.76.62/~gejogco/cgi-bin/voetbal/voetbal/index.php
Als je links in het menu op spelers drukt dan komt der rechts een nieuw pagina als je bovenaan op het pijltje naar rechts druk dan opent hij een nieuw venster en dat wil ik vermijden
alvast bedankt
Om juiste te latte zien wat mijn probleem is zet ik hier een link naar mijn pagina
http://62.212.76.62/~gejogco/cgi-bin/voetbal/voetbal/index.php
Als je links in het menu op spelers drukt dan komt der rechts een nieuw pagina als je bovenaan op het pijltje naar rechts druk dan opent hij een nieuw venster en dat wil ik vermijden
alvast bedankt
Dit is bijna wat ik zoek! ;-)
Ik plaats van het includen van externe pagina's, wil ik eigenlijk alleen 3 kleine tekstblokjes laten wisselen door te klikken op 3 menuitems.
Deze 3 tekstblokjes wil ik eigenlijk niet in een externe pagina zetten, dat is wat onzinnig als het om een paar regels tekst gaat.
Kan dat ook door een kleine aanpassing in het script?
Ik plaats van het includen van externe pagina's, wil ik eigenlijk alleen 3 kleine tekstblokjes laten wisselen door te klikken op 3 menuitems.
Deze 3 tekstblokjes wil ik eigenlijk niet in een externe pagina zetten, dat is wat onzinnig als het om een paar regels tekst gaat.
Kan dat ook door een kleine aanpassing in het script?
Zet de tekst in variabelen, en maak dan een switch bv.:
De links maak je dan door index.php?id=1 (of ?id=2 of ?id=3).
Btw: Ronald, waarom heb jij een ander lettertype dan alle andere reacties?
En excuses voor de late reactie :)
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
<?php
$string1 = "Hier tekst voor blok 1";
$string2 = "Hier tekst voor blok 2";
$string3 = "Hier - uiteraard - tekst voor blok 3";
$stringDefault = "Dit is de default tekst voor het blokje";
$id = htmlentities($_GET['id']);
switch($id) {
case '1':
print $string1;
break;
case '2':
print $string2;
break;
case '3':
print $string3;
break;
default:
print $stringDefault;
}
?>
$string1 = "Hier tekst voor blok 1";
$string2 = "Hier tekst voor blok 2";
$string3 = "Hier - uiteraard - tekst voor blok 3";
$stringDefault = "Dit is de default tekst voor het blokje";
$id = htmlentities($_GET['id']);
switch($id) {
case '1':
print $string1;
break;
case '2':
print $string2;
break;
case '3':
print $string3;
break;
default:
print $stringDefault;
}
?>
De links maak je dan door index.php?id=1 (of ?id=2 of ?id=3).
Btw: Ronald, waarom heb jij een ander lettertype dan alle andere reacties?
En excuses voor de late reactie :)
Dan kan je het bestand als default opgeven (als je de hele bestandsnaam include), of je controleert eerst of de pagina bestaat met file_exists. Dat laatste is overigens sowieso aan te raden.
Beste mensen.
Ik heb deze code bij mijn site gebruikt, ik maak gebruik van localhost met Apache en PHP voordat ik alles upload naar mijn site.
Voor mijn menu gebruik ik dit:
Maar ieder keer als ik op een link druk, laat die alleen maar de content.php zien, ook terwijl in de adresbalk index.php?pagina=Nieuws
Ik heb deze code bij mijn site gebruikt, ik maak gebruik van localhost met Apache en PHP voordat ik alles upload naar mijn site.
Code (php)
Voor mijn menu gebruik ik dit:
Code (php)
1
2
3
4
5
6
7
2
3
4
5
6
7
<?
<A HREF="index.php?pagina=Content" ONFOCUS="this.blur()">Home</A>
<BR>
<A HREF="index.php?pagina=Nieuws" ONFOCUS="this.blur()">Nieuws</A>
<BR>
<A HREF="index.php?pagina=Contact" ONFOCUS="this.blur()">Contact</A>
?>
<A HREF="index.php?pagina=Content" ONFOCUS="this.blur()">Home</A>
<BR>
<A HREF="index.php?pagina=Nieuws" ONFOCUS="this.blur()">Nieuws</A>
<BR>
<A HREF="index.php?pagina=Contact" ONFOCUS="this.blur()">Contact</A>
?>
Maar ieder keer als ik op een link druk, laat die alleen maar de content.php zien, ook terwijl in de adresbalk index.php?pagina=Nieuws
Toppio!!! Deze kon ik gebruiken!
Heb nu alleen nog een probleem met zoekfuncties op de site ... als zoekresultaat geeft ie de (geinclude) pagina natuurlijk. Bij het klikken op die link opent ie (logisch) uitsluitend die pagina.
Hoe krijg ik het voor elkaar dat de volledige layout geopend wordt ipv de afzonderlijke pagina?
Heb nu alleen nog een probleem met zoekfuncties op de site ... als zoekresultaat geeft ie de (geinclude) pagina natuurlijk. Bij het klikken op die link opent ie (logisch) uitsluitend die pagina.
Hoe krijg ik het voor elkaar dat de volledige layout geopend wordt ipv de afzonderlijke pagina?
PHP is niet zichtbaar voor de mensen die een site bezoeken. PHP wordt uitgevoerd op je server de uitvoer kan van alles zijn (HTML, plaatjes, teksten). Deze uitvoer zie je als bezoeker of als zoekmachine alleen maar.
Als het waar is wat je nu zegt dan kan half internet niet worden geindexeerd door een zoekmachine en dan had google geen 8 miljard paginas gehad.
@OldNewBe:
De code werkt niet is alleen om even te laten zien.
De default case krijg je dus alleen maar tezien als de cases erboven niet gelijk zijn aan pagina. Dus ook als pagina niet bestaat.
Als het waar is wat je nu zegt dan kan half internet niet worden geindexeerd door een zoekmachine en dan had google geen 8 miljard paginas gehad.
@OldNewBe:
Code (php)
De code werkt niet is alleen om even te laten zien.
De default case krijg je dus alleen maar tezien als de cases erboven niet gelijk zijn aan pagina. Dus ook als pagina niet bestaat.
Martijn,
Ik begrijp je antwoord niet of jij begrijpt mijn vraag niet.
Situatie is als volgt:
-ik heb een index.php pagina volgens het "switch"model gemaakt. Hier worden de diverse pagina geincluded.
-De links in menu.htm werken prima: (bv <a href index.php?page=/data/rooster.htm enz.) en proppen de boel netjes in index.php
-via zoekformulier (entropysearch) geeft ie keurig eventueel een link naar /data/rooster.htm weer als zoekresultaat
-bij klikken op de link bij het zoekresultaat krijg je dus de pagina /data/rooster.htm ipv index.php met /data/rooster.htm geincluded.
Vraag is dus...hoe krijg ik het laatste voor elkaar?
Ik heb al zitten "pielen" in het form om de basehref te wijzigen in: "http://sitename.nl/index.php?page=" maar dan krijg ik een extra "/ " in de link. Die extra "/"moet dus op een of ander manier weg of is er een andere truuk?
Hoe pak ik dit aan?
Ik begrijp je antwoord niet of jij begrijpt mijn vraag niet.
Situatie is als volgt:
-ik heb een index.php pagina volgens het "switch"model gemaakt. Hier worden de diverse pagina geincluded.
-De links in menu.htm werken prima: (bv <a href index.php?page=/data/rooster.htm enz.) en proppen de boel netjes in index.php
-via zoekformulier (entropysearch) geeft ie keurig eventueel een link naar /data/rooster.htm weer als zoekresultaat
-bij klikken op de link bij het zoekresultaat krijg je dus de pagina /data/rooster.htm ipv index.php met /data/rooster.htm geincluded.
Vraag is dus...hoe krijg ik het laatste voor elkaar?
Ik heb al zitten "pielen" in het form om de basehref te wijzigen in: "http://sitename.nl/index.php?page=" maar dan krijg ik een extra "/ " in de link. Die extra "/"moet dus op een of ander manier weg of is er een andere truuk?
Hoe pak ik dit aan?
Dit script is precies wat ik zoek.
Ik heb alleen nu de volgende uitdaging.
Ik kan mijn menu niet includen vanuit een andere map welk dieper in mijn structuur ligt
Als ik dus met pagina root/phorum/pagina.php de pagina root/menu.php wil incuden dan word deze niet gevonden. Hoe kan ik nu de juiste path aangeven?
Fout melding is: Warning: main() [function.main]: Unable to access //numanski/top.php Warning: main() [function.main]: Unable to access //numanski/top.php
Ik hoor graag of iemand er een oplossing voor heeft.
Thanks alvast.
Marco
Ik heb alleen nu de volgende uitdaging.
Ik kan mijn menu niet includen vanuit een andere map welk dieper in mijn structuur ligt
Als ik dus met pagina root/phorum/pagina.php de pagina root/menu.php wil incuden dan word deze niet gevonden. Hoe kan ik nu de juiste path aangeven?
Fout melding is: Warning: main() [function.main]: Unable to access //numanski/top.php Warning: main() [function.main]: Unable to access //numanski/top.php
Ik hoor graag of iemand er een oplossing voor heeft.
Thanks alvast.
Marco
Prima script, alleen ??n probleempje.
Ik heb een contact formulier gemaakt. en als ik het verzend, dan gaat 'ie prima naar index.php?page=contact-post en verstuurt 'ie het bericht. Maar daarna heb ik in contact-post.php het volgende staan:
header ("Location: index.php?page=contact-thanks");
om een bedankje te laten zien. Punt is, dat ie de index pagina toont, tot de switch, en vanaf daar niet meer. Weet iemand hoe ik dit kan oplossen?
BVD!
Ik heb een contact formulier gemaakt. en als ik het verzend, dan gaat 'ie prima naar index.php?page=contact-post en verstuurt 'ie het bericht. Maar daarna heb ik in contact-post.php het volgende staan:
header ("Location: index.php?page=contact-thanks");
om een bedankje te laten zien. Punt is, dat ie de index pagina toont, tot de switch, en vanaf daar niet meer. Weet iemand hoe ik dit kan oplossen?
BVD!
--- index.php ---
If ($p) {
include "$p.php";
}
resulteerd als: www.site.com/index.php?pagina1.php
Werkt net zo goed ofniet?
If ($p) {
include "$p.php";
}
resulteerd als: www.site.com/index.php?pagina1.php
Werkt net zo goed ofniet?
1) Volgens mij begrijp je me verkeerd: je kan het wel doen op de manier zoals jij zegt, maar dan is je site absoluut niet veilig. Je zal nochtans enkele controles moeten inbouwen.
2) Ik durf te betwijfelen of ik geen sites kan bouwen. Technisch gezien durf ik zelfs wel te beweren dat ik betere en veiligere websites maak dan jij, zeker ook gezien jouw taalgebruik en het feit dat je 5 posts terug in zijn geheel nog niet wist hoe een simpel switch-statement werkt, noch hoe je op een andere manier pagina's kan includen. In mijn ogen het m??st simpelst van PHP. Daar komt jouw luiheid nog eens bij om niet de moeite te nemen zelf dingen op te zoeken, maar meteen te vragen hoe iets moet (of de luiheid om het 'niet nodig te vinden' alle pagina's zelf in te vullen).
3) Welke grote sites? Als grote sites het zo doen zoals jij zegt dat ze het doen, dan is er toch iets goed fout!
4) Ik ben je maat niet.
2) Ik durf te betwijfelen of ik geen sites kan bouwen. Technisch gezien durf ik zelfs wel te beweren dat ik betere en veiligere websites maak dan jij, zeker ook gezien jouw taalgebruik en het feit dat je 5 posts terug in zijn geheel nog niet wist hoe een simpel switch-statement werkt, noch hoe je op een andere manier pagina's kan includen. In mijn ogen het m??st simpelst van PHP. Daar komt jouw luiheid nog eens bij om niet de moeite te nemen zelf dingen op te zoeken, maar meteen te vragen hoe iets moet (of de luiheid om het 'niet nodig te vinden' alle pagina's zelf in te vullen).
3) Welke grote sites? Als grote sites het zo doen zoals jij zegt dat ze het doen, dan is er toch iets goed fout!
4) Ik ben je maat niet.
Mijn luiheid is misschien het door jouw opgevatte onbereidheid om sullig / dom werk te gaan, maar dat je citeert dat mijn luiheid te maken heeft met een onwillig verlangen dingen uit te zoeken, dat is toch zeker beneden mijn niveau.
Miscchien vindt jij jouw bereidheid volstrekt onnutig, dom iemand's anders luiheid.
ThAlmighty
Miscchien vindt jij jouw bereidheid volstrekt onnutig, dom iemand's anders luiheid.
ThAlmighty
Quote:
Mijn luiheid is misschien het door jouw opgevatte onbereidheid om sullig / dom werk te gaan, maar dat je citeert dat mijn luiheid te maken heeft met een onwillig verlangen dingen uit te zoeken, dat is toch zeker beneden mijn niveau.
Miscchien vindt jij jouw bereidheid volstrekt onnutig, dom iemand's anders luiheid.
ThAlmighty
Miscchien vindt jij jouw bereidheid volstrekt onnutig, dom iemand's anders luiheid.
ThAlmighty
Misschien zou je jouw onwillig verlangen om dingen uit te zoeken eens moeten richten op de Nederlandse taal? Ik snap namelijk geen fuck van wat je nu allemaal zegt.
Kasper, het lukt me (nog) niet om werkend te krijgen. Ik krijg aldoor default-page te zien in plaats van index.php?page=about. Ik heb meermalen gecontroleerd of ik een fouttype maakte, maar nergens gevonden. Wat doe ik iets verkeerd?
Hier is de code:
<table width="90%" bgcolor="#fff">
<tr><td>
</td></tr>
<tr><td>
</td></tr></table>
Hier is de code:
<table width="90%" bgcolor="#fff">
<tr><td>
</td></tr>
<tr><td>
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
2
3
4
5
6
7
8
9
10
11
12
13
<?php
switch(strtolower($_GET['page']))
{
case "about"://Link "about"? variable $page=about.php $page="about.php";
break;
case "portfolio"://Link "portfolio"? variable $page=portfolio.htm; $page="portfolio.php";
break;
default: //Geen pagina gevonden? standaard tekst
$page="default.php";
break;
}
include($page);//include de variable $page
?>
switch(strtolower($_GET['page']))
{
case "about"://Link "about"? variable $page=about.php $page="about.php";
break;
case "portfolio"://Link "portfolio"? variable $page=portfolio.htm; $page="portfolio.php";
break;
default: //Geen pagina gevonden? standaard tekst
$page="default.php";
break;
}
include($page);//include de variable $page
?>
</td></tr></table>
Ja, werkt ook met een div. Ik gebruik het zelf ook op die manier.
Als je veel pagina's hebt, kan het anders. Zoals Andres hierboven in de reacties al zei:
Dat doet ongeveer hetzelfde, maar heeft wel meer beveiliging nodig. Je zou ook met een database kunnen werken, en de switch dynamisch invullen.
Edit:
In dat stukje code zaten wel wat fouten, die heb ik er even uitgehaald.
Als je veel pagina's hebt, kan het anders. Zoals Andres hierboven in de reacties al zei:
Code (php)
1
2
3
4
5
6
7
8
2
3
4
5
6
7
8
<?php
$pagina = 'content/' . strtolower($_GET['page']) . '.php'; //map van bestand
if (!file_exists($pagina)) {
$pagina = "content/home.php";
}
// include mag officieel geen haakjes hebben, enkel quotes :)
include ' . $pagina . '; // weet niet zeker of dit werkt, probeer anders "'" . $pagina . "'";
?>
$pagina = 'content/' . strtolower($_GET['page']) . '.php'; //map van bestand
if (!file_exists($pagina)) {
$pagina = "content/home.php";
}
// include mag officieel geen haakjes hebben, enkel quotes :)
include ' . $pagina . '; // weet niet zeker of dit werkt, probeer anders "'" . $pagina . "'";
?>
Dat doet ongeveer hetzelfde, maar heeft wel meer beveiliging nodig. Je zou ook met een database kunnen werken, en de switch dynamisch invullen.
Edit:
In dat stukje code zaten wel wat fouten, die heb ik er even uitgehaald.
Ik denk niet dat dit werkt:
include ' . $pagina . ';
Want, als een variabele binnen enkele quotes staat wordt hij niet omgezet naar zijn waarde. Dit is wel bij dubbele. Dus misschien zo wel, maar is beetje nutteloos :-\:
include '' . $pagina . '';
Waarom niet gewoon
include ($pagina);
Of als het zonder haakjes moet:
include $pagina;
include ' . $pagina . ';
Want, als een variabele binnen enkele quotes staat wordt hij niet omgezet naar zijn waarde. Dit is wel bij dubbele. Dus misschien zo wel, maar is beetje nutteloos :-\:
include '' . $pagina . '';
Waarom niet gewoon
include ($pagina);
Of als het zonder haakjes moet:
include $pagina;
Warning: main('test/home.php'): failed to open stream: No such file or directory in /home/site13/web/test/index.php on line 31
Warning: main(): Failed opening ''test/home.php'' for inclusion (include_path='.:/usr/share/php:/usr/share/pear:/usr/share/fpdf') in /home/site13/web/test/index.php on line 31
Krijg deze fout met je code wat moet ik hier mee? want het is gewoon in de map test op die server dus??
Warning: main(): Failed opening ''test/home.php'' for inclusion (include_path='.:/usr/share/php:/usr/share/pear:/usr/share/fpdf') in /home/site13/web/test/index.php on line 31
Krijg deze fout met je code wat moet ik hier mee? want het is gewoon in de map test op die server dus??
Bij werkt het EERSTE script perfect op 1 dingetje na als ik verwijs naar een mailform dan komt deze mooi in de index pagina (tabel) te staan echter als ik deze invul en verstuur gaat het script weer terug naar zijn home.php. eigenlijk moet hij naar de bedank pagina of error pagina gaan (Zit in het mailform). heeft daar iemand een oplossing voor ??
Ik weet niet helemaal wat je bedoelt, maar je zou het met een header() kunnen proberen. Heb je misschien een voorbeeld online staan; dat zegt zoveel meer dan woorden ;)
Hoi,
fantastisch script. Leer er veel van. Heb nu een basis pagina gemaakt met dit script erin: http://www.mennomail.nl/oefen/
Echter, als ik klik op de link 'Flupsie', dan opent deze netjes in de tabel, maar BOVEN de home.php tekst ervoor. Kijk eens op de site, dan zie je wat ik bedoel.
Hoe voorkom ik dit?
Dank alvast!
fantastisch script. Leer er veel van. Heb nu een basis pagina gemaakt met dit script erin: http://www.mennomail.nl/oefen/
Echter, als ik klik op de link 'Flupsie', dan opent deze netjes in de tabel, maar BOVEN de home.php tekst ervoor. Kijk eens op de site, dan zie je wat ik bedoel.
Hoe voorkom ik dit?
Dank alvast!
Als je de tekst "Dit is de hoofdpagina (home.php)." weg wilt halen, dan moet je die als default waarde nemen. Eventueel kan je het ook controleren of $_GET['page'] een waarde heeft met isset(). Heeft het geen waarde, dan toen je een standaardtekst (nu dus "Dit is de hoofdpagina (home.php).") en als het wel een waarde heeft toen je de tekst die bij die waarde hoort.
Hoe ziet je stukje code er momenteel uit?
Hoe ziet je stukje code er momenteel uit?
Hey Kasper,
Ik heb nu alleen de volgende code:
De default link heb ik weggehaald, want ik kreeg een error. Maar die is dus wel essentieel?
Ik heb nu alleen de volgende code:
Code (php)
1
2
3
4
5
6
7
8
2
3
4
5
6
7
8
<?php
switch (strtolower($_GET['page']))
{
case "flupsie":
include("flupsie.php");
break;
}
?>
switch (strtolower($_GET['page']))
{
case "flupsie":
include("flupsie.php");
break;
}
?>
De default link heb ik weggehaald, want ik kreeg een error. Maar die is dus wel essentieel?
Niet essentieel, maar ik vind het zelf wel makkelijk omdat je foutmeldingen voorkomt als een pagina niet gevonden wordt bijvoorbeeld. Maar die fout komt omdat eerst het switch-statement wordt uitgevoerd en daarna ??k nog include('home.php');.
Wat je dan kan doen is:
Of, mocht je het echt op jouw manier willen:
Maar waarom je die laatste manier zou willen weet ik ook niet, die is namelijk wel foutgevoeliger dan een standaardwaarde (default) gebruiken in je switch. Stel dat je ?page=nietbestaandepagina aanroept, dan wordt t?ch de switch uitgevoerd. Bij een standaardwaarde ?n je switch heb je dat probleem in principe niet.
Wat je dan kan doen is:
Code (php)
Of, mocht je het echt op jouw manier willen:
Code (php)
Maar waarom je die laatste manier zou willen weet ik ook niet, die is namelijk wel foutgevoeliger dan een standaardwaarde (default) gebruiken in je switch. Stel dat je ?page=nietbestaandepagina aanroept, dan wordt t?ch de switch uitgevoerd. Bij een standaardwaarde ?n je switch heb je dat probleem in principe niet.
Ja Pepe, die staat hierboven in de comments:
Code (php)
1
2
3
4
5
6
7
8
9
2
3
4
5
6
7
8
9
<?php
// heel simpel en iets gewijzigd
$pagina = "paginas/" . strtolower($_GET['page']) . ".php"; //map van bestand
if (!file_exists($pagina)) {
$pagina = "paginas/home.php";
}
include $pagina;
?>
// heel simpel en iets gewijzigd
$pagina = "paginas/" . strtolower($_GET['page']) . ".php"; //map van bestand
if (!file_exists($pagina)) {
$pagina = "paginas/home.php";
}
include $pagina;
?>
Alleen is die niet zo veilig, denk aan bijvoorbeeld ?page=../../db_vars
Na zal het lang niet altijd echt fouten geven maar toch.
Zo mogen het alleen maar letters zijn in de $_GET['page'];
Na zal het lang niet altijd echt fouten geven maar toch.
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
<?php
// heel simpel en iets gewijzigd
$pagina = strtolower($_GET['page']) ; //map van bestand
if(!preg_match('/^[a-z]+$/',$pagina)){ //of '/^[a-z0-9]+$/' als cijfers ook mogen
$pagina = '';
}
$pagina = "paginas/".$pagina. ".php"; //map van bestand
if (!file_exists($pagina)) {
$pagina = "paginas/home.php";
}
include $pagina;
?>
// heel simpel en iets gewijzigd
$pagina = strtolower($_GET['page']) ; //map van bestand
if(!preg_match('/^[a-z]+$/',$pagina)){ //of '/^[a-z0-9]+$/' als cijfers ook mogen
$pagina = '';
}
$pagina = "paginas/".$pagina. ".php"; //map van bestand
if (!file_exists($pagina)) {
$pagina = "paginas/home.php";
}
include $pagina;
?>
Zo mogen het alleen maar letters zijn in de $_GET['page'];
ik wil graag dat de gehele pagina zich reload en niet een klein stukje
http://flexgaming.bvandewater.com/test/index.php
dan wil ik het eerste scherm weg hebben dus dat de pagina gewoon naar home gaat en niet die achterlijk intro blijft zien is hier een code voor zonder te veel gelul erom heen
Dank je
http://flexgaming.bvandewater.com/test/index.php
dan wil ik het eerste scherm weg hebben dus dat de pagina gewoon naar home gaat en niet die achterlijk intro blijft zien is hier een code voor zonder te veel gelul erom heen
Dank je
men zegt altijd dat je niks meer hoeft te verwachten van een script dat al 5 jaar oud is ! maar ik vraag het toch maar ff.
maar eerste ff bedankt voor dit script het werkt prima en meteen zonder dat ik er ook maar iets aan heb hoeven te veranderen, behalve dan dat ik er wat meer pagina's heb bij gezet. nu is mijn vraag het volgende ik wou de titles van de pagina's ook mee geven met de linken had het volgende geprobeerd:
En in de pagina zelf maar dat werkt blijkbaar niet, ja die eerste pagina wel omdat die in de default staat. maar als ik op de link klik blijft doet die niks, moet ik in het menu iets veranderen of is die komma in GET['page, title'])) niet goed of gaat het helemaal niet op die mannier?
<body>
<h1></h1>
enz, enz
maar eerste ff bedankt voor dit script het werkt prima en meteen zonder dat ik er ook maar iets aan heb hoeven te veranderen, behalve dan dat ik er wat meer pagina's heb bij gezet. nu is mijn vraag het volgende ik wou de titles van de pagina's ook mee geven met de linken had het volgende geprobeerd:
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
switch (strtolower($_GET['page, title']))
{
case "boeren":
$page ='boeren.php';
$title ='Boeren buffetten';
break;
case "kouden":
$page ='kouden.php';
$title ='Kouden buffetten';
break;
default: //Geen pagina gevonden? standaard tekst
$page="index.php";
$title="Buffetten";
break;
{
case "boeren":
$page ='boeren.php';
$title ='Boeren buffetten';
break;
case "kouden":
$page ='kouden.php';
$title ='Kouden buffetten';
break;
default: //Geen pagina gevonden? standaard tekst
$page="index.php";
$title="Buffetten";
break;
En in de pagina zelf maar dat werkt blijkbaar niet, ja die eerste pagina wel omdat die in de default staat. maar als ik op de link klik blijft doet die niks, moet ik in het menu iets veranderen of is die komma in GET['page, title'])) niet goed of gaat het helemaal niet op die mannier?
<body>
<h1></h1>
enz, enz
Dan doe je het volgende:
Bijvoorbeeld :)
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
<?php
switch (strtolower($_GET['page']))
{
case "tutorial":
$title = "tutorial";
$page = "tutorial.php";
break;
case "scripts":
$title = "scripts";
$page = "scripts.php";
break;
default:
$title = "default";
$page = "default.php";
break;
}
echo '<html>';
echo '<head>';
echo '<title>'.$title.'</title>';
echo '</head>';
echo '<body>';
include($page);
echo '</body>';
echo '</html>';
?>
switch (strtolower($_GET['page']))
{
case "tutorial":
$title = "tutorial";
$page = "tutorial.php";
break;
case "scripts":
$title = "scripts";
$page = "scripts.php";
break;
default:
$title = "default";
$page = "default.php";
break;
}
echo '<html>';
echo '<head>';
echo '<title>'.$title.'</title>';
echo '</head>';
echo '<body>';
include($page);
echo '</body>';
echo '</html>';
?>
Bijvoorbeeld :)
Om te reageren heb je een account nodig en je moet ingelogd zijn.
Inhoudsopgave
Labels
- Geen tags toegevoegd.


PHP hulp
0 seconden vanaf nu