/ Forside / Teknologi / Udvikling / PHP / Nyhedsindlæg
Login
Glemt dit kodeord?
Brugernavn

Kodeord


Reklame
Top 10 brugere
PHP
#NavnPoint
rfh 3959
natmaden 3372
poul_from 3310
funbreak 2700
stone47 2230
Jin2k 1960
Angband 1743
Bjerner 1249
refi 1185
10  Interkril.. 1146
Include og headers problem
Fra : Frank Nørvig


Dato : 29-06-01 08:02

Hejsa

Jeg har en php-fil som overordnet ser ud som følgende:

*******************************************
<?PHP
include('opendatabase.php');
Læs indhold i database
Behandl indhold i database.

Hvis indhold i database = mine variabler {

header('Location: menu.php');
}
?>
*******************************************

Problemet er bare at den skriver at header allerede er sat. Så vidt jeg kan
forstå på PHP.NET er det fordi Include hopper ud af PHP-mode, ind i
HTML-mode og derefter tilbage i PHP-mode, og dermed selv sætter en header.

Dels forstår jeg ikke hvorfor PHP-folkene har valgt at gøre det på denne
måde og dels kan jeg heller ikke finde nogen løsning til det?!

Er der nogen der kan sige mig om der findes et "loophole" eller en anden
måde at gøre det på, så jeg stadig kan inkludere en php-fil selvom jeg
sætter headers et andet sted?

Med venlig hilsen
Frank Nørvig



 
 
Jonas Koch Bentzen (29-06-2001)
Kommentar
Fra : Jonas Koch Bentzen


Dato : 29-06-01 08:16

Frank Nørvig skrev:

> Jeg har en php-fil som overordnet ser ud som følgende:
>
> *******************************************
> <?PHP
> include('opendatabase.php');
> Læs indhold i database
> Behandl indhold i database.
>
> Hvis indhold i database = mine variabler {
>
> header('Location: menu.php');
> }
> ?>
> *******************************************
>
> Problemet er bare at den skriver at header allerede er sat. Så vidt
> jeg kan forstå på PHP.NET er det fordi Include hopper ud af PHP-mode,
> ind i HTML-mode og derefter tilbage i PHP-mode, og dermed selv sætter
> en header.

Jeg tror snarere, problemet skyldes, at der er en tom linje (eller en
eller anden form for output) i den fil, du inkluderer.

--
Venlig hilsen
Jonas Koch Bentzen

http://understroem.dk/

Finn Nielsen (29-06-2001)
Kommentar
Fra : Finn Nielsen


Dato : 29-06-01 08:23

"Frank Nørvig" <uzi4u@uzi4u.dk> writes:

> Hejsa
>
> Jeg har en php-fil som overordnet ser ud som følgende:
>
> *******************************************
> <?PHP
> include('opendatabase.php');
> Læs indhold i database
> Behandl indhold i database.
>
> Hvis indhold i database = mine variabler {
>
> header('Location: menu.php');
> }
> ?>
> *******************************************
>
> Problemet er bare at den skriver at header allerede er sat. Så vidt jeg kan
> forstå på PHP.NET er det fordi Include hopper ud af PHP-mode, ind i
> HTML-mode og derefter tilbage i PHP-mode, og dermed selv sætter en header.

Delvist rigtigt. Header bliver først sendt når der kommer noget indhold
at sende, dette kan være så simpelt som et linieskift for meget i
slutningen af den fil man inkludere, hvis den fil man inkluderer
ikke indeholder "<?" som det absolut første eller hvis den fil man
inkluderer på anden måde skriver noget ud.

Jeg ville som det første kigge efter hvor mange linieskift der er i
slutningen af opendatabase.php.

--
Finn Nielsen - http://www.zznyyd.dk/

Thomas P (29-06-2001)
Kommentar
Fra : Thomas P


Dato : 29-06-01 10:32

Bare lige en kommentar : Er require_once() ikke blevet standard ?

--
- Thomas
~~~~~~~~
.... http://www.FlowCode.f2s.com - where code flows
.... mailto:blomme@post.com - where email goes



Jonas Delfs (29-06-2001)
Kommentar
Fra : Jonas Delfs


Dato : 29-06-01 17:13

"Thomas P" <blomme@post.com> skrev i en meddelelse
news:9hhhq6$bu$1@news.inet.tele.dk...

> Bare lige en kommentar : Er require_once() ikke blevet standard ?

Til?
PHP-folkene anbefaler at man bruger require_once() eller include_once(), alt
efter til hvad. Ikke nødvendigvis require_once() i stedet for include(). :)

--
Mvh. Jonas Delfs, http://delfs.dk
e72bd3e51a7937c87d28b85d677a97b2



Søg
Reklame
Statistik
Spørgsmål : 177522
Tips : 31968
Nyheder : 719565
Indlæg : 6408672
Brugere : 218887

Månedens bedste
Årets bedste
Sidste års bedste