[PHP] Include in een geinclude pagina werkt niet

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

Onderwerpen


Acties:
  • 0 Henk 'm!

  • NoepZor
  • Registratie: Maart 2003
  • Laatst online: 22:02
Ik ben bezig met mijn website en ik integreer de pagina's door middel van een include.

Nu heb ik een pagina gemaakt, genaamd home.php voor een welkomstboodschap en het weergeven van het laatste nieuws. Het nieuws wordt binnengehaald door middel van een andere pagina includen (van Cutenews). De pagina opzich werkt goed (http://www.noepzor.nl/site/inc/home.php), maar wanneer ik de home.php include in mijn index pagina wordt de show_news pagina van Cutephp niet meer geinclude in home.php. (www.noepzor.nl/site) Ik heb het ook op andere manieren geprobeerd maar dat wil ook niet werken.

Hoe kan ik ervoor zorgen dat de pagina show_news in home.php word geinclude terwijl home.php ook wordt geinclude?

De wijzen komen uit het Oosten!


Acties:
  • 0 Henk 'm!

  • Voutloos
  • Registratie: Januari 2002
  • Niet online
Je kan include gewoon net zo goed blijven gebruiken in een bestand dat zelf geinclude wordt. Ergo is er dus iets mis met je code, dus zou ik je willen vragen om de relevante code te laten zien. :)

{signature}


Acties:
  • 0 Henk 'm!

Anoniem: 3431

Zet ff
PHP:
1
error_reporting(E_ALL);
boven je pagina, en check je paden.

[ Voor 3% gewijzigd door Anoniem: 3431 op 20-06-2006 16:57 ]


Acties:
  • 0 Henk 'm!

  • NoepZor
  • Registratie: Maart 2003
  • Laatst online: 22:02
Nieuws.php
code:
1
2
3
4
5
6
<div class="news">
<?PHP
$number=5;
include("../beheer/show_news.php");
?>
</div>


Include systeem in index.php
code:
1
2
3
4
5
6
7
8
9
10
11
                <?php                   
                    // In $array zet je de toegestane waardes:
                    $array = array('index', 'pc', 'nieuws','home','2','3','4','5','6','7','8','9','10','11',); // bestandsnamen zonder extensie

                    if(isset($_GET['pagina']) && in_array($_GET['pagina'], $array)){
                    include('inc/'.$_GET['pagina'].'.php'); // $_GET bestaat en is goedgekeurd
                    }
                    else {
                        include('inc/home.php'); // $_GET bestaat niet of heeft een verkeerde waarde
                    }
                ?>


Ik heb effe een testpagina gemaakt bij mijn PC en de tekst die daarin staat wordt wel geinclude.. dat werkt dus. Ik heb het vermoeden dat nieuws.php bijvoorbeeld wel geinclude wordt, maar de include naar de nieuwspagina van cutenews niet werkt. Frapant is hierbij dat de nieuwspagina wel goed werkt als je hem direct aanspreekt.
Anoniem: 3431 schreef op dinsdag 20 juni 2006 @ 16:56:
Zet ff
PHP:
1
error_reporting(E_ALL);
boven je pagina, en check je paden.
heb de code bovenin index.php gezet, maar krijg zo gauw geen errors.

[ Voor 27% gewijzigd door NoepZor op 20-06-2006 17:05 ]

De wijzen komen uit het Oosten!


Acties:
  • 0 Henk 'm!

  • BasieP
  • Registratie: Oktober 2000
  • Laatst online: 22-07-2024
het is hierboven ook al gezegt

stel je hebt 2 files:
file A (/filea.php) en file B (/inc/fileb.php)

als je in file A file B wil include doen je include '/inc/fileb.php';
als je in file b file A wil include doen je include '/filea.php'; of include '../filea.php';

als je in file a file b wil include die op zijn beurd weer file a include (of filec in de zelfde dir) doe je
in file a: include 'inc/fileb.php';
in file b: include 'filec.php'; en niet include '../filec.php';

je voert in alle gevallen file A uit, dus je directory structuur moet je ook vanaf file A uit bekijken.
als je in file A file B include voer je nog steeds file A uit, dus als je in file B dan een file C wilt includen doe je dat vanuit de directory van file A en niet vanuit die van file B

[ Voor 29% gewijzigd door BasieP op 20-06-2006 17:08 ]

This message was sent on 100% recyclable electrons.


Acties:
  • 0 Henk 'm!

  • NoepZor
  • Registratie: Maart 2003
  • Laatst online: 22:02
Dat laatste stukje maakt het duidelijk, ik zal het eens proberen.

Edit: Het werkt :) bedankt!!
Ik dacht dat ik bij een include vanuit het bestand moest kijken waarin die include staat.

Dus

Eerste include bijv /site/inc/a.php
Vervolgens in a.php naar b.php in een andere dir dan ../anderedir/b.php moest doen.

In mijn geval moet ik dus overal kijken naar index.php waarvanuit in include in de eerste instantie, had de ../ verwijderd (om uit de inc dir te komen) en nu is het werkend.

[ Voor 77% gewijzigd door NoepZor op 20-06-2006 17:21 ]

De wijzen komen uit het Oosten!


Acties:
  • 0 Henk 'm!

  • frickY
  • Registratie: Juli 2001
  • Laatst online: 09-06 21:17
Probeer zoveel mogelijk absolute paden te gebruiken in je includes. Gebruik hiervoor #_SERVER['DOCUMENT_ROOT'] of defineer zelf ergens je docroot in een variabele.

Acties:
  • 0 Henk 'm!

  • moozzuzz
  • Registratie: Januari 2005
  • Niet online
Bij includes moet je er altijd vanuitgaan dat het startpunt het eerste include-commando is. Include is immers de code uit een tweede bestand kopie-plakken in het eerste bestand.

Verder zou ik ook relatieve path's steeds laten beginnen met ./, dat lijkt me duidelijker (mss. wel een persoonlijke voorkeur :^S ;^).
Pagina: 1