Проблем с session_start();

zaioioioc

Registered
Всеки път като напиша в някой скрипт
session_start(); ми се показват следните грешки:
Warning: session_start() [function.session-start]: Cannot send session cookie - headers already sent by (output started at C:\serv\www\page1.php:1) in C:\serv\www\page1.php on line 2

Warning: session_start() [function.session-start]: Cannot send session cache limiter - headers already sent (output started at C:\serv\www\page1.php:1) in C:\serv\www\page1.php on line 2
Видях решения на проблема от сорта на "не оставяй място пред <?php u session_start();", но при мен няма такова нещо. Няма значение какъв скрипт е... тоест дали съм го копирал от някъде или сам съм го писал. Винаги ми показва грешка.
Всяка помощ ще бъде оценена :)
 
Преди:
session_start();
не трябва да има нищо друго, даже и интервал.Слагаш го най-"отгоре" на документа, в началото, преди какъвто и да е html таг
 
Именно де ;/
Дори няма html таг...
И пак ми дава проблем...
Приемрно:
<?php session_start(); ?>
<html>
<body>
<?php $_SESSION['name']='zaio'; ?>
</body>
</html>
Къде е проблема тук?
 
Здрасти ами като влзеш в кода провери дали имаш място междо началото и началото на <?php всмисъл да кажем да започва от тук | <?php .... да не е така ами треа де ако започва от правата да е плътно |<?php ....
 
Cannot send session cookie - headers already sent by - Казва ти, че не може да изпрати сесийното куки, защото хедърите на документа са вече изпратени, т.е. ти хубаво стартираш сесия, но браузъра на киента не получава кукито, по което да бъде разпознат.

Със знак ет (@) само подтискаш съобщението за грешка. Може да пробваш:

print_r($_SESSION);


Сложи

<?
session_start();
?>

в началото на скрипта преди какъвто и да е ХТМЛ.

Провери дали нямаш интервал преди отварящата скоба за РНР.

Провери дали в инклуднатите файлове преди session_start(); нямаш ХТМЛ или интервали.

В момента, в който принтираш нещо или си оставил символи извън скобите за скрипт, вече си "изпуснал" хедъра на документа и изпращаш тялото...
 
Какъв редактор ползваш?
Подозирам, че имаш BOM (Byte-Order Mark) в началото на документа. Отвори го с windows notepad за да провериш дали има нещо в началото на докумнета, което твоят редактор не го показва.
 
Нямаше нищо неправилно :)
Всичко си беше както трябва ;), но аз вече се оправих с помощта на peter_ew. Просто трябваше да сложа @, демек да стане @session_start(); :)
А би ли ми казал за какво служи ob_start(); ?


ПП:mad:sizif всичко е ок в скрипта няма никакви интервали, преди всякакви html u body tagове е, но просто не се получава работата, ако няма @... Въпреки че и с @ не ми се получава работата, но поне не ми показва грешки и сега се мъча да намеря къде бъркам.



jooorooo каза:
Друга причина за грешка в сесията е, ако документа е utf-8 ;-) има мой урок ;-)

Видях го, доста добре измислено, но не помогна :) Изобщо не съм слагал тип на документа, дори и без html, body, head tagове пак ми я показваше.
 
Човече, огледай пак. Имаш интервал или празен ред някъде.
 
zaioioioc каза:
Въпреки че и с @ не ми се получава работата, но поне не ми показва грешки и сега се мъча да намеря къде бъркам.

Sizif в по предния пост ти е обяснил защо не работи като сложиш @

най-добре пак погледни с уиндоуския нотепад. Търси дали няма нещо на първия ред на файла, най-вероятно преди <?php
 
Сложи ли ob_start(); най-отгоре във файла си.
А наистина тая кльомба (@) пред session_start(); само ще скрие грешката , но в никакъв случай няма да я поправи.
 
Никой ли не слуша @jooorooo брее.
Почти съм сигурен че заради енкодинга на страницата се получава това!

Като сложиш @ само ще прекриеш грешката. Мислиш ли, че ще работят изобщо сесийте.

Просто си смени кодировката на страницата :)

Я свали този архив. Разархивирай го отвори страницата и ми кажи дали ти вади грешка :)

http://tapotiichici.hit.bg/stranica.rar
 
Преинсталирах си AppServ-a и сега не ми дава никаква грешка :D
Не знам защо е ставало така, но сега всичко си е "ОКИ ДОКИ" :twisted:
 

Горе