[PHP] Includecode werkt niet, wat doe ik fout?

Pagina: 1
Acties:
  • 112 views sinds 30-01-2008
  • Reageer

Onderwerpen


Acties:
  • 0 Henk 'm!

  • DJFliX
  • Registratie: Januari 2005
  • Laatst online: 01-09 20:45
Deze code heb ik in een tabel geplaatst, maar er gebeurt niets (de pagina blijft gewoon zwart, nl. de achtergrondkleur van de site). Het gaat om www.flixite.com (nog verre van functionerende wlm-ripoff-theme) en in het nu nog zwarte vlak moet home.php komen, tenzij ?pagina=paginanaam.php wordt opgevraagd (bv. http://www.flixite.com/index.php?pagina=campzone.php) zodat campzone.php in die tabel terecht komt.

Ik heb dit script ergens van het forum gecopy'd en gepaste, en een beetje dingen geprobeerd met vervangen van paginanamen enzo, maar ik snap er eigenlijk helemaal niks van. Ik hoop dat iemand mij kan wijzen op mijn fout :)

Edit: Het script werkt, maar als er niets wordt gespecificeerd (bv ?pagina=phone.php) dan blijft de pagina leeg... waarom komt home.php hier niet gewoon te staan?

Edit2: Negeer dit maar ff, volgens mij ligt het probleem aan mijn webserver... home.php staat op mijn ftp, maar is niet te bereiken via http://www.flixite.com/home.php

code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
<?php

// Get home-page (home.php)

if($_GET['pagina']=="") {
include($_GET['home'].".php");
}

// Get variable page
else {
if(file_exists($_GET['pagina'].".php")) {
include($_GET['pagina'].".php");
}

// Go to error.php
else {
include("error.php");
}
}
?>

[ Voor 15% gewijzigd door DJFliX op 02-09-2006 18:14 ]

2x 320Wp Ja-Solar / Z 10° / APS YC600Y PVOutput


Acties:
  • 0 Henk 'm!

  • Depress
  • Registratie: Mei 2005
  • Laatst online: 18-09 22:29
$_GET['home'] is niet defined.
Je zult daar gewoon
PHP:
1
include("home.php");


Moeten gebruiken.

[ Voor 59% gewijzigd door Depress op 02-09-2006 18:14 ]


Acties:
  • 0 Henk 'm!

  • GlowMouse
  • Registratie: November 2002
  • Niet online
Ik denk dat onderstaande code beter zal werken. Niet alleen is $_GET['home'] wellicht niet gedefinieerd ($_GET verwijst naar variabelen die via de URL worden meegegeven), maar ook is jouw script erg onveilig (verander ?pagina=veilig maar eens voor de lol in ?pagina=index). Daarnaast bestaat elseif om een onoverzichtelijke else { if { } } constructie te vervangen.

PHP:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
$valid_pages = array('a.php',
            'b.php',
            'c.php'
        );

// Get home-page (home.php)
if($_GET['pagina']=='') {
    include('home.php');
}
// Get variable page
elseif(in_array($_GET['pagina'].'.php', $valid_pages)) {
    include($_GET['pagina'].'.php');
}
else {
    include('error.php');
}

Acties:
  • 0 Henk 'm!

  • Helmet
  • Registratie: Januari 2002
  • Laatst online: 21-08 15:00
wat jij doet is
als ($_GET['pagina']) leeg is, include $_GET['pagina'] (null) + .php je probeert in principe het bestand .php in te voeren.

Verder zou ik adviseren om het als volgt aan te pakken:
PHP:
1
2
3
4
5
6
7
8
9
10
11
12
13
<?
if (!isSet($_GET['action']) || empty($_GET['action'])) { $action = 'home'; }
else { $action = $_GET['action']; }
switch ($action)
{
case 'home':
echo 'homepage!';
break;
case 'intro':
include('intro.php');
break;
}
?>

Icons are overrated


Acties:
  • 0 Henk 'm!

  • DJFliX
  • Registratie: Januari 2005
  • Laatst online: 01-09 20:45
Thanx :) het werkt :D hij mag van mij een slotje? :D Thanx all :D

2x 320Wp Ja-Solar / Z 10° / APS YC600Y PVOutput