/ 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
header() ...
Fra : Henrik Koksby Hansen


Dato : 10-06-04 10:18

Hej,

Jeg har nedenstående kontrol på min udersider, for at de ikke skal
kunne åbnes udenom index-siden:

---
<?
$siteid = 'forside';
if( $_SERVER['REQUEST_URI'] != '/index.php?id=' . $siteid) {
   header("Location: http://koksby.dk/index.php?id=" . $siteid);
}
?>
---

Og det virker fint på alle sider, pånær forsiden, når man tilgår
f.eks. url:http://koksby.dk ... Her får man nedenstående fejl:

---
Warning: Cannot add header information - headers already sent by
(output started at
/customers/koksby.dk/koksby.dk/httpd.www/index.php:6) in
/customers/koksby.dk/koksby.dk/httpd.www/forside.php on line 4
---

Det virker fint på /whois/index.php hvis man f.eks. tilgår
url:http://koksby.dk/whois/ ...

Nogle ideer? Evt. til en bedre (alternativ) løsning?


/Henrik

 
 
Johan Holst Nielsen (10-06-2004)
Kommentar
Fra : Johan Holst Nielsen


Dato : 10-06-04 10:26

Henrik Koksby Hansen wrote:
> ---
> Warning: Cannot add header information - headers already sent by
> (output started at
> /customers/koksby.dk/koksby.dk/httpd.www/index.php:6) in
> /customers/koksby.dk/koksby.dk/httpd.www/forside.php on line 4
> ---
> Nogle ideer? Evt. til en bedre (alternativ) løsning?

Der må indtet output være på siden - inden headeren bliver sendt!

Sikker på der ikke er et mellemrum, linieskift eller ligende i starten
af filen?

Ellers tag et kig på output control - som måske kan gøre din hverdag
nemmere :D

http://dk.php.net/manual/en/ref.outcontrol.php

mvh
Johan


Henrik Koksby Hansen (10-06-2004)
Kommentar
Fra : Henrik Koksby Hansen


Dato : 10-06-04 10:44

On Thu, 10 Jun 2004 11:25:50 +0200, Johan Holst Nielsen
<johan@weknowthewayout.com> wrote:

>Henrik Koksby Hansen wrote:
>> ---
>> Warning: Cannot add header information - headers already sent by
>> (output started at
>> /customers/koksby.dk/koksby.dk/httpd.www/index.php:6) in
>> /customers/koksby.dk/koksby.dk/httpd.www/forside.php on line 4
>> ---
>> Nogle ideer? Evt. til en bedre (alternativ) løsning?
>
>Der må indtet output være på siden - inden headeren bliver sendt!
>
>Sikker på der ikke er et mellemrum, linieskift eller ligende i starten
>af filen?
>
>Ellers tag et kig på output control - som måske kan gøre din hverdag
>nemmere :D
[...]

Jeg har prøvet nnedenstående:

<? ob_start();
$siteid = 'forside';
if( $_SERVER['REQUEST_URI'] != '/index.php?id=' . $siteid) {
   header("Location: http://koksby.dk/index.php?id=" . $siteid);
}
ob_end_flush();
?>

.... det gør dog ingen forskel... Det er det aller første, der er i
koden - ingen mellemrum eller noget andet før '<?' ..


/Henrik

Henrik Koksby Hansen (10-06-2004)
Kommentar
Fra : Henrik Koksby Hansen


Dato : 10-06-04 10:51

>>> ---
>>> Warning: Cannot add header information - headers already sent by
>>> (output started at
>>> /customers/koksby.dk/koksby.dk/httpd.www/index.php:6) in
>>> /customers/koksby.dk/koksby.dk/httpd.www/forside.php on line 4
>>> ---
>>> Nogle ideer? Evt. til en bedre (alternativ) løsning?
>>
>>Der må indtet output være på siden - inden headeren bliver sendt!
[...]

Ahhh... Nu ser jeg hvad du mener...

Wow... det kommer jeg lige til at rode lidt med, tror jeg..

Det er lidt problematisk, når index.php inkluderer forside.php længere
nede i koden og forside.php så prøver at rode med headeren.. :)


/Henrik

Henrik Koksby Hansen (10-06-2004)
Kommentar
Fra : Henrik Koksby Hansen


Dato : 10-06-04 10:58

On Thu, 10 Jun 2004 11:50:44 +0200, Henrik Koksby Hansen
<news@k0ksby.dk> wrote:

>>>> ---
>>>> Warning: Cannot add header information - headers already sent by
>>>> (output started at
>>>> /customers/koksby.dk/koksby.dk/httpd.www/index.php:6) in
>>>> /customers/koksby.dk/koksby.dk/httpd.www/forside.php on line 4
>>>> ---
>>>> Nogle ideer? Evt. til en bedre (alternativ) løsning?
>>>
>>>Der må indtet output være på siden - inden headeren bliver sendt!
[...]
>Det er lidt problematisk, når index.php inkluderer forside.php længere
>nede i koden og forside.php så prøver at rode med headeren.. :)
[...]

Og så lige for at afslutte dialogen med mig selv (monolog vel
egentlig, så) ...

Jeg løste det ved at smide denne ind i toppen af index.php:

---
<?php if (!$id) header("Location:
http://koksby.dk/index.php?id=forside"); ?>
---

og så virker det hele pludseligt. :)



/Henrik

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

Månedens bedste
Årets bedste
Sidste års bedste