Autor | Zpráva | ||
---|---|---|---|
johnl Profil |
#1 · Zasláno: 23. 9. 2009, 15:53:27 · Upravil/a: johnl
Dobrý den, měl bych otázečku.
Testuji RS který jsem programoval, a na hostingu comehere.cz jsem při přihlášení od serveru dostal následující chybu: Warning: session_start() [function.session-start]: Cannot send session cache limiter - headers already sent (output started at /home/www/cekuj.net/subdomeny/frim/test/cls/impor/config/code.php:1) in /home/www/cekuj.net/subdomeny/frim/test/cls/cls_login.php on line 41 Warning: Cannot modify header information - headers already sent by (output started at /home/www/cekuj.net/subdomeny/frim/test/cls/impor/config/code.php:1) in /home/www/cekuj.net/subdomeny/frim/test/cls/cls_login.php on line 43 První chyba session_start() nevím čím je spůsobena ale session se vytvoří, a ta druhá chyba je obyčejný zajímavé je že v obou chybách je zmíněn soubor code.php ten obsahuje proměné tohoto typu $lang['text'] = 'text'; $lang['text'] = 'text'; nevýte čím tyto chyby mohou být způsobeny? |
||
WanTo Profil |
#2 · Zasláno: 23. 9. 2009, 15:57:43
Nepoužíváš náhodou kódování utf-8?
|
||
johnl Profil |
#3 · Zasláno: 23. 9. 2009, 16:00:10
WanTo:
„Nepoužíváš náhodou kódování utf-8?“ Používám, vadí to? |
||
AM_ Profil |
#4 · Zasláno: 23. 9. 2009, 16:04:15
vadí, to znamená, že máš zřejmě na začátku souborů BOM (3-bytová identifikace UTF8), se kterou si PHP neporadí a posílá ji jako výstup. V textovém editoru, ve kterém stránku píšeš, by mělo být možné BOM vypnout.
|
||
WanTo Profil |
#5 · Zasláno: 23. 9. 2009, 16:05:51
johnl
Ne, nevadí. Občas se ale stává, že jsou na začátku utf-8 souboru nějaké bajty tvořící netisknutelné znaky, podle kterých se dá rozpoznat, že je soubor v utf-8. Přidávají to tam tuším nějaké editory, já sám jsem s tím nikdy problém neměl, každopádně když tyhle počáteční bajty zůstanou na začátku PHP souboru, tak se odešlou do prohlížeče a s hlavičkama je amen. Takže bych si asi zkusil pohrát s nastavením editoru. |
||
johnl Profil |
#6 · Zasláno: 23. 9. 2009, 16:09:11
AM:
„V textovém editoru, ve kterém stránku píšeš, by mělo být možné BOM vypnout.“ Používám PSpad, nevíš kde se to dá vypnout? |
||
WanTo Profil |
#7 · Zasláno: 23. 9. 2009, 16:10:25
|
||
johnl Profil |
#8 · Zasláno: 23. 9. 2009, 16:17:35 · Upravil/a: johnl
Tak jsem zjistil že "IDENT. byty v kodovani UTF-8" mám vypnuté ;-)
A problém přetrvává.. |
||
WanTo Profil |
#9 · Zasláno: 23. 9. 2009, 16:44:32
A nemáš na začátku před <?php nějaké prázdné řádky?
|
||
johnl Profil |
#10 · Zasláno: 23. 9. 2009, 17:13:19
WanTo:
„A nemáš na začátku před <?php nějaké prázdné řádky?“ Nemám kód mám takhle: 1<?php <?php
session_start();
pokračování kódu
?> A před <? žádné znaky ani řádky nejsou... |
||
Joker Profil |
#11 · Zasláno: 23. 9. 2009, 17:16:24
johnl:
A je to v tom souboru code.php? |
||
johnl Profil |
#12 · Zasláno: 23. 9. 2009, 17:19:06 · Upravil/a: johnl
|
||
Jan Tvrdík Profil |
#13 · Zasláno: 23. 9. 2009, 17:25:26
johnl:
Místo <? používej <?php Ty informace z PHP jsou celkem jasné – první řádek v souboru code.php odeslal nějaký výstup, pravděpodobně BOM. Začti tím, že vytvoříš zcela nový soubor a do něj obsah souboru code.php překopíruješ a pak ním soubor code.php přepíšeš. |
||
johnl Profil |
#14 · Zasláno: 23. 9. 2009, 17:33:09
Tak jsem to změnil, ale místo toho mi to teď vypisuje chybu
Warning: session_start() [function.session-start]: Cannot send session cache limiter - headers already sent (output started at /home/www/cekuj.net/subdomeny/frim/test/cls/cls_login.php:5) in /home/www/cekuj.net/subdomeny/frim/test/cls/cls_login.php on line 40 Znamená to že opět soubor cls_login.php odesílá nějaké BOM? Já jsem totiž zkoušel udělat s tím souborem úplně to samé co s tím code.php a nezabralo to... |
||
Jan Tvrdík Profil |
#15 · Zasláno: 23. 9. 2009, 19:08:12
johnl:
Podívej se na 5. řádek v souboru cls_login.php. Na BOM to v tomto případě nevypadá. |
||
johnl Profil |
#16 · Zasláno: 23. 9. 2009, 19:18:34
Na 5 řádku je
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" > <meta http-equiv="Content-Type" content="text/html; charset=utf-8" > |
||
Jan Tvrdík Profil |
#17 · Zasláno: 23. 9. 2009, 21:32:45
johnl:
Funkci session_start musíš volat před jakýmkoliv výstupem. Ty ji voláš na řádku 40 a výstup máš mnohem dříve. |
||
AM_ Profil |
#18 · Zasláno: 24. 9. 2009, 14:19:30
johnl
je docela divné, když první výstup, který posíláš, je meta tag, a ne <!DOCTYPE... nebo <html><head>... to už tedy nesouvisí s problémem se session, ale spíš to napovídá o zmršené kompozici stránky. |
||
johnl Profil |
#19 · Zasláno: 24. 9. 2009, 18:20:41 · Upravil/a: johnl
AM:
„když první výstup, který posíláš, je meta tag, a ne <!DOCTYPE... nebo <html><head>...“ Já si nejsem vědom že bych někde posílal nejdřív meta tag, jako první mám určitě doctype.. Můžeš mi říct kde jsi to vyděl? |
||
AM_ Profil |
#20 · Zasláno: 24. 9. 2009, 19:01:38
Vzhledem k tomu, že ti to hlásí, že hlavičky byly odeslány v souboru tom a tom na řádce 5, a tam je ten meta tag, tak to znamená, že tam začíná výstup, pokud se nemýlím
|
||
johnl Profil |
#21 · Zasláno: 24. 9. 2009, 19:07:11 · Upravil/a: johnl
Takhle začíná kód:
1<?php <?php
session_start();
include "impor/config/code.php"; include "impor/data.inc"; ?>
<!doctype html public "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<head>
<title>CLS - Login</title>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" > ... |
||
Chamurappi Profil |
#22 · Zasláno: 24. 9. 2009, 20:06:49
Reaguji na AM:
„spíš to napovídá o zmršené kompozici stránky“ Co je zmršeného na tom, když vynechá zbytečnosti? Moje kódy také občas začínají <meta> elementem a nemyslím si, že tím trpí „kompozice stránky“. Reaguji na johnla: „Na 5 řádku je“ Já bych řekl, že to je na řádku 7. „in /home/www/cekuj.net/subdomeny/frim/test/cls/cls_login.php on line 40“ Neznamená to náhodou, že chyba je na řádku 40? |
||
johnl Profil |
#23 · Zasláno: 24. 9. 2009, 21:54:45
Chamurappi:
> „Na 5 řádku je“ > Já bych řekl, že to je na řádku 7. Pravda, já to totiž bral jen z HTML (bez php) (což je chyba) No, teď už mám skoro všechny prolémi vyřešené, avšak poslední který mi zbývá je tato chyba Warning: session_start() [function.session-start]: Cannot send session cache limiter - headers already sent (output started at /home/www/cekuj.net/subdomeny/frim/test/cls/index.php:1) in /home/www/cekuj.net/subdomeny/frim/test/cls/index.php on line 2 Na řádku dvě mám session_start(); session_start(); |
||
Jan Tvrdík Profil |
#24 · Zasláno: 24. 9. 2009, 22:02:39
johnl:
Budu se opakovat, ale: „Začti tím, že vytvoříš zcela nový soubor a do něj obsah souboru index.php překopíruješ a pak ním soubor index.php přepíšeš.“ |
||
johnl Profil |
#25 · Zasláno: 24. 9. 2009, 22:23:40 · Upravil/a: johnl
Děkuji všem za pomoc..
Jan Tvrdík: Opakování je matka moudrosti ;-) |
||
Časová prodleva: 16 let
|
Toto vlákno je staré, již dlouho do něj nikdo nepřispíval.
Informace a odkazy zde uváděné už nemusejí být aktuální. Nechcete-li řešit zde uvedenou konkrétní otázku, založte si vlastní vlákno, nepište do tohoto. Vložíte-li sem nyní příspěvek, upoutáte pozornost mnoha lidí a někteří z nich si jen kvůli vám přečtou i všechny předcházející příspěvky. Předpokládáte-li, že váš text skutečně bude hodnotný, stiskněte následující tlačítko:
Běda vám, jestli to bude blábol.
0