کدوم مشکل ؟آیا این مشکل برای سسشن ها هم ایجاد می شه؟
کدوم مشکل ؟
$_COOKIE['test_1']='mycookie';
echo $_COOKIE['test_1'];
// no output
من این مشکل رو ندارم . شاید به خاطر سراسری نبود متغیر کوکی در سایتتون باشه که این اتفاق می افته . البته شاید . (برای تشخیص نمایش خطا رو فعال کنین )چرا نمی تونم بلافاصله بعد از ایجاد کوکی، اون رو نمایش بدم؟
کوکی هم سراسریه و این موضوع که شما می گید درست نیست.من این مشکل رو ندارم . شاید به خاطر سراسری نبود متغیر کوکی در سایتتون باشه که این اتفاق می افته . البته شاید . (برای تشخیص نمایش خطا رو فعال کنین )
یعنی چی؟ مگر همچین چیزی امکان داره؟در ضمن میدونید که با تعریف کوکی به این صورت هیچ کوکی برای کاربر ارسال نمیشه و کارآییش فقط در همون درخواست فعلی ای هس که این کوکی رو ایجاد کردید .
کوکی بر روی سرور فقط یه آرایه ای از اطلاعات ارسالی از طرف کلاینت هست و هیچ هندلی برای کاری نداره . این یعنی اینکه وقتی اندیسی اضافه و یا حذف و یا ویرایش بشه هیچ اتفاق دیگه ای نمی افته . پس زمانیکه ما یه اندیس با عنوان test_1 به آرایه کوکی اضافه میکنیم هیچ کوکی برای کلاینت ارسال نمیشه و فقط این اندیس در آرایه کوکی روی سرور ذخیره میشه . در ضمن آرایه کوکی تمامی اطلاعات خودش رو از کوکی های ارسالی کلاینت میگیره .یعنی چی؟ مگر همچین چیزی امکان داره؟
اگر هندلی نیست، کوکی ها چطور ایجاد می شن و برای کلاینت فرستاده می شن؟ می شه منظورتون رو واح تر توضیح بدید؟کوکی بر روی سرور فقط یه آرایه ای از اطلاعات ارسالی از طرف کلاینت هست و هیچ هندلی برای کاری نداره . این یعنی اینکه وقتی اندیسی اضافه و یا حذف و یا ویرایش بشه هیچ اتفاق دیگه ای نمی افته .
این مورد رو هم لطفا بیشتر توضیح بدید، اگر قرار باشه که کوکی برای کلاینت فرستاده نشه، دیگه اسمش کوکی نیست.پس زمانیکه ما یه اندیس با عنوان test_1 به آرایه کوکی اضافه میکنیم هیچ کوکی برای کلاینت ارسال نمیشه و فقط این اندیس در آرایه کوکی روی سرور ذخیره میشه
<?php
setcookie('test1','exam');
echo $_COOKIE['test1'];
اگر توی یه صفحه کوکی رو ست کنم، توی سایر صفحات چندبار می تونم همون کوکی رو نمایش بدم؟کوکی ها فقط توسط تابع setcookie و header ایجاد میشن و فرستاده میشن که حتی در این صورت اندیسی که در کوکی ایجاد میشه در آرایه سراسری cookie ذخیره نمیشه . یه مثال میزنم :
منظورم این بود که وقتی توی سایر صفحات مرورگر کوکی رو برای سرور می فرسته، چند بار می شه اون رو نمایش داد؟خوب در متغیر expire رفرنس می تونی عدد 0 و یا timestamp بکارببری . عدد 0 ( که به صورت پیش فرض هس ) یعنی اینکه تا زمانیکه مرورگر بسته نشده این کوکی فعال باشه و عدد بیشتر از 0 منظور همون timestamp هست که مرورگر چک میکنه که اگر زمان کوکی از زمان فعلی سیستم کلاینت گذشته باشه کوکی حذف میشه و در غیراینصورت برای سرور ارسال میشه .
شاید نیاز باشه که به محض ایجاد کوکی از کوکی استفاده کنیم. چرا موقع ایجاد کوکی نمی تونیم از اون استفاده کنیم ولی بعد از ایجاد و وقتی وارد سایر صفحات می شیم می تونیم به دفعات دلخواه از کوکی استفاده کنیم؟تا زمانیکه متغیر سراسری cookie در دسترس باشه و تا زمانیکه به صورت دستی اندیس کوکی رو حذف نکنید قابل نمایش هس و اصلا محدودیت نداره .
منظورتون به این شکل هست؟این مشکل وجود داره و برای حلش میتونید همزمان با setcookie در آرایه کوکی هم همون مقدار رو قرار بدین تا در زمان ایجاد هم ازش بتونید استفاده کنین .
setcookie('cook1', 'yes');
$_COOKIE[cook1]='yes';