Autor Zpráva
kubanec
Profil
Dobrý den,
mám problém s přihlášením v adminu. Na indexu v adminu zadám login a heslo a odešlu a na stránce over_passwd.php (kde by mělo jen projet ověření hesla) mi to hodi chyby:

Resource id #3
Warning: session_start(): Cannot send session cookie - headers already sent by
(output started at /home/S/abcd/public_html/config.inc.php:22) in /home/S/abcd/public_html/admin/over_passwd.php on line 4

Warning: session_start(): Cannot send session cache limiter - headers already sent
(output started at /home/S/abcd/public_html/config.inc.php:22) in /home/S/abcd/public_html/admin/over_passwd.php on line 4

Warning: Cannot modify header information - headers already sent by
(output started at /home/S/abcd/public_html/config.inc.php:22) in /home/S/abcd/public_html/admin/over_passwd.php on line 7


Korektně by mě to mělo hodit na stránku log_ok.php, což se bohužel neděje:(
Ještě pro jistotu doplňuji zdrojaky over_passwd.php a config.ini.php:


over_passwd.php
<?
require "../config.inc.php";
if ($un==$username and $pw==$passwd){
session_start();
session_register('cas');
$cas=date("y,m,d");
header('location:log_ok.php');
}
else {
header ('location:index.php');
}

?>

config.ini.php
<?
$un="xxx";
$pw="xxx";



?>


Děkuji moc kubanec
Marty
Profil
Předpokládám že to: require "../config.inc.php"; je překlep(místo správného require "../config.ini.php";)?
Hugo
Profil
Problem je v tom, ze pred presmerovanim dojde k odeslani nejakeho vystupu prohlizeci. Pravdepodobne je to v tom vlozenem souboru, zkontroluj jestli nemas nekde echo, nebo jestli nemas pred nebo za <?php ?> volny radek nebo mezeru.
krteczek
Profil
no jestli se nepletu tak by mělo byt nejprve tohle:

<?
session_start();

a teprve potom mužeš includovat
Hugo
Profil
krteczek

include IMHO nevadi, pokud ten skript negeneruje nejaky vystup.

marty

Pokud by tam mel cestu k neexistujicimu souboru, tak to vyhodi chybu
Marty
Profil
include IMHO nevadi.
include opravdu nevadí, bude to nějakým textovým výstupem ještě před session_start, jak říkal Hugo
krteczek
Profil
Hugo: no právě z těch důvodů že člověk kolkrát neví jestli nějký výstup bude nebo ne je lepší začít session_start() jako první, ještě to jde ošetřit tak že se celý soubor uzavže mezi
	ob_start();
a
 ob_end_flush();


krteczek
Leo
Profil
ob_start a spol. slouzi k uplne jinym ucelum, ne jako pojistka proti zbastlenemu kodu, Leo
kubanec
Profil
Marty
Je to přesně, jak psal Hugo, mám tam sice .inc.php, ale tím to není... I když jsem to všude změnil na .ini, tak to nefacha. Přepsal jsem samosebou i odkazy na .ini...:(
krteczek
přehodil jsem ten session_start() na začátek a taky nic...:(
Hugo
Profil
kubanec

Ono nejde jen o session_start(), vadi i to presmerovani, protoze se posila jako HTTP hlavicka. Takze pokud je jakykoliv vystup pred tim, tak to hazi chybu. Zkontroloval bych ten include a smazal vsechny mezery a prazdne radky mimo zavorky <?php ?>
kubanec
Profil
Hugo

Ještě prosím asi hloupá otázka.... Co to je ten include:)?
Ď. k
Hugo
Profil
include slouzi k vlozeni souboru. Podivej se do manualu

http://cz.php.net/manual/en/function.include.php
zdeněk
Profil *
psal jsem to i v sousední diskuzi o této hlášce, (konkrétně - Cannot send session cache limiter ) asi to může souviset i s nějakým nastavením, (možná nastavení urovně výpisu warningu), protože jeden a ten samý skript mi chodí na jedné lokální stanici, na webhostingu a na druhé lokální stanici háže tytu chybu.
fey
Profil *
Problem je v tom, ze pred presmerovanim dojde k odeslani nejakeho vystupu prohlizeci. Pravdepodobne je to v tom vlozenem souboru, zkontroluj jestli nemas nekde echo, nebo jestli nemas pred nebo za <?php ?> volny radek nebo mezeru.
diiky porad mi vrtalo v cem mam problem a az tady mi google nasel odpoved... a ponauceni na priste.. zacinat <?php vzdy uplne od prvniho znaku dokuemntu a odradkovavat si az za tim :)
Toto téma je uzamčeno. Odpověď nelze zaslat.

0