Automatisch laden van home.php bij laden index.php (2)

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Roel S

Roel S

30/11/2010 10:46:10
Quote Anchor link
Kom met jullie hulp al een heel eind. Probleem is alleen dat ik met PHP nu nog onvoldoende bekend ben zodat ik haast tot op de punt en komma moet weten wat ik moet doen.
Onderstaande code (met dank aan Vincent en Milo) zorgt er al voor dat vanuit een menukader de pagina's "Home"en "Contact" worden geopend op dezelfde pagina en dat bovendien bij het openen van de pagina automatisch het bestand "home.php"wordt geladen.

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
echo '<a href="?page=home">Home</a> | <a href="?page=contact">Contact</a><br />';
echo 'De pagina: <br /><hr><br />';
if(isset($_GET['page']))
{

    if(file_exists($_GET['page']))
    {

        include $_GET['page'].".php";
    }
}

else
{
    include "home.php";
}

include($_GET['page'].'.php');
?>


De laatste "include"zorgt echter nog steeds voor de foutmelding "Warning: include(.php) [function.include]: failed to open stream:..."
Verwijder ik deze dan is het inladen van de pagina's vanuit het menu niet meer mogelijk.

Gaat volgens mij nog om een detail, maar hoe moet de code worden aangepast zodat:
- de foutmelding verdwijnt
- het menu gewoon blijft werken
- en de situatie zo blijft dat home.php automatisch als eerste wordt geladen
 
PHP hulp

PHP hulp

22/11/2024 18:01:48
 
John D

John D

30/11/2010 10:59:44
Quote Anchor link
regel 15 moet tussen regel 8 en 9
Edit:

dat is dubbelop zie ik. regel 15 dus weglaten.
Gewijzigd op 30/11/2010 11:08:03 door John D
 
Kris Peeters

Kris Peeters

30/11/2010 11:39:31
Quote Anchor link
Echt veilig is dat niet.
Al eens geprobeerd te surfen naar
index.php?page=index ?

Wat je best doet, is een aantal toegelaten waarden in een switch zetten (eventueel in een array).

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
<?php
switch ($_GET['page']) {
  default:

      include "home.php";
    break;
  case
'kalender':
  case
'gastenboek':
  // ...
      include $_GET['page'].".php";
    break;
}

?>


Wat je ook kan doen, is alle includebare pagina's in een map zetten. Dan kan je index niet zomaar proberen includen.
Gewijzigd op 30/11/2010 11:40:09 door Kris Peeters
 
Chris -

Chris -

30/11/2010 11:42:04
Quote Anchor link
En waarom kunnen we niet gewoon verder gaan in je vorige topic?
 
Roel S

Roel S

30/11/2010 12:16:16
Quote Anchor link
Zoals onderstaand dus John?

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
<?php
# De links
echo '<a href="?page=home">Home</a> | <a href="?page=contact">Contact</a><br />';
# Weergeven de pagina + een lijn
echo 'De pagina: <br /><hr><br />';
# Pagina invoegen
if(isset($_GET['page']))
{

    if(file_exists($_GET['page']))
    {

        include $_GET['page'].".php";
include($_GET['page'].'.php');
    }
}

else
{
    include "home.php";
}

?>


Hiermee verdwijnt de foutmelding inderdaad en de pagina opent met home.php.
Menu werkt nu echter geheel niet.

Je bedoeld php.resourceindex.com Kris?


Toevoeging op 30/11/2010 12:18:44:

Beschouw regel 11 als weggelaten. Resultaat blijft hetzelfde.
 
Kris Peeters

Kris Peeters

30/11/2010 15:19:31
Quote Anchor link
Ik bedoel: vul eens ?page=index in je url. Indien je nog zit met ... include $_GET['page'].".php"; ... zal je zien dat index.php index.php probeert te includen, die dan weer op zijn beurt index.php probeert te includen (en zo kan ik nog een tijd doorgaan).

Jij gaat er van uit dat elke php file een pagina is die je hoort te includen. Misschien is dat bij jou het geval (op index.php na uiteraard), maar dat is niet standaard.

Over het algemeen zijn er nog php files waar enkel classes of functies staan.
 
Roel S

Roel S

01/12/2010 07:06:30
Quote Anchor link
Top!
Werkt nu naar behoren!

Je hebt gelijk Kris. Beschouw inderdaad de php's als afzonderlijke pagina's. Beetje de frame-denkwijze misschien? Werkt voor mijn situatie tot zover prima, maar ben er al wel achter dat ik mij eens behoorlijk verder moet gaan verdiepen in php.

Bedankt tot zover.
 



Overzicht Reageren

 
 

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.