1 layout voor pagina II

Door Winston Smith, 19 jaar geleden, 8.168x 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

  1. test
  2. test
  3. Let's switch again!

 

Er zijn 96 reacties op '1 layout voor pagina ii'

PHP hulp
PHP hulp
0 seconden vanaf nu
 

Gesponsorde koppelingen
Marien xD
Marien xD
19 jaar geleden
 
0 +1 -0 -1
Kga em gelijk gebruiken. Hier was ik naar op zoek!


19 jaar geleden
 
0 +1 -0 -1
iig ??n iemand die er iets aan heeft gehad :)
Laat het ff weten als het gelukt of niet gelukt is, misschien heb ik niet precies de goede code gebruikt omdat ik die tutorial vrij snel geschreven heb ;)
Succes
Marien xD
Marien xD
19 jaar geleden
 
0 +1 -0 -1
Een foutje...
Bij het voorbeeld staat dit:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
<?
case "tutorial":   //Link "tutorial"? variabele $page = tutorial.php $page="tutorial.php";

//moet dit zijn:


case "tutorial":   //Link "tutorial"? variabele $page = tutorial.php
$page="tutorial.php";
?>
Marien xD
Marien xD
19 jaar geleden
 
0 +1 -0 -1
maar ik hoop dat de meeste dat wel snappen

Maar verder leuk gedaan


19 jaar geleden
 
0 +1 -0 -1
Nou twee mensen die het scriptje wel diggde==ok.

Maar als ik nu in het menu een link volg; komt ie idd in het ander venster, als ik in het "content" venster nou ook een link krijg; dan opend deze in een eigen scherm, en ik heb daar GEEN target _blank staan, default is toch self?


19 jaar geleden
 
0 +1 -0 -1
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']


19 jaar geleden
 
0 +1 -0 -1
Kan iemand me helpen ?
Ik heb dit scriptje even bij mijn nieuwe sitegevoegd en op regel 285 staat :
<p><br>
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
<?php // dit is regel 285
switch (strtolower($_GET['page']))  
{  
case
"profiel":
  $page="Profiel.php";
  break;
case
"home":
  $page="Home.php";
  break;
default:

  $page="Home.php";
  break;
}

include ($page);
?>

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/


19 jaar geleden
 
0 +1 -0 -1
Ik bedoel natuurlijk : Ik heb dit scriptje even bij mijn nieuwe sitegevoegd en op regel 258.
Sorry,
Wie het weet stuur even een mailtje ,

Thx,


19 jaar geleden
 
0 +1 -0 -1
Reeds via mail beantwoord:
Oudere php op lycos dan op je localhost. De superglobal $_GET ff vervangen door $HTTP_GET_VARS en je probleem is waarschijnlijk verholpen.

Succes ;)


19 jaar geleden
 
0 +1 -0 -1
Misschien moet je net als bij html achter die tag waar je de link hebt staan "target="inhoud" ofzo zetten?

MVG
Metalfrost


19 jaar geleden
 
0 +1 -0 -1
waarom dit gebruiken als je ook onbepaalde pagina's kan gebruiken:

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
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)

?>


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.


19 jaar geleden
 
0 +1 -0 -1
Hallo, het script werkt perfect. Alleen ik heb een probleempje. Als ik een pagina oproep die tabellen bevat, dan worden die tabellen opgenomen in de index pagina en daardoor klopt mijn hele pagina niet meer. Heeft iemand toevallig hier een oplossing voor? mijn dank is groot.


19 jaar geleden
 
0 +1 -0 -1
Geweldig! Dit zocht ik nu net. Voor beginners (als ik) Werkt als een zonnetje In de 2e optie waar kasper het over heeft moet je de default pagina nog toevoegen. Na de laatste break; komt dus nog:

default:
include("default.php");
break;

Bedankt Kasper!
Winston Smith
Winston Smith
19 jaar geleden
 
0 +1 -0 -1
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.
Winston Smith
Winston Smith
19 jaar geleden
 
0 +1 -0 -1
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 :)


19 jaar geleden
 
0 +1 -0 -1
COOL DAT SCRIPT IS ECHT RETEGAAF MAN!!! THX!!!! Het probleem = opgelost :D Ik had achter case alles met hoofdletter gedaan. En de links hadden geen hoofdletter dus CPU d8 dat de pagina niet bestond (Best dom van mij he?). Maar hij doet het!!!!


19 jaar geleden
 
0 +1 -0 -1
Ik snap nog ff iets niet. Mijn default pagina doet het wel. Maar als ik op een link in het menu klik dan doet hij nix :s Ik denk dat dat foutje van marien erin zit. Maar ik snap niet wat dat was. Het was toch allebei goed? weet iemand misschien wat ik fout heb gedaan?
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
<?php
switch (strtolower($_GET['page']))  
{  
case
"Cheats":
  include("Cheats.php");
  break;
case
"Forum":
  include("forum.php");
  break;
case
"Links":
  include("links.php");
  break;
default:

  include("home.php");
  break;
}

?>


19 jaar geleden
 
0 +1 -0 -1
Hey man, dis echt een vet script dank-je-wel... ik ga hem nu gebruiken bij al mijn sites denk ik...


19 jaar geleden
 
0 +1 -0 -1
dankje ik ben echt een newbie in php en heb me hier kapot op zitten zoeken thx :)


18 jaar geleden
 
0 +1 -0 -1
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


18 jaar geleden
 
0 +1 -0 -1
Handig scripje (Y) gj
Beuk
Beuk
18 jaar geleden
 
0 +1 -0 -1
ik gebruik een iframe met een soortgelijk script, kan iemand mij vertellen wat de voordelen en nadelen van een table cel zijn in tegenoverstelling tot een iframe?
Bas Kreleger
Bas Kreleger
18 jaar geleden
 
0 +1 -0 -1
zoek eens op google: "Why frames suck"


18 jaar geleden
 
0 +1 -0 -1
Eej man bedankt!!

Ik zocht dit al een tijdje :)


18 jaar geleden
 
0 +1 -0 -1
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


18 jaar geleden
 
0 +1 -0 -1
Ik heb nog een probleempje met da scriptje
alles werkt wel perfect als ik op een link klik maar het probleem is dat als ik de eerste keer de pagina laad dan krijg ik deze fout

Notice: Undefined index: pagina in C:\Inetpub\wwwroot\web-events\home.php on line 106
Winston Smith
Winston Smith
18 jaar geleden
 
0 +1 -0 -1
@Jan: volgens mij is jouw probleem (na meer dan 2 maanden :$) opgelost.
@Nick: dat krijg je doordat de variabele pagina bij het openen van de pagina nog niet wordt gebruikt. Is voor de rest niet erg. Wil je de error niet hebben, dan kan je aan het begin van de code zetten:

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
<?php
if(!isset($page)) {     // evt. $_GET['page']
     $page = "home"; // indien deze pagina bestaat, iig beginpagina zetten
}

?>


18 jaar geleden
 
0 +1 -0 -1
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?
Winston Smith
Winston Smith
18 jaar geleden
 
0 +1 -0 -1
Zet de tekst in variabelen, en maak dan een switch bv.:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
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;
}

?>


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 :)


18 jaar geleden
 
0 +1 -0 -1
ik heb de tutorial helemaal opgevolgd maar men menu komt niet zichtbaar te staan :(


18 jaar geleden
 
0 +1 -0 -1
ik heb de tutorial helemaal opgevolgd maar men menu komt niet zichtbaar te staan :(


18 jaar geleden
 
0 +1 -0 -1
Het lukt bij mij niet... Moet ik ook een scripts.php en een tutorials.php maken?


18 jaar geleden
 
0 +1 -0 -1
Hetzelfde als Raikkonen....


18 jaar geleden
 
0 +1 -0 -1
werkt perfect!
2e code dan, 1e deed het niet
Danny
Danny
18 jaar geleden
 
0 +1 -0 -1
Kan dit ook met submappen, en zo ja hoe werkt dat dan?
Winston Smith
Winston Smith
18 jaar geleden
 
0 +1 -0 -1
Hoe bedoel je? Een submap includen kan niet. Dan moet je eerst alle bestanden uit een map uitlezen en die includen.
Chriz
Chriz
18 jaar geleden
 
0 +1 -0 -1
Hoe zorg je ervoor dat als je een onbestaande page invult, dat ie dan een soort 404 geeft...???
Winston Smith
Winston Smith
18 jaar geleden
 
0 +1 -0 -1
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.


18 jaar geleden
 
0 +1 -0 -1
Ik wil graag een pagina uit een andere map openen, moet dat zo? <A href="index?page=forum/index.php"> Bij mij doetie het dan niet, ik kom weer op de default pagina. Wie kan mij helpen


18 jaar geleden
 
0 +1 -0 -1
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.

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
<?
         SWITCH (strtolower($_GET['pagina']))
          {
           DEFAULT:

           INCLUDE("$map/content.php");
           BREAK;
           CASE
"Nieuws":
           INCLUDE("$map/Nieuws.php");
           BREAK;
           CASE
"Contact":
           INCLUDE("$map/Contact.php");
           BREAK;
          }
         ;

        ?>


Voor mijn menu gebruik ik dit:

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
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>
        ?>


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
Martijn B
Martijn B
18 jaar geleden
 
0 +1 -0 -1
DEFAULT:

moet worden

CASE "content":

Waarom begint iedere case met een hoofdletter je veranderd pagina immers in een string zonder hoofdletters.


18 jaar geleden
 
0 +1 -0 -1
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?


18 jaar geleden
 
0 +1 -0 -1
Vraagje

worden ge-include pagina's wel geindexeerd door de zoekmachines?

iemand hier ervaring mee?
Martijn B
Martijn B
18 jaar geleden
 
0 +1 -0 -1
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:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
<?php
switch( pagina )
{
  case ...:

  break;
  default:

   // Hier zit de volledige (standaard) layout
}
?>

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.


18 jaar geleden
 
0 +1 -0 -1
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?


18 jaar geleden
 
0 +1 -0 -1
Bij mij doet ie et niet ik krijg dit in beeld als ik main.php open:

Parse error: parse error, unexpected '<' in /vhost/usr/LKueter/main.php on line 23

zo staat mijn script in mn layout (met dreamweaver mx):

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
14
<?php
switch (strtolower($_GET['page']))  
{  
case
"Home":
  include("home.php");
  break;
case
"artists":
  include("artists.php");
  break;
case
"agenda":
  include("Agenda.php");
  break;
}

?>


pls help...


18 jaar geleden
 
0 +1 -0 -1
heb et waarschijnlijk la mn PHP neit geactiveert op mn host oops..


18 jaar geleden
 
0 +1 -0 -1
snap er geen zka meer van :S help me :P


18 jaar geleden
 
0 +1 -0 -1
Ik snap niet ik heb alles goed gedaan alls gecontroleerd maar toch krijg ik dit te zien alsik "main.php" open:

Parse error: parse error, unexpected '<' in /vhost/usr/LKueter/main.php on line 23

wie kan mij helpen?
Jelmer -
Jelmer -
18 jaar geleden
 
0 +1 -0 -1
Open een topic in het forum, en zet daar je hele main.php en de foutmelding (en waar lijn 23 is) in en ik denk dat je meer aandacht krijgt.


18 jaar geleden
 
0 +1 -0 -1
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
Jelmer -
Jelmer -
18 jaar geleden
 
0 +1 -0 -1
probeer het eens met relatieve paden: ./(= huidige dir) en ../(= bovenliggende dir).


18 jaar geleden
 
0 +1 -0 -1
Jelmer, hebben ze al eens verteld dat je geweldig bent.

Het werkt.

Thanks

Marco


17 jaar geleden
 
0 +1 -0 -1
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!


17 jaar geleden
 
0 +1 -0 -1
Sorry, even een verbetering aan m'n bericht:
Hij blijft in contact-post.php staan, en laat daar alles zien tot de switch. Dus hij gaat niet naar contact-thanks, terwijl ik dat wel allemaal goed in m'n switch heb verwerkt.
Winston Smith
Winston Smith
17 jaar geleden
 
0 +1 -0 -1
De header neemt geen GET-variabelen aan. Dat kan je wellicht oplossen door een meta refresh te gebruiken of door direct naar de pagina te gaan.


17 jaar geleden
 
0 +1 -0 -1
Ik heb het opgelost door ipv een error pagina en een thanks pagina te laten zien, gewoon een echo te doen. Had ik veel eerder moeten doen, dat is veel handiger.
Thanks anyway!
BlcKJcK
BlcKJcK
17 jaar geleden
 
0 +1 -0 -1
--- index.php ---

If ($p) {
include "$p.php";
}

resulteerd als: www.site.com/index.php?pagina1.php

Werkt net zo goed ofniet?
John Doe
John Doe
17 jaar geleden
 
0 +1 -0 -1
Eeh gaste allemaal leuk en aardig enzo. Goed script, heb ik net nodig, maar kan je niet een scriptje maken wat dit automatiseerd. Al die pagina's intypen kan, maar dat vindt ik eigelijk niet nodig.

Maybe kan iemand me helpen,

Thomas Van der Ploeg
Winston Smith
Winston Smith
17 jaar geleden
 
0 +1 -0 -1
Ja, dat kan zeer zeker. Lees de reacties hierboven maar eens door, dan kom je er vanzelf wel achter hoe het moet! ;)
John Doe
John Doe
17 jaar geleden
 
0 +1 -0 -1
Oke maat, hieronder heb ik het scriptje hoe ik het doe. Gewoon een copietje of course. Het voordeel is wel dat je van de klote switch statement afbent.

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
<?php
  $page
= strtolower($_GET['page']);
  include($page);
?>
Winston Smith
Winston Smith
17 jaar geleden
 
0 +1 -0 -1
Het nadeel is alleen dat die klote hackers binnen de kortste keren je gehele site plat leggen op die manier ;)
John Doe
John Doe
17 jaar geleden
 
0 +1 -0 -1
hmm... dan kan jij duidelijk geen sites bouwen, maat ;). Extra beveiliging is niet zo moeilijk, en als je kijkt naar de grote sites, die doen het alleen maar zo

ThAlmighty
Winston Smith
Winston Smith
17 jaar geleden
 
0 +1 -0 -1
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.
John Doe
John Doe
17 jaar geleden
 
0 +1 -0 -1
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
Winston Smith
Winston Smith
17 jaar geleden
 
0 +1 -0 -1
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

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.
Tom
Tom
17 jaar geleden
 
0 +1 -0 -1
Leuk script. Heb ik ook net toegepast. Ik zit nu wel met een probleemje.
Wanneer ik een teller op de index.php zet dan telt ie telkens 1 op wanneer ik op een link klik in menu.php want die wordt telkens geladen.

Hoe kan ik dit verhelpen?
DeleteAll DeletelAll
DeleteAll DeletelAll
16 jaar geleden
 
0 +1 -0 -1
Mooi werk Kasper, erg duidelijke tutorial, dit kunnen zelfs beginners begrijpen ;-)! Ga zo door!
Eris -
Eris -
16 jaar geleden
 
0 +1 -0 -1
Kasper als je verveelt wil je dan even de code tags toevoegen :)
Winston Smith
Winston Smith
16 jaar geleden
 
0 +1 -0 -1
@Tom: hoe ziet je teller eruit?

@Aymeric: bedankt voor het compliment :)

@Eris: je hebt geluk dat ik zo'n saai leven heb :o) Ik zag ook dat ik nog tabellen voor de opmaak gebruikte in de voorbeelden. Dat zal ik binnenkort nog wel eens veranderen, als ik me nog eens verveel :)
Robert Deiman
Robert Deiman
16 jaar geleden
 
0 +1 -0 -1
@Tom

Log gewoon de IP van de gebruiker, en tel per IP maar 1 keer per dag het bezoek, dan ben je er volgens mij al. (natuurlijk zijn er nog mensen met een wisselend IP, maar dat is maar een kleine groep.. Kabelaars en de meeste ADSL'ers, hebben gewoon een statisch/ vast IP, dan werkt dat prima..
Corona
Corona
16 jaar geleden
 
0 +1 -0 -1
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>
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
<?php
include('menu.php');
?>

</td></tr>
<tr><td>
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
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
?>

</td></tr></table>
Jelmer -
Jelmer -
16 jaar geleden
 
0 +1 -0 -1
na 'case "about":' moet je nog $page = 'desbestreffendebestand.php'; neerzetten.
Corona
Corona
16 jaar geleden
 
0 +1 -0 -1
Jelmer, het lukte me helaas weer niet om werkend te krijgen en toen probeerde ik de tweede mogelijkheid met deze script:

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
<?php
include('menu.php');
?>


Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
14
<?php
switch(strtolower($_GET['page']))
{
case
"about";
include("about.php");
break;
case
"nieuws":
include("nieuws.php");
break;
default:

include("default.php");
break;
}

?>


Met deze script lukt het ook niet. ik heb exact overgenomen dan zou het moeten werken, toch? ik snap het niets meer van.
Kevin -
Kevin -
16 jaar geleden
 
0 +1 -0 -1
Hey ff een vraag .. ik wil dit ook gebruiken maar mijn site is op css gebouwd met divs werkt dit dan ook als je het in div content zet bijvoorbeeld?.. en moet je alle links die in ee site voorkomen in die switch zetten das lastig met een grote site??
Winston Smith
Winston Smith
16 jaar geleden
 
0 +1 -0 -1
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:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
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 . "'";
?>

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.
K i p
K i p
16 jaar geleden
 
0 +1 -0 -1
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;
Kevin -
Kevin -
16 jaar geleden
 
0 +1 -0 -1
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??
Walter
Walter
15 jaar geleden
 
0 +1 -0 -1
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 ??
Winston Smith
Winston Smith
15 jaar geleden
 
0 +1 -0 -1
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 ;)
Michael
Michael
15 jaar geleden
 
0 +1 -0 -1
Deze tutorial is zeer handig, maar ik vraag me wel af hoe het mogelijk is wanneer ik een id wil meegeven in de link, dus bijv.
page=verwijderen['$spelersid]' dan kan de pakt de case "verwijder" dit natuurlijk niet. Hoe kan ik dit oplossen?
Winston Smith
Winston Smith
15 jaar geleden
 
0 +1 -0 -1
@Michael: met 2 switches. Een voor de pagina verwijderen en de ander voor het spelersid. Dan krijg je bijvoorbeeld een link page=verwijderen&spelersid=2.
Osbos
Osbos
15 jaar geleden
 
0 +1 -0 -1
Bedankt voor dit script
Kooi
kooi
15 jaar geleden
 
0 +1 -0 -1
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!
Winston Smith
Winston Smith
15 jaar geleden
 
0 +1 -0 -1
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?
Kooi
kooi
15 jaar geleden
 
0 +1 -0 -1
Hey Kasper,
Ik heb nu alleen de volgende code:

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
<?php
switch (strtolower($_GET['page']))
{
case
"flupsie":
  include("flupsie.php");
  break;
}

?>

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
<?php
include ('home.php');
?>


De default link heb ik weggehaald, want ik kreeg een error. Maar die is dus wel essentieel?
Winston Smith
Winston Smith
15 jaar geleden
 
0 +1 -0 -1
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:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
<?php
switch (strtolower($_GET['page']))
{
case
"flupsie":
  include 'flupsie.php';
  break;
default:

  include 'home.php';
  break;
}

?>


Of, mocht je het echt op jouw manier willen:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
<?php
if(isset($_GET['page'])) {
  switch (strtolower($_GET['page']))
  {
  case
"flupsie":
    include "flupsie.php";
    break;
  }
}
else {
  include 'home.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.
Kooi
kooi
15 jaar geleden
 
0 +1 -0 -1
Yep. Dat werkt. Thanks a bunch. Ik ga nog even verder klooien.
P
P
15 jaar geleden
 
0 +1 -0 -1
Kasper,

Ik ben bezig met een website waarin ongeveer 50 links in totaal zitten.
Is er een veilige en snellere manier om dan met de switch te werken? Dit zou ook fijn zijn als er regelmatig nieuwe paginas bijkomen of weg gaan.

Alvast bedankt!

Pepe
Winston Smith
Winston Smith
15 jaar geleden
 
0 +1 -0 -1
Ja Pepe, die staat hierboven in de comments:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
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;
?>
TJVB tvb
TJVB tvb
15 jaar geleden
 
0 +1 -0 -1
Alleen is die niet zo veilig, denk aan bijvoorbeeld ?page=../../db_vars
Na zal het lang niet altijd echt fouten geven maar toch.

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
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;
?>


Zo mogen het alleen maar letters zijn in de $_GET['page'];
Bas
bas
14 jaar geleden
 
0 +1 -0 -1
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
Niek Kasius
Niek Kasius
13 jaar geleden
 
0 +1 -0 -1
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:

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
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;


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>
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
<?php echo $title; ?>
</h1>
enz, enz
Steven Hack
Steven Hack
13 jaar geleden
 
0 +1 -0 -1
Dan doe je het volgende:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
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
<?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>';
?>


Bijvoorbeeld :)
David M
David M
9 jaar geleden
 
0 +1 -0 -1
Hoe zit het met een <form>:

Ik kan direct naar een andere pagina via:(bijv vanuit index.php)
echo "<form action=zoek.php method=\"get\">";
zal deze de actie uitvoeren in zoek.php, maar zo (via switch) werkt het niet :
echo "<form action=index.php?page=zoek.php method=\"get\">";

Idee?
PHP hulp
PHP hulp
0 seconden vanaf nu
 

Gesponsorde koppelingen
Frank WD
Frank WD
9 jaar geleden
 
0 +1 -0 -1
Open even een nieuwe topic hier over.
Je dumpt nu een topic van 10 jaar oud waar 4 jaar geleden een laatste reactie is geweest.

Om te reageren heb je een account nodig en je moet ingelogd zijn.

Inhoudsopgave

  1. test
  2. test
  3. Let's switch again!

Labels

  • Geen tags toegevoegd.

PHP tutorial opties

 
 

Om de gebruiksvriendelijkheid van onze website en diensten te optimaliseren maken wij gebruik van cookies. Deze cookies gebruiken wij voor functionaliteiten, analytische gegevens en marketing doeleinden. U vindt meer informatie in onze privacy statement.