• 0 رای - 0 میانگین
  • 1
  • 2
  • 3
  • 4
  • 5
مشکل در کار با سشن و کوکی
#1
کد زیر برای ایجاد آمارگیر به صورت شمارش به صورت منحصر به فرد باشه یعنی اگه کاربری وارد شد و صفحه رو رفرش کرد فقط یک شماره به آمار اضافه بشه تا وقتی که کاربر صفحه رو ببنده و دوباره وارد بشه تا آمار افزایش پیدا کنه
اما با هر دو روش سشن و کوکی با مشکلاتی مواجه شدم.

در سشن همون طور که از کد زیر معلومه، وقتی صفحه برای بار اول باز میشه صفحه ثبت آمار باز میشه و یک سشن ایجاد میشه اما وقتی صفحه رفرش میشه دوباره قسمت دوم شرط اجرا میشه. مشکل از کجاست؟
کد پی‌اچ‌پی:
<?php
ob_start
();
if (isset(
$_SESSION["login"]) && $_SESSION["login"]==true) {

}
else{
include (
"add.php");
$_SESSION["login"]=true;

}
 
?>

و اما در کوکی وقتی صفحه برای بار اول باز میشه قسمت دوم شرط اجرا میشه و یک کوکی ایجاد میشه با مدت اعتبار 24 ساعت.
اما نکته دیگه وقتی صفحه بسته میشه و مثلا کاربر پنج دقیقه بعد دوباره وارد سایت میشه ثبت آمار انجام نمیشه چون هنوز اعتبار کوکی از بین نرفته برای اینکار هم در تگ body رویداد onunload رو برابر با تابع حذف کوکی قرار دادم اما کار نمیکنه و همچنین با رفرش صفحه به آمار اضافه میشه. برای همین هم از سشن استفاده کردم اما سشن هم مشکل بالا رو داره

کد پی‌اچ‌پی:
<?php
if (isset($_COOKIE["login"]) && $_COOKIE["login"]==true) {

}
else{
include (
"add.php");
setcookie("login",true,time()+3600);
}
 
?>

کد پی‌اچ‌پی:
<body onunload="<?php setcookie("login","",time()-3600); ?>"
  پاسخ
تشکر شده توسط :
#2
یه نفر نیست جواب مارو بده
  پاسخ
تشکر شده توسط :
#3
سلام دوست عزیز
برای استفاده از سشن ابتدا باید آنرا شروع کرد session_start() سپس عملیات های مربوط به سشن رو انجام داد.
و برای کوکی هم شما در قسمت body اون رو میخواید از بین ببرید که اون قسمت onunload مربوط به جاوا اسرکیپت هست و نمیشه که کد پی اچ پی رو درونش قرار داد، شما میتونید یک تابع بنویسید یا توی قسمت onunload کد جاوا اسکریپت مربوط به ریدارکت به صفحه قرار بدید و در یک فایل دیگه کوکی رو از بین ببرید.
  پاسخ
تشکر شده توسط : rezi120


پرش به انجمن:


کاربران در حال بازدید این موضوع: 1 مهمان