Autor Zpráva
Jary
Profil *
Dobrý večer, chci se zeptat proč mi nefunguje header? Na ic.cz mi to fungovalo jak mělo ale jakmile jsem přešel na placený hosting, tak mi to nefunguje. Ví někdo kde je problém? Děkuju
<?php header("Location: index.php");?>
__construct
Profil
HTTP/1.1 14.30 Location
The field value consists of a single absolute URI.
teda:
<?php header("Location: htttp://www.nieco.sk/index.php");?>
Jary
Profil *
To bohužel neni ten problém :-(
Davex
Profil
Jary:
Většinou to nefunguje kvůli tomu, že je před voláním funkce header() ještě nějaký výstup. Když si zapneš zobrazování chyb, tak by se měla vypsat chyba headers already sent…
Jary
Profil *
Jak mám tu chybu vyvolat?
mattyZEM
Profil
Jary:
Jak mám tu chybu vyvolat?
Nijak, jen jí můžeš vypsat... Na začátek stránky dej
<?php
error_reporting(E_ALL);
?>
Resp. můžeš jí vyvolat, ale je to zbytečnost... Proč bych vyvolával záměrně chybu? :)
Alphard
Profil
Jary:
Ono možná ani není potřeba ji vyvolávat. Máte před header nějaké echo, print, apod. nebo nějaké html před <?php?
Jary
Profil *
Nic nevypíše :-( Já to už nechápu. Hlavně nechápu, že na ic.cz všechno makalo a jakmile jsem to nahrál na placenej hosting, tak na header prdí.
mattyZEM
Profil
Pošlete sem celý kód :)

Mimochodem, notepad dává na začátek stránky divný znak, pak nefunguje ani session_start(). Možná to bude i tím...
Jary
Profil *
Mám to nějak takhle:
<?php
include_once('zahlavi.php');
if(ověření uživatele){
nějaký příkazy.......
} else {
header("Location: http://".$_SERVER['SERVER_NAME']."/index.php");
}
include_once('pata.php');
?>
mattyZEM
Profil
Pošlete sem kód zahlavi.php...
Alphard
Profil
Jary:
Hlavně nechápu, že na ic.cz všechno makalo a jakmile jsem to nahrál
Různé hostingy mají různě nastavený výstupní buffer (jestli je to teda tím, čím myslíme).
Alphard
Profil
[#10]
A vsadím se, že v zahlavi.php je nějaký výpis.
Jary
Profil *
Chyba neni v jednom souboru, ale header se ignoruje úplně ve všech kromě souboru pro přihlášení a odhlášení.
mattyZEM
Profil
[#13] Vsázím dvacijáš... Určitě to bude hlavička...

Jary: Pošlete sem kód zahlavi.php
Jary
Profil *
Záhlaví to nedělá. Jsem vymazal všechno a otestoval, ale pořád výsledek stejnej.
mattyZEM
Profil
Jaký používáte program, v kterém píšete kódy?
Jary
Profil *
Používám pspad, windows-1250. Máte pravdu problém je někde v záhlaví, ale nechápu to. Pokud vymažu všechno comá jen trošku společného s php, tak chyba se stále zobrazuje, ale jakmile vymazu úplně celé zahlaví, tak už header funguje. Mám to celé nějaké posrahazované.
mattyZEM
Profil
Pošlete sem kód záhlaví, jistě Vám řeknu kde je onen zakopaný pes :)
Jary
Profil *
Neřeknete :-) Vadí mu celé zahlaví. Vymazal jsem to až k meta hlavičkám a dokonce i ty mu vadily, alejakmile jsem soubor kompletně vybílil, tak teprve potom začal header fungovat. Nedáváto smysl, ale je to tak.
mattyZEM
Profil
Jary:
Neřeknete :-)
O dvacku? Pokud potřebujete poradit, pak musím znát všechny podrobnosti. Takto můžu jen tipovat, což imho není dobrý nápad.
Davex
Profil
Vždyť píšu v [#4], že před voláním header() nesmí být žádný výstup, tak co na tom nedává smysl?
Jary
Profil *
Prázdný pole vsechno co by mohlo vadit jsem vymazal. Můžu Vám ten soubor poslat na mail? Možná tam mám nějaký boom, ale to pochybuju :-)
mattyZEM
Profil
mondeos@seznam.cz :-)

Posílejte, chytám...
Davex
Profil
Tak to zkusím ještě jinak: ta hlavička vložená pomocí include ze souboru zahlavi.php je ten výstup, který před voláním header() být nemůže. Můžeš to obejít tak, že úplně na začátku tvého skriptu zapneš výstupní buffer pomocí funkce ob_start().
mattyZEM
Profil
Vyřešeno, jak psal davex, bylo to tak :)

řešení:
<?php
if(ověření uživatele){
include_once('zahlavi.php');
nějaký příkazy.......
} else {
header("Location: http://".$_SERVER['SERVER_NAME']."/index.php");
}
include_once('pata.php');
?>
Jary
Profil *
JJ, tohle pomohlo :-) Ob_start();
Jary
Profil *
Můžu se jen zeptat u jakých akcí se tahle funkce nedoporučuje? Děkuju Vám všem
Nox
Profil
U těch co pracují s hlavičkami, tzn. header, session_start...

Případně asi primárnější použití je když chceš zachytávat výstup a měnit ho nebo vypisovat podmíněně nebo si ho uložit do proměnné....

Vaše odpověď

Mohlo by se hodit


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm:

0