switch($_GET['pagina'] probleem
Ik heb het zover dat mijn hoofdmenu werkt via de switch zodat alleen de betreffende pagina geladen wordt.
Code (php)
Nu komt het probleem, op de behandeling pagina heb ik een 2de menu die ik op dezelfde manier wil laten werken. In een tabel met 2 kolommen (links de menu, rechts de pagina die ik wil weergeven).
Indien ik het op dezelfde manier doe als mijn hoofdmenu, dan wordt er echter heel de pagina behandeling.php geladen en is de rest van de site (hoofdmenu, logo enz..) weg.
Ik krijg het niet zodat ik een link die links staat, een pagina opent die rechts komt. Ik weet zelfs niet of dit wel mogelijk is, maar ik wilde het proberen aangezien het mij makkelijker lijkt als ik nadien iets moet aanpassen aan die betreffende menu.
er staat een testversie online op test.mnolimburg.be
het betreffende probleem bevindt zich bij Behandelingen ---> link die in de menu op die pagina staat. (het zal de meeste onder jullie wel amateuristisch overkomen, maar ik heb dan ook niet veel ervaring in websites maken, maar ik leer bij :) )
Bij de $_GET altijd veiligheidscontroles uitvoeren, dat is nu niet zo.
Vooral als je met een database werkt is dit essentieel.
Bij het Behandelingen onderdeel kun je een if'je gebruiken,
Code (php)
(Ik gebruik require omdat dit beter is dan include :P)
Dit zou je in een tabel aan de linkerkant kunnen zetten, zodat wanneer de persoon op de behandelingen pagina komt, dit wordt weergegeven.
Dit zorgt er wel voor dat wanneer de persoon op die pagina komt, de pagina 'naar rechts' wordt verschoven, want het menu moet er nog tussen komen.
Gewijzigd op 03/07/2011 02:08:07 door Non Actief
Het gebruik van or die() is ook niet wat je wilt! (or die() betekent in dit geval Breng de bezoeker naar het kerkhof)
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
2
3
4
5
6
7
8
9
10
11
12
13
14
15
<?php
$pages = array('home' => 'home.html'
,'behandeling' => 'behandeling.html'
, 'contact' => 'contact.html');
if (isset($_GET['pagina']) && array_key_exists($_GET['pagina'],$pages)) {
if (file_exists($_SERVER['DOCUMENT_ROOT'].'/'.$pages[$_GET['pagina']]) {
include $_SERVER['DOCUMENT_ROOT'].'/'.$pages[$_GET['pagina']];
}
}
else {
// leidt de bezoeken naar een "Error page"
}
?>
$pages = array('home' => 'home.html'
,'behandeling' => 'behandeling.html'
, 'contact' => 'contact.html');
if (isset($_GET['pagina']) && array_key_exists($_GET['pagina'],$pages)) {
if (file_exists($_SERVER['DOCUMENT_ROOT'].'/'.$pages[$_GET['pagina']]) {
include $_SERVER['DOCUMENT_ROOT'].'/'.$pages[$_GET['pagina']];
}
}
else {
// leidt de bezoeken naar een "Error page"
}
?>
Maar je kan uiteraard ook eens op zoek gaan naar __autoload
En jouw vraag, dat ligt er maar net aan welke logica jij kunt bedenken.
Gewijzigd op 03/07/2011 09:32:41 door Noppes Homeland
@Matthijs kan je nou niet eens even die post boven je lezen van Noppes?
Kenneth geeft aan dat hij niet veel ervaring heeft met PHP,
haal dan ook niets te ingewikkelds aan a.u.b.
Naar mijn idee, werkt een meta redirect naar een error page ook goed.
Matthijs Veldhuizen op 03/07/2011 12:06:11:
Ieuw wat ontzettend vies. Waarom op deze manier. Gebruik als je per se de pagina's wilt specificeren een switch.
Verder slaat die die nergens op, je hebt natuurlijk meerdere mogelijkheden, volgens mij denk jij dat je met die die er voor zorgt dat je een alternatief krijgt. Als je een andere pagina wilt moet je dat met een else(if) doen.
Require doet een fatal error als er iets mis gaat, dus heeft die die geen zin, die wordt nooit bereikt.
Meta redirects zijn dom. Als je een meta redirect doet, bou er dan een pagina omheen. Dat is te veel werk, dus doe dan gewoon http redirect.
Matthijs Veldhuizen op 03/07/2011 12:31:24:
@gerhard I kan je nou niet eens even de eerste post lezen?
Kenneth geeft aan dat hij niet veel ervaring heeft met PHP,
haal dan ook niets te ingewikkelds aan a.u.b.
Naar mijn idee, werkt een meta redirect naar een error page ook goed.
Kenneth geeft aan dat hij niet veel ervaring heeft met PHP,
haal dan ook niets te ingewikkelds aan a.u.b.
Naar mijn idee, werkt een meta redirect naar een error page ook goed.
Hij heeft nog niet veel ervaring met php, hoe krijg je ervaring? Door te doen, en het liefst ingewikkelder dan je nu al kan. Hij kan een switch, dus een if kan die ook dus dan kan je ook moeilijkere dingen gaan leren. Zoals gebruik maken van functies en logisch, kleine, functionele, goede code schrijven. Niet van die onzin die jij maakt.
Wel bedankt voor de informatie :)
Matthijs Veldhuizen op 03/07/2011 12:38:48:
Geen ervaring met http redirects, dus heb ik dit ook niet aangehaald.
Wel bedankt voor de informatie :)
Wel bedankt voor de informatie :)
Oftewel, je had gewoon Noppes post moeten lezen en niet moeten reageren.
Altijd weer behulpzaam
Code (php)
Ik heb dan ook het probleem gevonden, maar ik weet de oplossing niet.
het probleem is dat ik op de pagina index.php?pagina=behandeling aan het werken ben, en dat ik de nieuwe pagina op behandeling.php?pagina=gelaat moet zetten. Hier zit de fout aangezien hij dan de behandeling pagina laadt, en niet meer de indexpagina waar die behandelingpagina opstaat. Kan ik dit eenvoudig oplossen of moet ik heel iets anders gaan doen.
Gewijzigd op 03/07/2011 13:02:32 door Kenneth Vranken
Code (php)
1
2
3
4
5
6
2
3
4
5
6
<ul>
<li><a href="index.php">home</a></li>
<li><a href="?pagina=gelaat">gelaat</a></li>
<li><a href="?pagina=ontharen">ontharen</a></li>
<li><a href="?pagina=makeup">makeup</a></li>
</ul>
<li><a href="index.php">home</a></li>
<li><a href="?pagina=gelaat">gelaat</a></li>
<li><a href="?pagina=ontharen">ontharen</a></li>
<li><a href="?pagina=makeup">makeup</a></li>
</ul>
en dan in je switch:
Code (php)
Gewijzigd op 03/07/2011 14:07:26 door gerhard l
en uiteraard een default mee geven in je switch