Autor | Zpráva | ||
---|---|---|---|
ananasovapasta Profil * |
nevíte jak opravit tuto chybu :
session_start() [function.session-start]: Cannot send session cache limiter - headers already sent (output started at /storage/www1/1/site54011/wwwroot/menu.php:1) v kódu: <?php require 'FW/hr.php'; require 'FW/lc.php'; lc::loginControl(); ?> |
||
ananasovapasta Profil * |
#2 · Zasláno: 22. 12. 2009, 23:32:18
a třída lc :
<?php class lc{ /** * lc::loginControl() * zjisťuje zda uživatel je přihlášen, pokud ne přesune uživatele na stránku s přihlašovacím formulářem */ public static function loginControl(){ session_start(); if(isset($_SESSION['login'])){ if($_SESSION['login']=='O'||$_SESSION['login']=='P'||$_SESSION['login']=='M'){ }else{ header('Location:index.php'); } }else{ header('Location:index.php'); } } } ?> |
||
Alphard Profil |
#3 · Zasláno: 22. 12. 2009, 23:41:06
Nejčastější potíže s PHP (FAQ)
BOM nebo jiný výstup (mezera, chybová hláška, ...) |
||
ananasovapasta Profil * |
#4 · Zasláno: 22. 12. 2009, 23:44:37
Alphard:
„BOM nebo jiný výstup (mezera, chybová hláška, ...)“ bohužel odpovědi nerozumím , nevím co má tato chybová hláška společného s BOM |
||
Alphard Profil |
#5 · Zasláno: 22. 12. 2009, 23:53:41
ananasovapasta:
„bohužel odpovědi nerozumím , nevím co má tato chybová hláška společného s BOM“ A do toho FAQ jste se podíval? |
||
ananasovapasta Profil * |
#6 · Zasláno: 23. 12. 2009, 00:01:41
ano, ale nic o té chybě tam nevidím
|
||
Alphard Profil |
#7 · Zasláno: 23. 12. 2009, 00:07:54
Jestli nic z tohoto nepomohlo, tak fajn, budeme to řešit dál, ale musíte to napsat.
headers already sent... Pokud už byl generovaný nějaký výstup, tak už nelze používat funkce header(), setcookie() ani session_start(). Jejich volání skončí chybou. Přesvědčete se, že před začátkem <?php ?> není žádný text (ani mezera) a že nebylo nic odesláno třeba funkcemi jako echo nebo print. Pokud je text v UTF-8, tím výstupem může být i tzv. BOM signatura, vizte výše zmíněný Divný znak (čtvereček).... Divný znak (čtvereček) na začátku includovaného souboru v UTF-8 Soubor v kódování UTF-8 a UTF-16 může začínat takzvanou BOM signaturou. V případě UTF-8 je sice zcela zbytečná, přesto ji některé editory vkládají. Řešením je ve svém editoru nastavit, aby BOM nevkládal, nebo to nějakým způsobem odmazat. V některých editorech to nelze. Vizte relevantní článek (maciweb.net). Odkaz najdete na původní stránce. A stručný popis UTF-8 |
||
ananasovapasta Profil * |
#8 · Zasláno: 23. 12. 2009, 00:18:22
no zadny znak pred <?php není a ten čtvereček by se zobrazil na výstupu ne?
takze bohuzel vazne nevim v cem je problem ... |
||
Alphard Profil |
#9 · Zasláno: 23. 12. 2009, 00:23:54 · Upravil/a: Alphard
A v menu.php je jenom tohle?
<?php require 'FW/hr.php'; require 'FW/lc.php'; lc::loginControl(); ?> Upravuji, já bych session_start() nedával do metody. Dejte ho na začátek před všechny include a třeba bude po problému. |
||
ananasovapasta Profil * |
odebrání z loginControl metody session_start() a přidání session_start na začátek před requiry vede k této chybě :
Smyčka při přesměrování Server přesměrovává požadavky na tuto adresu sám na sebe a to takovým způsobem, které zabraňují jejich dokončení. * Tento problém může být způsoben zakázáním nebo odmítnutím cookies. a menu.php obsahuje <?php session_start(); require 'FW/hr.php'; require 'FW/lc.php'; lc::loginControl(); ?> <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <html> <head> <title></title> <link rel='StyleSheet' href="css/menu.css" type="text/css" > </head> <body> <table> <tr> <td> <table > <?php hr::echoEmployeeMenuSection(); hr::echoDepartmentMenuSection(); ?> <tr> <td> <img alt='' src='images/gear_64.png' ></td> <td> <a href='roles.php' target='content'>Roles</a></td> </tr> <tr> <td> </td> <td> <a href='addRoleForm.php' target='content'>+ ADD</a></td> </tr> <tr> <td> </td> <td> <a href='plannedRoles.php' target='content'>+ PLAN</a></td> </tr> <tr> <td> <img alt="" src="images/block_64.png" > </td> <td> <a href='logout.php' target="_parent">LOGOUT</a></td> </tr> </table> </td> <td> </td> </tr> </table> </body> </html> Moderátor Majkl578: Vkládej prosím kódy mezi značky [pre] a [/pre] (stačí kliknout na ).
|
||
ananasovapasta Profil * |
#11 · Zasláno: 23. 12. 2009, 01:10:51
a co je jeste divny, ze na nejakej strankach mi to tu chybu nehlasi ale na nekterych jo, ale kazda zacina stejne ..
|
||
Majkl578 Profil |
#12 · Zasláno: 23. 12. 2009, 03:43:43 · Upravil/a: Majkl578
Smyčka v nejčastěji přesměrování znamená, že script přesměrovává sám na sebe a tím tvoří nekonečnou smyčku. Může to být způsobené například použitím header('Location: index.php') v souboru index.php na místě, kde se funkce vždy zavolá.
|
||
nightfish Profil |
#13 · Zasláno: 23. 12. 2009, 09:16:27
ananasovapasta:
> no zadny znak pred <?php není a ten čtvereček by se zobrazil na výstupu ne? > takze bohuzel vazne nevim v cem je problem ... PHP tvrdí, že je... takže jaký používáš editor? |
||
ananasovapasta Profil * |
#14 · Zasláno: 23. 12. 2009, 11:37:17
nightfish:
„PHP tvrdí, že je... takže jaký používáš editor?“ phpDesigner |
||
ananasovapasta Profil * |
#15 · Zasláno: 23. 12. 2009, 12:20:27
tak už se mi to podařilo rozchodit, díky moc za pomoc :)
pro každého kdo dělá v php designeru je to file-> file encoding |
||
Časová prodleva: 14 let
|
0