PDA

View Full Version : مشکل با خطای session



ak1_2004
دوشنبه 22 شهریور 1389, 08:09 صبح
سلام
من وقتی از session استفاده می کنم خطای زیر رو می ده !

[12-Sep-2010 23:48:42] PHP Warning: session_start() [<a href='function.session-start'>function.session-start</a>]: Cannot send session cookie - headers already sent by (output started at /home/asrcoor/public_html/index.php:5) in /home/asrcoor/public_html/config.php on line 3
[12-Sep-2010 23:48:42] PHP Warning: session_start() [<a href='function.session-start'>function.session-start</a>]: Cannot send session cache limiter - headers already sent (output started at /home/asrcoor/public_html/index.php:5) in /home/asrcoor/public_html/config.php on line 3
متاسفانه هر کاری هم کردم درست نمی شه !
روی لوکال wamp 2 درست کار می کنه اما روی سرور که می برم اررور می ده و session_start کار نمی کنه !
سرور هم اتوماتیک استارت session فعال نیست !
فایل هم به صورت ANSII ذخیره شده و هیچ چیزی قبل از فراخوانی ارسال نمی شه !
قبلا از Cookie استفاده می کردم مشکلی نبود در این سایت جدیدم از session استفاده کردم اینجوری می شه !

sama01
دوشنبه 22 شهریور 1389, 08:30 صبح
دو سه هزار بار این سوال پرسیده شده.
headers already sent را جست‌وجو کنید.
کمی در بخش هم به عقب برید، چند مورد رو خواهید دید.



|||||| جست‌وجو کنید ||||||

abdollah110110
چهارشنبه 12 آبان 1389, 02:39 صبح
فایلهاتونو با utf8 ذخیره کنید و session_start رو قبل از هر کد و توضیحات و حتی کاراکتر فضای خالی در ابتدای فایل بنویسید. در غیر این صورت با خطا مواجه میشوید.


<?php
session_start();
$_session['x1']='hello';
echo('<br/><a href="session1.php">session1<a>');
?>

afrashteh1
چهارشنبه 15 دی 1389, 23:51 عصر
سلام
همه ی این کارا انجام دادم ولی مشکلم حل نشد

Vahid Faraji
پنج شنبه 16 دی 1389, 10:54 صبح
به اين لينك مراجعه نمائيد.
http://keramatifar.ir/ShowTopic.php?id=%2057

ghasemweb
پنج شنبه 16 دی 1389, 11:52 صبح
هر جا كه نياز به سيشن داشتي از كد زير استفاده كن :

if(!isset($_SESSION))
{
session_start();
}

ravand
پنج شنبه 16 دی 1389, 17:04 عصر
شما می تونی از برنامه ای مثل++ notepad استفاده کنی و بعد از اجرای برنامه و قرار دادن کدها داخل اون به منوی Encoding و سپس Encoding in UTF-8 without BOM رو انتخاب کنی و سپس کدت رو ذخیره کنی.

ghasemweb
جمعه 17 دی 1389, 10:24 صبح
مطمئنا مشكل شما مربوط به اجراي دستور استارت سيشن بدون بررسي وجود سيشن هستش يعني قبل از استارت سيشن بايد تست كني ببيني از قبل استارت نباشه . كدش رو هم بالا تو پست قبلي گذاشتم .

MMSHFE
شنبه 18 دی 1389, 10:21 صبح
با سلام، اين راه رو هم امتحان كنيد:
1- صفحه رو با ويرايشگرهايي مثل Programmers NotePad يا ++NotePad يا Rapid PHP ويرايش كرده و آنرا با قالب ANSI ذخيره كنيد.
2- تگ زير رو در قسمت HEAD صفحه قرار بدين:



<META http-equiv="content-type" content="text/html; charset="windows-1256"/>
3- قبل از شروع تگ HTML كد PHP زير رو بگذاريد:


<?PHP
ob_start();
?>
4- بعد از بستن تگ HTML كد PHP زير رو بگذاريد:


<?PHP
eb_end_flush();
?>
اميدوارم مشكلتون با اين روش حل بشه.
توضيح: درصورت ذخيره فايل با قالب Unicode يا UTF-8 توسط برنامه هايي مثل NotePad ويندوز و... چون سه بايت معروف به BOM براي مرورگر قبل از ارسال خود فايل فرستاده ميشه، از اونجا كه مرورگر شروع به دريافت صفحه كرده، ديگه نميتونيد هدر رو تغيير بديد و دستوراتي كه به نحوي با Session و Cookie سروكار دارن و همچنين توابع header، باعث تغيير Header ميشن و درنتيجه نميتونيد از اونها استفاده كنيد. تابع ob_start در PHP باعث ميشه صفحه به مرورگر ارسال نشه و در بافر خروجي قرار بگيره و درنتيجه در بدنه صفحه ميتونيد هر تابعي كه خواستين رو صدا بزنيد و هدر رو هر چقدر خواستين تغيير بدين و نهايتاً با اجراي تابع ob_end_flush در PHP محتويات كل بافر خروجي براي مرورگر ارسال خواهد شد. اگه توضيح بيشتري خواستيد در خدمتم.
موفق و مؤيد باشيد.