المشاركة الأصلية كتبت بواسطة: Soliman المشاركة الأصلية كتبت بواسطة: kareem لم تنفع تماماً دخلت بحساب آخر للمنتدى لم استعمله منذ فترة وجدت الرقم لحقل store_visitor يتزايد بإستمرار. دخلت لقواعد البينات لجدول member وجدت lastvisit له 1509569383 ولا يتغير مهما اعدت تحميل صفحة المنتدى. مررته على دالة time_ago طلع 4أيام.
هل يعني وجود مشكلة بالبرنامج انه اذا يستخدم الجهاز أكثر من شخص لا يتحدث lastvisit لأحدهما. إذا نعم ستحل بالبرنامج ام اعمل شيء لإجبار تحديث الكوكيز حتى يتم تحديث lastvisit للعضو؟
جرب اضف هذا الكود للخطاف commonHooks
CODE
if ($PowerBB->_CONF['member_row']['lastvisit'] != $PowerBB->functions->IsCookie('PowerBB_lastvisit'))
{
$cookie = setcookie('PowerBB_lastvisit',$PowerBB->_CONF['now'],$PowerBB->_CONF['now']+85200, NULL ,NULL, NULL, TRUE);
$UpdateArr = array();
$UpdateArr['field'] = array();
$UpdateArr['field']['lastvisit'] = $PowerBB->_CONF['now'];
$UpdateArr['where'] = array('id',$PowerBB->_CONF['member_row']['id']);
$update_cache = $PowerBB->core->Update($UpdateArr,'member');
}
شكراً لك .. للأسف لم ينفع يظل يزيد اظن المشكلة ان IsCookie('PowerBB_lastvisit' تعطي دائماً 1 وليس رقم وقت.
أضفنا حقل جديد store_lastvisit وتم تعديل الكود السابق
CODE
if ($PowerBB->_CONF['member_permission']) {
$change = $PowerBB->_CONF['now'] - $PowerBB->_CONF['member_row']['store_lastvisit'];
if (!$PowerBB->_CONF['member_row']['store_lastvisit'] || $change >= 86400) {
$UpdateArr = array();
$UpdateArr['field'] = array();
$UpdateArr['field']['store_visitor'] = $PowerBB->_CONF['member_row']['store_visitor'] + 1;
$UpdateArr['field']['store_lastvisit'] = $PowerBB->_CONF['now'];
$UpdateArr['where'] = array('id', $PowerBB->_CONF['member_row']['id']);
$PowerBB->core->Update($UpdateArr, 'member');
}
}
حتى الان الامور تمام . وجاري ملاحظة النتيجة للأيام القادمة.