Autor Zpráva
kubatt
Profil
čaute prosímvás mám na webu takovou velkou chybu !!!
a to tu že mi nefunguje
header("location: sdjadia.php");

vypisuje to toto
Warning: Cannot modify header information - headers already sent by (output started at /9p/xf.cz/v/vseproweb/s/index.php:140) in /9p/xf.cz/v/vseproweb/s/index.php on line 156


fakt nvm čím to bude jinak to šlo tady je stránka
Odkaz
habendorf
Profil
http://diskuse.jakpsatweb.cz/?action=vthread&forum=9&topic=2111
kubatt
Profil
habendorf:
http://diskuse.jakpsatweb.cz/?action=vthread&forum=9&topic=2111
? co tam teda to mi moc nepomohlo pořád chyba :(
habendorf
Profil
kubatt:

Pokud tě trápí „headers already sent“, přečti si třeba tu část o headers already sent ;o)
kubatt
Profil
No :-d už sem zjistil čím to bylo jedním scriptem :-D
Bryant
Profil
Takže kdy mam tento kód, tak rpostě fungovat nemůže? Když k tomu aby se ta funkce začala konat tak potřebuju před ní zatad Session_Start()?

if(!isset($_SESSION['prihlasen']) and @$_SESSION['prihlasen']!=1){        
  header("Location: index.php");
  exit;
}


Jsou tedy nějaké alternativy?
AM_
Profil
Bryant:
session_start() posílá nějaké hlavičky? leda v případě, že session_start() selže, ale výpis chyby se dá potlačit.
příště než se zeptáš, tak si ten kód zkus pustit, vypadá docela blbě tvrdit o funkčním kódu, že nefunguje :) že je ta podmínka blbě napsaná, je další věc; to za "and" je úplně zbytečné, pokud není nastaveno $_SESSION['prihlasen'], tak už to asi těžko bude rovno jedné :) myslel jsi zřejmě:

if(!isset($_SESSION['prihlasen']) or $_SESSION['prihlasen']!=1){

bez zavináče; případ neexistující proměnné je ošetřen přes isset

nebo

if(@$_SESSION['prihlasen']!=1){

jeden z mála případů, kdy bych toleroval použití zavináče kvůli zkrácení zápisu - výsledek bude stejný, jako u předchozího kusu kódu.

poznámka na okraj, pokud nutně potřebuješ mít něco na výstupu a pak až odeslat hlavičky, lze to přes output buffer (funkce ob_*), ale snad každý kód lze napsat tak, aby se hlavička odeslala před výstupem - takže toto není "spásné řešení", ale spíš "pomůcka, ale jen když přesně vím, co dělám".
Bryant
Profil
No já právě potřeboval aby to rovno jedné nebylo ;) ... a za ten můj předchozí dotaz se omlouvam, nějak jsem zazmatkoval, měl jsem totiž v souboru includovanej zahlavi.php kde byla samozřejmě hlavička stránky, tak jsem to jen poupravil a už to jede, ale za radu díky :)
Josef Svoboda
Profil *
Hezký den,
spousta lidí řeší problém s 'headers already sent', já řeším situaci, kdy před headerem provedu výpis printem (echem), ale header se mi provede a neobjeví se mi žádné warning. Nerad bych to ignoroval, rád bych věděl, proč se tak děje. Předkládám kód, který mi na PHP 5.2.10 a Apachi 2.2.13 headery pošle i po výstupu. Pokud bude řešení triviální a poukáže spíše na to, že jsem dané problematice neporozuměl, omluvte mě prosím.

<?php

    ini_set('display_errors', 1);    
    error_reporting(E_ALL);
    
    echo "<html><body>data pred headerem; ocekavam, ze se toto vypise a header hodi warning (a neposle se)</body></html>";

    
    //je jedno, jaky header pouziji, posle se
    
    //header("".$_SERVER["SERVER_PROTOCOL"]." 200 OK");
    //header("".$_SERVER["SERVER_PROTOCOL"]." 503 Service Temporarily Unavailable");
    header("Location: http://www.seznam.cz");
      
?>



Díky za Váš čas..
Alphard
Profil
Josef Svoboda:
Jedno z vysvětlení může být, že má váš server nastavený buffer. Pak by bylo možné odeslat hlavičku dříve, než se odešle "první dávka výstupu". Zkuste dát ten výstup do echo delší, třeba to už nepůjde.
nightfish
Profil
Josef Svoboda:
podívejte se na výstup funkce phpinfo() na položku output_buffering
pokud u ní bude nějaké číslo, tak udává počet bajtů, které se uloží do bufferu před tím, než je výstup poslán prohlížeči
Josef Svoboda
Profil *
Ano, to je přesně ono, děkuji Vám, pánové..
SkyVessel
Profil *
Pro vkládání nových příspěvků používám jako autorizaci toto:

  header('WWW-Authenticate: Basic realm="Ověření identity člena"');
  header('HTTP/1.0 401 Unauthorized');


... Jak lze napsat něco pro "logout"?? Chci odejít od kompa, tak potřebuji zrušit autorizaci, ale nwm jak. Díky předem

Moderátor Majkl578: Vkládej prosím kódy mezi značky [pre] a [/pre] (stačí kliknout na ).
Aesir
Profil
SkyVessel:
Na tohle jste si měl založit nové téma, vůbec to s tímto nesouvisí.
Jinak:
1.) Při pokusu o dohledání informací se dočtete, že to není běžnou cestou možné
2.) Ale dá se to obejít
SkyVessel
Profil *
sry za vlákno...
ad1 - je to anglicky, takže mi to moc nepomohlo
ad2 - z kodu jsem to celkem pochopil, takže díky a ještě se zeptám, za jak dlouho vyprší sama ta autorizace?

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: