Autor | Zpráva | ||
---|---|---|---|
T1000 Profil |
#1 · Zasláno: 15. 9. 2007, 21:18:40
ahoj,
nevim proč, ale server mi hlásí chybu v příkazu header. Přesně píše: Warning: Cannot modify header information - headers already sent by (output started at /hosting/unrealtournament3.cz/web/www/levemenu.php:9) in /hosting/unrealtournament3.cz/web/www/skripty.php on line 697 a příkaz vypadá takhle: header("Location: index.php?nadpis=Seznam lidí&smazan=smazan"); Takže se to nepřesměruje... Možná by to vyřešila fukce na vypnutí hlašení chyb, ale chyby by se měly řešit. |
||
svadla Profil |
#2 · Zasláno: 15. 9. 2007, 21:29:30
T1000
pred header nesmi byt echo ani zadny jiny vystup na obrazovku |
||
TFSi Profil |
#3 · Zasláno: 15. 9. 2007, 21:32:21
T1000
a příkaz vypadá takhle Hele, příkaz je třeba "Sedni!", nebo "Lehni!", ale Header(...) vážně příkaz není. V té chybě máš napsáno, že fce Header() nemůže upravit informace v hlavičce, protože jsi hlavičky už odeslal (přesněji v souboru levelmenu.php na řádku 9) Možná by to vyřešila fukce na vypnutí hlašení chyb No to by určitě nevyřešilo... chyby by se měly řešit To by měly ;) |
||
T1000 Profil |
#4 · Zasláno: 15. 9. 2007, 21:35:25
no před tím je práce s databází...nic jineho, ale je to v podmínce
takhle: if (sdaf) {mysql_query(); header();} |
||
T1000 Profil |
#5 · Zasláno: 15. 9. 2007, 21:42:48
to TFSi
a co s tím mám udělat? |
||
svadla Profil |
#6 · Zasláno: 15. 9. 2007, 21:59:01
T1000
jen tak mimochodem, na co ten header pouzivas? tak sem posli tech 9 radku kodu.... a nevola ten tvuj skripty.php nejakej jinej soubor? |
||
T1000 Profil |
#7 · Zasláno: 15. 9. 2007, 22:01:44
no na přesměrování, něco se upraví v databázi a potom by se to mělo přesměrovat...
no jakých 9 řádků? v tom souboru levemenu.php? |
||
svadla Profil |
#8 · Zasláno: 15. 9. 2007, 22:08:02
T1000
"no na přesměrování" no jasny, od toho header je, ja jen jestli nemuzes pouzit neco jineho... me se tato chyba stavala kdyz pred zavolanim header byla treba jen mezera (treba pred <?) |
||
T1000 Profil |
#9 · Zasláno: 16. 9. 2007, 08:23:06
jak to myslíš?
|
||
nightfish Profil |
#10 · Zasláno: 16. 9. 2007, 08:59:03
T1000
RTF FAQ |
||
Joker Profil |
#11 · Zasláno: 16. 9. 2007, 09:10:54
Možná by to vyřešila fukce na vypnutí hlašení chyb
Hehehe, omlouvám se, ale připomnělo mi to jeden díl Simpsonových, kde Homer když se mu v autě rozsvítila kontrolka "závada motoru", řešil to přelepením kontrolky náplastí :-) T1000 Stručně řečeno: Před voláním funkce header() nesmí být odeslán prohlížeči žádný výstup. Tj. žádné echo() nebo cokoliv, co něco napíše na stránku. Navíc první znaky toho souboru musí být začátek PHP skriptu (před nimi ani mezera či prázdný řádek, u kódování UTF pozor na identifikační bajty UTF, které některé editory automaticky vkládají na začátek souboru a ještě navíc je nezobrazují) Ta chyba píše, že výstup začal v levemenu.php na řádku 9, takže bych hledal tam. Ale už vzhledem k názvu levemenu.php mám podezření, že ten soubor něco vypisovat bude. Další varianta je použít řízení výstupu ( http://cz.php.net/manual/cs/ref.outcontrol.php ), potom jde použít header() kdykoliv až do odeslání výstupu. |
||
T1000 Profil |
#12 · Zasláno: 16. 9. 2007, 09:51:27
no podívám se.
Hehehe, omlouvám se, ale připomnělo mi to jeden díl Simpsonových, kde Homer když se mu v autě rozsvítila kontrolka "závada motoru", řešil to přelepením kontrolky náplastí :-) u tohohle jsem se zasmál :-D |
||
krteczek Profil |
#13 · Zasláno: 16. 9. 2007, 11:30:58
T1000: bohužel, to nebylo k smíchu, ale k pláči...
|
||
T1000 Profil |
#14 · Zasláno: 16. 9. 2007, 13:42:33
takhle vypadá ten soubor levemanu.php (ten je naincludovaný do indexu):
<div class="cast_menu"> <img src="infout3.gif" alt="info UT 3"> <p class="polozka"><a href="index.php"> Novinky</a></p> <p class="polozka"><a href="index.php?nadpis=Základní info"> Základní info</a></p> <p class="polozka"><a href="index.php?nadpis=Linky na preview"> Linky na preview</a></p> <p class="polozka"><a href="index.php?nadpis=Recenze"> Recenze</a></p> <p class="polozka"><a href="index.php?nadpis=Linky na recenze"> Linky na recenze</a></p> |
||
djlj Profil |
#15 · Zasláno: 16. 9. 2007, 13:45:19
no před tím je práce s databází...nic jineho
Tomu kódu, který jsi napsal, říkáš „nic jiného“? :) Přečti si znovu celou diskusi. |
||
T1000 Profil |
#16 · Zasláno: 16. 9. 2007, 13:47:10
no to jo ale to je v jinem souboru
|
||
Alphard Profil |
#17 · Zasláno: 16. 9. 2007, 13:48:50
to je jedno, jestli to includuješ před header, tak je to jasné, výstup jako výstup
|
||
T1000 Profil |
#18 · Zasláno: 16. 9. 2007, 13:58:00
tak co s tím?
|
||
djlj Profil |
#19 · Zasláno: 16. 9. 2007, 14:01:05
T1000
Řešení tady máš v diskusi napsané už několikrát. Neodesílat před hlavičkami žádný výstup. Přesměrování dej na začátek všech skriptů. |
||
T1000 Profil |
#20 · Zasláno: 16. 9. 2007, 14:04:48
nj, ale to nemůžu udělat. Nešlo by to nějak udělat, aby to nevadilo?
|
||
daop Profil * |
#21 · Zasláno: 16. 9. 2007, 14:07:26
T1000 jedna mala poznamka, urcite si header osetri pres session promenne, muze se ti stat ze najaky ftipalek navstivi stranku:
index.php?nadpis=Seznam lidí&smazan=smazan pred ten url prida adresu tveho hostinhu a uz si zacne vesele mazat co se mu zlibi. Tak doporucuji ve funkci ktera ma provadet mazani overovat opravnenost pouziti teto funkce, respektive u vsech funkci pouzivat testovani opravneni pouziti..... Pokut to uz mate tak to je ok, jen jsem to radsi rekl. Me se totiz neco podobneho take stalo. sice nic nesmazaly ale prislo me pres cca 1800 emailu jako report chyby. a kdyz jsem to analizoval, tak to byly vesmes utoky ma muj web. jinak pokud se tice toho headru, pokud nechces nic delat s kodem, nebo je kod uz tak slozity ze jeho predelani je neumerne pouzij fce, ktery veskery vystup nejprve nactou do externiho buferu a po po zadani specifickeho prikazu se teprve odesle prohlizeci. Vyhoda je zrejma. Header muzete pouzivat kdy se vam zachce. Ale spise doporuchji si kod radne promyslet. Sice take pouzivam tyto funkce na zachytavani vystupu ale to vystup jeste predavam funkci ktera formatuje html kod do elegantni podoby. Kdyz date potom zabrazit zdojak html, tak kod je velice prijemny...... ob_start(); timto dostanete cely vystup do promenne..... samozrejme existuje fce, ktera to udela vsechno naraz, ale na tu se podivejte do manualu..... aby jsete se take neco naucil.... :). $output = ob_get_contents(); ob_end_clean(); print $output ; |
||
daop Profil * |
#22 · Zasláno: 16. 9. 2007, 14:14:00
T1000
nj, ale to nemůžu udělat. Nešlo by to nějak udělat, aby to nevadilo? pravdepodobne udelas nejaky test a podle vysledku neco vytisknes.... Nasleduje dalsi test a tedka zjistis ze otrebujes provest odskos na jinou stranu. Ze jo? Ale tedka nastava problem, uz jsem neco poslal na vystup ale potrebuji odeslat novou hlavicku, ktera samozrejme uz nejde. Tak dalsi ekegantni reseni je, nahradit vsechny prikazy echo a print, promennou.... to znamena: echo "neco tisknu"; echo "dalsi tisk"; nahradit $text ="neco tisknu"; $text .="dalsi tisk"; no a pokud potrebujes pouzit header, tak jsi nic neodeslal na vystup a klidne posny novou hlavicku.... Na konci fce, proved samotny tisk vsech textu..... echo $text; kde bude vsechne text vcetne html znaku... |
||
T1000 Profil |
#23 · Zasláno: 16. 9. 2007, 14:15:41
no jasný to mám chráněné. No kod je velmi slozitý, ale myslím, že to ani líp udělat. Snad to půjde, jestli ne, tak se na to vykašlu, je to stejně jenom pro mě (mám to jenom v administraci).
|
||
T1000 Profil |
#24 · Zasláno: 16. 9. 2007, 14:20:12
a kam mám ob_start napsat? na začátek stránky nebo nad header?
|
||
Alphard Profil |
#25 · Zasláno: 16. 9. 2007, 14:24:26
na začátek
|
||
T1000 Profil |
#26 · Zasláno: 16. 9. 2007, 14:27:05
ok, díky Vám všem
|
||
Časová prodleva: 17 let
|
0