تور لحظه آخری
امروز : یکشنبه ، 15 مهر 1403    احادیث و روایات:  امام علی (ع):چه بسا روزه‏دارى كه از روزه‏اش جز گرسنگى و تشنگى بهره‏اى ندارد و چه بسا شب زنده‏دارى كه...
سرگرمی سبک زندگی سینما و تلویزیون فرهنگ و هنر پزشکی و سلامت اجتماع و خانواده تصویری دین و اندیشه ورزش اقتصادی سیاسی حوادث علم و فناوری سایتهای دانلود گوناگون شرکت ها




آمار وبسایت

 تعداد کل بازدیدها : 1821003742




هواشناسی

نرخ طلا سکه و  ارز

قیمت خودرو

فال حافظ

تعبیر خواب

فال انبیاء

متن قرآن



اضافه به علاقمنديها ارسال اين مطلب به دوستان آرشيو تمام مطالب
archive  refresh

مشکل با session ؟ -


واضح آرشیو وب فارسی:سایت ریسک: مشکل با session ؟ sassan.samiei 10 آبان 1386, 07:24با سلام.... من تا چند روز پیش با session مشکلی نداشتم ولی یه دفعه داره این پیغام می ده؟ Warning: session_start() [function.session-start]: Cannot send session cache limiter - headers already sent (output started at admin/all.php:1) in admin/all.php on line 2 hidensoft 10 آبان 1386, 08:52سلام دوست عزیز . اگه شما خطایه headers already sent توی گوگل و یا همین انجمن جست و جو کنید می بینید که این مسئله خیلی پیش پا افتادست و همه هم دچارش می شن . راه های زیادی برای جلوگیری از این خطا پیش نهاد شده . 1- استفاده از تابع ob_start 2- استفاده از session_start دقیقه بعد از تگ php 3- استفاده از یک hex editor برای اینکه مطمئن بشید بین تگ php و session_start چیزی اضافه نشده اگه شما از session_start بعد از تگ php استفاده کردید و باز هم این خطا رو دارید بهتره راه سومی که پیشنهاد کردم امتحان کنید sassan.samiei 10 آبان 1386, 09:42آخه تا دیروز هیچ مشکلی نداشت یک دفعه اینطوری شد ؟!؟!؟ .:: Ali ::. 10 آبان 1386, 20:23هيچ چيز اتفاقي نيست ! يحتمل بعضي از فايل ها دچار تغيير شدن . jhoseini 10 آبان 1386, 22:50احتمالا با notepad یکی از فایل های متینکلد (include شده :دی) رو ویرایش کردید، همونطور که جناب hidensoft کامل توضیح دادن راه سوم راه حل شماست ARTA_ADOBE CO 10 دي 1386, 17:41در مورد راه سوم یکی توضیح میده؟ یه hexadecimal editorمعرفی میکنید ؟ داستان ما این هست : یه فرمی دارم که یوزر و پسورد رو باهاش وارد میکنه و بعد از یه اسکریپت واسه چک با دیتا بیس استفاده میکنه من حالت خوب رو در نظر میگیرم که کاربر همه چیز رو درست وارد کرده بعدش این if سشن رو ست میکنه و بعدم یه هدر میفرسته به مرورگر و میره صفحه بعد این کد این if : count هم تعداد row های موجود با اون یوزر و پس در دیتابیسه ! if($count==1){ session_start(); session_register("myusername"); session_register("mypassword"); header("Location: index-2.php"); } تا اینجا همه چیز درست اجرا میشه اما صفحه بعد که میخوام موجودیت سشن رو چک کنم با کد های زیر دچار این وارنینگها میشم : Warning: session_start() [function.session-start]: Cannot send session cache limiter - headers already sent (output started at /home/ebrahimi/public_html/CP/index-2.php:1) in /home/ebrahimi/public_html/CP/index-2.php on line 2 حالا با اینکه هیچ فاصله بین session_start با معرف php نیست این مشکل هست نمیدونم چی output داره میشه ؟ این کد صفحه ای که گفتم وظیفه چک کردن این موضوع رو داره باید بگم که قبل از هیچ کد و فاصیه کد زیر در صفحه هست : <? session_start(); if(!session_is_registered(myusername)){ header("location: index.php?prob=3"); exit; } ?> بعد از این وارنینگ صفحه و کد های دیگه به درستی اجرا میشه. حالا داستان این جا قشنگ میشه که اگر سر زده بدون ست شدن سشن ها این صفحه رو باز کنید if میخواد اجرا بشه و گل بود سبزه هم میاد وسط ! Warning: session_start() [function.session-start]: Cannot send session cookie - headers already sent by (output started at /home/ebrahimi/public_html/CP/index-2.php:1) in /home/ebrahimi/public_html/CP/index-2.php on line 2 Warning: session_start() [function.session-start]: Cannot send session cache limiter - headers already sent (output started at /home/ebrahimi/public_html/CP/index-2.php:1) in /home/ebrahimi/public_html/CP/index-2.php on line 2 Warning: Cannot modify header information - headers already sent by (output started at /home/ebrahimi/public_html/CP/index-2.php:1) in /home/ebrahimi/public_html/CP/index-2.php on line 4 خود تابع سشن استارت به نوعی هدر داره و آی دی جلسه رو از این راه میگیره ولی نمیدنم قبلش تو این صفحه چی داره هدر میشه که اجازه نمیده اجرا بشه اون سشن. asdb 20 11 دي 1386, 06:45سلام شما باید تگ؟> رو در خط اول صفحه قرار بدید اگر پایین تر باشه خطوط خالی رو ارسال میکنه و باعث خطا میشه ARTA_ADOBE CO 11 دي 1386, 10:48دوست عزیز در اینجا فاصله افتاد من در دریم ویور کار میکنم و خط یک را به این تگ معرف اختصاص داده است. ARTA_ADOBE CO 11 دي 1386, 12:37دوستان رو از خواب بیدار نمیکنم...(اینجا همه خوابند) فقط بگم مشکل byte order mark بود که به BOM معروفه و چند بایت رو برای UTF-8 Signature میندازه قبل از <? که قابل دیدن هم نیست چون باینری کد هست. من با دریم ویور UTF-8 with BOM انتخاب کردم و این مشکل پیش اومد. بعد تیکش رو برداشتم به نظر حذف نشد چون دوباره مشکل بود. با notpad++ کد ها رو کپی کردم و از قسمت فرمت UTF-8 without BOM رو انتخاب کدم مشکل حل شد. اطلاعات بیشتر در مورد BOM notepad++ download :




این صفحه را در گوگل محبوب کنید

[ارسال شده از: سایت ریسک]
[مشاهده در: www.ri3k.eu]
[تعداد بازديد از اين مطلب: 3930]

bt

اضافه شدن مطلب/حذف مطلب







-


گوناگون

پربازدیدترینها
طراحی وب>


صفحه اول | تمام مطالب | RSS | ارتباط با ما
1390© تمامی حقوق این سایت متعلق به سایت واضح می باشد.
این سایت در ستاد ساماندهی وزارت فرهنگ و ارشاد اسلامی ثبت شده است و پیرو قوانین جمهوری اسلامی ایران می باشد. لطفا در صورت برخورد با مطالب و صفحات خلاف قوانین در سایت آن را به ما اطلاع دهید
پایگاه خبری واضح کاری از شرکت طراحی سایت اینتن