PDA

Bekijk Volledige Versie : PHP bestand includen



oomkoen.nl
06/10/04, 12:25
In mijn volgende site wil ik gebruik maken van templates door SSI te
gebruiken. Daarbij heb ik ook een foto album (van MIG, My Image
Gallery), maar dit is een PHP bestand.

Ik heb al stukjes gelezen dat het niet gebruikelijk is een PHP bestand
met SSI te includen. Heb het geprobeerd en het lumt me ook niet. Met
de entry:

<!--#include virtual="/images/gallery/index.php" --> Krijg ik de fout:
[an error occurred while processing this directive]


Ook las ik ergens dat het beter zou zijn te includen met PHP. Nou ken
ik PHP niet goed. Met de volgende entry:

<?php include ('/images/gallery/index.php'); ?> Krijg ik:
Warning: Cannot add header information - headers already sent by
(output started at c:\phpdev\www\seat\index.php:12) in
c:\phpdev\www\seat\images\gallery\index.php on line 3618

Regel 3617 van index.php: header("Location:
http://$SERVER_NAME:$SERVER_PORT" . $mig_config['baseurl']
Regel 3618 van index.php: . '?currDir=.');
Regel 3619 van index.php: exit;


Het enige waar mijn bestand aan PHP is te herkennen is dat het deze
extentie heeft, en een include. Verder is het een gewone HTML opmaak.


(Wat kan ik er aan doen om toch die foto album in mijn template te
krijgen.
Zou dit via een redirect kunnen in HTML. Ik ken zoiets dat je in de
META van een pagina kunt zetten, maar dit is een include en niet een
echte pagina.)

oomkoen.nl
13/10/04, 09:55
[..]

Is er dan helemaal niemand die mij hier mee kan helpen???

Daniel Tryba
13/10/04, 11:35
oomkoen.nl <k.wilke@planet.nl> wrote:
> [..]
>
> Is er dan helemaal niemand die mij hier mee kan helpen???

Je vraag staat waarschijnlijk op plaats 2 in de PHP mostly FAQ:

>><?php include ('/images/gallery/index.php'); ?> Krijg ik:
>>Warning: Cannot add header information - headers already sent by
>>(output started at c:\phpdev\www\seat\index.php:12) in
>>c:\phpdev\www\seat\images\gallery\index.php on line 3618
>>
>>Regel 3617 van index.php: header("Location: http://$SERVER_NAME:$SERVER_PORT" . $mig_config['baseurl']
>>Regel 3618 van index.php: . '?currDir=.');
>>Regel 3619 van index.php: exit;

Vertaling:
headers (op regel 3618) kunnen niet verzonden worden omdat er op regel
12 al output naar de browser is geweest.

Headers moeten nu eenamaal eerder dan output worden verzondern omdat ze
er gewoon voor staan. Het probleem zit hem dus op regel 12, niet op
3618.

Quickfix: outputbuffering aanzetten:
http://nl.php.net/manual/nl/ref.outcontrol.php

Correcte oplossing: De structuur van je script veranderen zodat je geen
output genereerd voordat je tot de conclusie komt dat je een redirect
wilt hebben.

--

Daniel Tryba