نقل قول نوشته اصلی توسط Marshall نمایش پست ها
من فقط می خواهم واسه کش کردن اینکارو انجام بدم
مثلا یک نفر با کد معرف وارد سایت میشه که ثبت نام کنه
فرضا domain.com/r=32
من می خواهم این کد معرف فقط روی کامپیوتر اون کار کنه و اگه یکی دیگه خواست در همین زمان ثبت نام کنه اگه کد معرف داشت کد معرف اون ثبت بشه اگه نداشت صفر ثبت بشه!
من با استفاده از تابع $_SERVER['QUERY_STRING'] فقط عدد رو باقی میذارم که از لینک معرفش فقط عدد بمونه مثلا 32
الان می خوام چه با کش کردن و یا چه با تابع $_SESSION اینکار انجام بشه و کد معرف هر کسی فقط روی کامپیوتر خودش تا زمانی که من تعیین می کنم فعال باشه!
سلام
با توجه به این پیامتون.
شما میخواید که کد معرفی که دارید در اولین استفاده، برای اون آی پی یونیک بشه و دیگه کسی نتونه ازش استفاده کنه.صحیح؟
اگر چنین چیزی میخواید، با اینکه من ساختار جدول شما رو نمیدونم و همچنین نمیدونم که آیا برای این کدهای معرف از دیتابیس اقدام کردید یا بصورت دستی از داخل فایل تعیین میکنید.
اگر در دیتابیس ذخیره میشه، چنانچه یک column به جدول مرتبط باهاش اضافه کنید با عنوان user_up و varchar باشه، میتونید با یک شرط محدودیت مدنظر تون رو اعمال کنید.
چطور؟
تو فانکشن و یا فایل مورد نظر ( که البته با توجه به توضیحاتی که دادین قطعا در یک تابع هست که در تمامی وبسایت فراخوانی شده ):

میایم مثلا برای اینجا در نظر میگیریم که در جدول مرتبط باهاش 3 column داریم با نام id و referrer و user_ip

0- بیاید ابتدای امر بررسی کنید که اگر مقدار "r" در کوئری استرینگ ( domain.com/?r=32 مثلا ) موجود بود :
1- اول چک کنه داخل جدول مرتبط که مقدار user_ip خالی هست یا خیر.( SELECT FROM ... WHERE referrer = $r مثلا الی آخر )
2- در صورت خالی نبودنش ، آی پی ثبت بشه. ( UPDATE ...set value.... WHERE refferer = $r )
3- در غیر اینصورت هم نیازی به آپدیت و ... نیست و چنانچه آی پی ثبت شده بود، مقدار "r" رو نادید بگیره و بعنوان یک کاربر بدون معرف درنظر گرفته بشه.

دیگه نیازی به کش کردن و باقی مسائل ندارید.
صرفا یک column تعریف کردید تو جدول مرتبط باهاش که ذخیره ساز آی پی کاربر هست.
اگر این مقدار خالی بود ، که مقدار "r" رو در نظر میگیره و آی پی رو در user_ip مرتبط با r ذخیره میکنه !
در غیر اینصورت، این مقدار رو نادیده میگیره و اصلا لحاظ نمیکنه.