PDA

View Full Version : سوال: آيا استفاده از ob_start و ob_end_flush در كد مناسب هستش؟



ArtMiz
جمعه 26 آذر 1389, 22:07 عصر
درود به دوستان
من واسه ثبت كوكي تو صفحه با خطا مواجه ميشم. با استفاده از اين دو تابع كارم حل ميشه. ولي ميخواستم بدونم استفاده از اين دو تا تابع مناسب هستش يا مشكل امنيتي و از اين نوع مسايل داره يا نه؟

binyaft
شنبه 27 آذر 1389, 12:29 عصر
به نظر بنده هیچ مشکل امنیتی ای نداره!

ArtMiz
شنبه 27 آذر 1389, 16:47 عصر
به نظر بنده هیچ مشکل امنیتی ای نداره!
ممنونم از جوابتون. دوستان ديگه هم همين نظر رو دارن؟

eshpilen
شنبه 27 آذر 1389, 21:53 عصر
مشکل خاصی نداره. ولی بنظرم معمولا میتونیم بدون نیاز به بافر کردن خروجی اون خطا رو برطرف کنیم (با تغییرات نسبتا جزیی در کد و الگوریتم).
توضیح: ob اولش که میبینید مخفف Output Buffering هست؛ یعنی بافر کردن خروجی.
شخصا احساس میکنم استفاده از این توابع بعضی وقتها پوشاندن ضعف طراحی الگوریتم هست و شاید بعضی باگهای منطقی الگوریتم رو هم پنهان کنه.
البته بعضی وقتا هم ممکنه مفید باشه یا ضروری؛ این یه مسئلهء کلی و مطلق نیست.
از نظر تئوری فرق بافر کردن خروجی و بافر نکردن، بنظرم این هست که در روشی که بافر بکار نره، خروجی های تولیدی قبل از پردازش و تولید خروجی تمام صفحه میتونن به سمت مرورگر کلاینت بشن. این میتونه بعضی جاها یک مزیت یا نیاز باشه. البته بعضی جاها هم اینطور نیست. از طرف دیگه بطور کلی تاجایی که دیدم آپاچی، یا/همچنین لایه های دیگر وب سرور احتمالا، خروجی رو بافر میکنن. احتمالا فقط اگر خروجی زیاد باشه این بافر پر میشه و محتویات پیشاپیش ارسال میشن. البته شاید این رفتار درمورد وب سرور و بقیهء اجزاء درگیر احتمالی، قابل تنظیم هم باشه. خلاصه از نظر عملی بیشتر جاها تفاوتی نمیکنه. ولی اینا رو بدونید بد نیست شاید جایی بدرد خورد. شاید یه وقتی هم تونستید جایی که واقعا مفید/لازم بود با برداشتن این توابع کارایی رو بالا ببرید. خلاصه یه برنامه نویس هرچی جامع تر و عمیق تر همه چیز رو بدونه بهتره.

ArtMiz
یک شنبه 28 آذر 1389, 00:30 صبح
كامپايلش كه زياد نبايد طول بكشه. ب هر حال سمت سرور هستش(اگه اشتباه ميكنم بهم بگيد). در كل ممنون از راهنماييتون:قلب: