PDA

View Full Version : مبتدی: کار با کوکی



reza10wert
سه شنبه 29 فروردین 1391, 14:00 عصر
چرا وقتی دستور زیر رو اجرا می کنم

<?php
setcookie ( "user" , "reza" , 10 ) ;
?>
خطای زیر را نمایش می دهد ؟

Warning: Cannot modify header information - headers already sent by (output started at C:\xampp\htdocs\setcookie.php:1) in C:\xampp\htdocs\setcookie.php on line 2

lady64
سه شنبه 29 فروردین 1391, 15:08 عصر
قبلش خروجی نباید باشه .یا میتونید ابتدای صفحه ob_start() استفاده کنید.

reza10wert
سه شنبه 29 فروردین 1391, 16:06 عصر
نه مشکلم بر طرف نشد
کمک کنید اساتید

reza10wert
سه شنبه 29 فروردین 1391, 19:29 عصر
کسی نیست جواب بده ؟

persian-boy
سه شنبه 29 فروردین 1391, 20:15 عصر
فایلتون رو با notepad ++ باز کنید و انکدینگ رو روی UTF8 Without BOM قرار بدید

رضا قربانی
سه شنبه 29 فروردین 1391, 20:22 عصر
در مورد کوکی اینجا می تونی مثال های خوبی پیدا کنی : http://www.php.net/manual/en/function.setcookie.php


در کل اگه روی تابعی مشکل داشتی از اینجا سرچ بزن :www.php.net (http://www.php.net) و www.w3schools.com (http://www.w3schools.com)

یادت باشه اولین کدت باید باشه . یعنی قبلش چیزی نباشه


در اول کد نویسیت این رو بذار ob_start(); و در انتهای برنامه نویسیت این : ob_end_flush();

ut8-8 هم چک کن و ...
اینا همه رو تست کن ببین مشکلت حل می شه

reza10wert
سه شنبه 29 فروردین 1391, 21:27 عصر
در مورد کوکی اینجا می تونی مثال های خوبی پیدا کنی : http://www.php.net/manual/en/function.setcookie.php


در کل اگه روی تابعی مشکل داشتی از اینجا سرچ بزن :www.php.net (http://www.php.net) و www.w3schools.com (http://www.w3schools.com)

یادت باشه اولین کدت باید باشه . یعنی قبلش چیزی نباشه


در اول کد نویسیت این رو بذار ob_start(); و در انتهای برنامه نویسیت این : ob_end_flush();

ut8-8 هم چک کن و ...
اینا همه رو تست کن ببین مشکلت حل می شه

<?php
ob_start();
setcookie ( 'user' , 'reza' , time()+10 ) ;
ob_end_flush();
?>
این کد منه .
و این خطا رو نشون میده


Warning: Cannot modify header information - headers already sent by (output started at C:\xampp\htdocs\index.php:1) in C:\xampp\htdocs\index.php on line 3

MMSHFE
چهارشنبه 30 فروردین 1391, 10:36 صبح
فایلتون رو با چه کدگذاری ذخیره کردین؟ اگه از Dreamweaver استفاده میکنید، بعضی وقتها با وجود اینکه گزینه Byte Order Mark یا همون BOM رو غیرفعال میکنید ولی باز هم اون رو ذخیره میکنه. بهتره از ++Notepad یا Rapid PHP استفاده کنید و فایل رو با کدگذاری UTF-8 without BOM ذخیره کنید.

reza10wert
چهارشنبه 30 فروردین 1391, 11:32 صبح
فایلتون رو با چه کدگذاری ذخیره کردین؟ اگه از Dreamweaver استفاده میکنید، بعضی وقتها با وجود اینکه گزینه Byte Order Mark یا همون BOM رو غیرفعال میکنید ولی باز هم اون رو ذخیره میکنه. بهتره از ++Notepad یا Rapid PHP استفاده کنید و فایل رو با کدگذاری UTF-8 without BOM ذخیره کنید.
خیلی ممنون درست شد
با UTF-8 without BOM ذخیره کردم درست شد
حالا مشکلش چی بود ؟
این UTF-8 without BOM برای چی هست ؟
اگه از عبارات فارسی استفاده کنم میتونم با UTF-8 without BOM ذخیره کنم ؟

MMSHFE
چهارشنبه 30 فروردین 1391, 12:54 عصر
فرق UTF-8 without BOM با UTF-8 معمولی در اینه که سه بایت معروف به BOM رو که قدیما برای معرفی کدگذاری UTF-8 بکار میرفت (و در استاندارد جدید حذف شده و بهش نیازی نیست) رو ذخیره نمیکنه و چون این بایتها قبل از محتوای فایل ارسال میشدن، شما دیگه نمیتونستید هدرهای صفحه رو تغییر بدین چون دریافت داده های صفحه شروع شده بود. درحقیقت سه بایت مخفی ابتدای فایلتون بوده که شما نمیدیدین و درنتیجه کد شما درست اجرا نمیشده. با کدگذاری UTF-8 without BOM اون سه بایت حذف میشه. ازنظر کارکردن با حروف فارسی و... هم هیچ مشکلی با UTF-8 without BOM نخواهید داشت. خیالتون تخت تخت. راستی، دکمه تشکر هم کاربرد قشنگتری نسبت به جمله «خیلی ممنون» داره :چشمک:. البته این نکته که باید از UTF-8 without BOM استفاده کنید رو توی همین تاپیک، دوستمون در پاسخ شماره 5 اشاره کرده بودن که گویا بهش دقت نکرده بودین. فقط خواستم بگم که ایشون قبل از من این نکته رو گفتن. موفق باشید.