Warning
14 отговора
305 прегледа
Warning
Warning: Cannot send session cache limiter - headers already sent (output started at c:\apache\htdocs\page.php:2) in c:\apache\htdocs\page.php on line 163
Значи юзъра се логва в една форма и след проверката на парола, ако е вярна се изпълнява:
<?php
session_start();
$_SESSION['user'] = "$user"; // $user е информацията от формата
?>
по-надолу има линк към друга страница:
<?php
echo '<a href="page.php?' . SID . '">page 2</a>';
?>
като на страница page.php трябва да се изпише това което пази сесията
<?php
session_start();
echo $_SESSION['user'];
?>
Само дето дава грешката, която съм написал най-горе и след това изписва каквото трябва.
На какво се дължи - какво съм оплескал?
Благодаря Ви много!
Значи юзъра се логва в една форма и след проверката на парола, ако е вярна се изпълнява:
<?php
session_start();
$_SESSION['user'] = "$user"; // $user е информацията от формата
?>
по-надолу има линк към друга страница:
<?php
echo '<a href="page.php?' . SID . '">page 2</a>';
?>
като на страница page.php трябва да се изпише това което пази сесията
<?php
session_start();
echo $_SESSION['user'];
?>
Само дето дава грешката, която съм написал най-горе и след това изписва каквото трябва.
На какво се дължи - какво съм оплескал?
Благодаря Ви много!
Re: Warning
Забравих да кажа, кой е 163-ти ред
162. <?php
163. session_start();
164. echo $_SESSION['user'];
165. ?>
162. <?php
163. session_start();
164. echo $_SESSION['user'];
165. ?>
Re: Warning
Хедърът за сесията трябва да бъде първи. Ако към клиента се изпрати дори един байт преди session_start() дава такава грешка.
Провери дали в редовете от 1 до 161 не става нещо такова - може да е интервал, нов ред или друг символ(и).
Успех
И най-ярките личности си плащат тока.
Провери дали в редовете от 1 до 161 не става нещо такова - може да е интервал, нов ред или друг символ(и).
Успех
И най-ярките личности си плащат тока.
Re: Warning
Много коварна грешка:
----------------------------------------
<?php
...
?>
------------------------------------------
Един такъв забравен нов ред в началото на файл се изпраща към браузъра и после забрави за хедъри. Ако много проваля логиката това неизпращане - открих, че включването на output buffering помага --> изпратените неща не се пращат веднага и имаш "втори" шанс да си играеш с хедъри преди да са заминали към клиента.
--
"Agile is a mindset, not a set of practices, rules, or tools."
Tom Poppendieck
----------------------------------------
<?php
...
?>
------------------------------------------
Един такъв забравен нов ред в началото на файл се изпраща към браузъра и после забрави за хедъри. Ако много проваля логиката това неизпращане - открих, че включването на output buffering помага --> изпратените неща не се пращат веднага и имаш "втори" шанс да си играеш с хедъри преди да са заминали към клиента.
--
"Agile is a mindset, not a set of practices, rules, or tools."
Tom Poppendieck
Re: Warning
а то че е хубаво хубаво е но не е за предпочитане да го използваш. на твоя компютър можеш да го включиш това но ако решиш да си качваш някъде проекта... поне при фрии сървърите е изключена тази опция...платените хостинги предполагам че можеш да променяш настройките но все пак е препоръчително да не се използва... плюс това в по-старите версии на php мисля че нямаше въобще такава опция... сега пък си е off по подразбиране... изобщо е добре да си направите проекта работещ при настройки по подразбиране...
Re: Warning
Доколкото знам разликата след включването на тази опция е само в производителността... и то май малка.
Знам обаче за някои библиотеки, които разчитат на output buffering - phpMVC например. Аз също понякога правя магарии като:
ob_start();
include( ... );
$contents = ob_get_contents();
ob_end_clean();
Бе всичко е "според зависи".
--
"Agile is a mindset, not a set of practices, rules, or tools."
Tom Poppendieck
Знам обаче за някои библиотеки, които разчитат на output buffering - phpMVC например. Аз също понякога правя магарии като:
ob_start();
include( ... );
$contents = ob_get_contents();
ob_end_clean();
Бе всичко е "според зависи".
--
"Agile is a mindset, not a set of practices, rules, or tools."
Tom Poppendieck
Re: Warning
е това последното което писа мисля че трябва да сработи и без output_buffering?!
Re: Warning
Опааа явно съм чел документацията през пръсти. Мерси за доуточняването.
--
"Agile is a mindset, not a set of practices, rules, or tools."
Tom Poppendieck
--
"Agile is a mindset, not a set of practices, rules, or tools."
Tom Poppendieck
Re: Warning
В отговор на:а то че е хубаво хубаво е но не е за предпочитане да го използваш
е хайде сега ... нещо жестоко се бъркаш ... според тебе защо хората са се мъчили да го пишат и развиват толкова в последно време ...
по твоята логика да си пишем на PHP3 ...
напротив - output_buffering, output_handler, zlib.output_compression и zlib.output_handler опциите заедно със output control функциите са си много полезни в много случаи
това с фрий сървърите, дори да е вярно, което се съмнявам, не е достатъчен довод ...
Re: Warning
аз си мисля нещо за сигурност... същата рабтоа е с register_globals
много ми се иска да го използвам включено но така се намаля сигурността... ето точно тази опция примерно в по-ранните версии беше включена по подразбиране сега не е...
същатата работа според мен е и с output_buffering
много ми се иска да го използвам включено но така се намаля сигурността... ето точно тази опция примерно в по-ранните версии беше включена по подразбиране сега не е...
същатата работа според мен е и с output_buffering
Re: Warning
много ми се иска да го използвам включено но така се намаля сигурността
На мене пък не ми се иска изобщо. Проблемите на включения регистър глобалс съвсем не са само в сигурността.
А за аутпут буферинг... с какво точно я намалява?
На мене пък не ми се иска изобщо. Проблемите на включения регистър глобалс съвсем не са само в сигурността.
А за аутпут буферинг... с какво точно я намалява?
Re: Warning
нещо се бъркаш ... няма никакви притеснения за ouput buffering-а
дори в ini_set е дефиниран и като PHP_INI_PERDIR
дори в ini_set е дефиниран и като PHP_INI_PERDIR
Re: Warning
много хора ме опровергаха затова което написах така че ще приема че сте прави...
мислих си за пращане на някакви нежелани хедъри с цел пробив които до някаква степен могат да се ограничат с output_buffering
мислих си за пращане на някакви нежелани хедъри с цел пробив които до някаква степен могат да се ограничат с output_buffering
Re: Warning
просто виж php.ini-optimized
там има специално описано, че в оптимизираната версия се пуска за производителност
; - output_buffering = 4096 [Performance]
принципно, ставаше въпрос за output control функциите, но пък там няма никакви проблеми ...
там има специално описано, че в оптимизираната версия се пуска за производителност
; - output_buffering = 4096 [Performance]
принципно, ставаше въпрос за output control функциите, но пък там няма никакви проблеми ...