Autor | Zpráva | ||
---|---|---|---|
kubatt Profil |
#1 · Zasláno: 2. 12. 2009, 10:50:00
č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 |
#2 · Zasláno: 2. 12. 2009, 10:54:53
|
||
kubatt Profil |
#3 · Zasláno: 2. 12. 2009, 11:53:59
habendorf:
„http://diskuse.jakpsatweb.cz/?action=vthread&forum=9&topic=2111“ ? co tam teda to mi moc nepomohlo pořád chyba :( |
||
habendorf Profil |
#4 · Zasláno: 2. 12. 2009, 12:06:56
kubatt:
Pokud tě trápí „headers already sent“, přečti si třeba tu část o headers already sent ;o) |
||
kubatt Profil |
#5 · Zasláno: 2. 12. 2009, 12:12:35
No :-d už sem zjistil čím to bylo jedním scriptem :-D
|
||
Časová prodleva: 6 dní
|
|||
Bryant Profil |
#6 · Zasláno: 8. 12. 2009, 20:13:53
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 |
#7 · Zasláno: 8. 12. 2009, 20:32:50
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 |
#8 · Zasláno: 8. 12. 2009, 20:51:54
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 :)
|
||
Časová prodleva: 9 dní
|
|||
Josef Svoboda Profil * |
#9 · Zasláno: 18. 12. 2009, 04:10:59
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 |
#10 · Zasláno: 18. 12. 2009, 06:47:36
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 |
#11 · Zasláno: 18. 12. 2009, 07:27:06
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 * |
#12 · Zasláno: 18. 12. 2009, 12:45:49
Ano, to je přesně ono, děkuji Vám, pánové..
|
||
Časová prodleva: 17 dní
|
|||
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 |
#14 · Zasláno: 4. 1. 2010, 22:55:38
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 * |
#15 · Zasláno: 5. 1. 2010, 13:53:05
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? |
||
Časová prodleva: 13 let
|
0