اذهب إلى المحتوى

السؤال

نشر

أريد عمل مشاهدات للصور واريد لكل جهاز بان تحتسب له المشاهدة لمرة واحدة، يعني لا يمكن احتاب اكثر من مساهدة للزائر نفسة، ولفعل هذا لابد من الحصول على رمز او اي شي خاص بكل جهاز ويختلف من جهاز الى اخر، فكرت بعنون ip ولكن هذا العنوان بيتغير على كل اتصال بالشبكة فلا يصلح لمثل هذا الامر، 

هل يوجد هذا الرمز الذي تحدثت عنه وماهي دالة php  المسؤله عن الحصول على هذا الرمز وشكرا 

Recommended Posts

  • 0
نشر

هل يوجد عملية تسجيل دخول للمستخدم قبل تصفح للصور؟ إن كان نعم، هنا عليك عمل جدول خاص بالمشاهدات يحوي المعرف الخاص بهذا المستخدم وتضع معه معرف الصورة أي id و قبل إضافة الثنائية رقم المسنخدم و رقم الصورة تتأكد من عدم وجودها مسبقا في الجدول.

الجدول watch مثلا يحوي فقط حقلين، id الصورة و id المستخدم.

نقوم بعمل استعلام select يحوي معرف الصورة و معرف المستخدم ونتأكد هل سبق و قام هذا المستخدم بمشاهدة الصورة أو لا.

في حال لم نجد شيئ نضيف سطر بالمعرفات insert.

  • 0
نشر

يمكنك جلب ip الزائر باستخدام الدالة التالية 

function getClientIP( )
{
        $ip = "";
        if ( isset( $_SERVER['REMOTE_ADDR'] ) )
        {
            $ip = $_SERVER['REMOTE_ADDR'];
        }
        else if ( isset( $_SERVER['HTTP_X_FORWARDED_FOR'] ) )
        {
            $ip = $_SERVER['HTTP_X_FORWARDED_FOR'];
        }
        else if ( isset( $_SERVER['HTTP_CLIENT_IP'] ) )
        {
            $ip = $_SERVER['HTTP_CLIENT_IP'];
        }
        return $ip;
}

بحيث تقوم باستدعاء الدالة getClientIP في الكود الخاص بك , لتتمكن من مقارنة ip كل زائر ومنع تكرار عملية المشاهدة أكثر من مرة . ربما تكون طريقة الاعتماد على ip الزائر هي أفضل وسيلة , حيث يضا يتم الاعتماد على ip الزائر في نظام التصويت و قد أبدت فعالية كبيرة هذه الطريقة. 

  • 1
نشر

إن لم يكن لديك نظام تسجيل دخول authentication system فالأمر ليس سهلًا لتحقيق هذا الأمر، هنا بعض الطرق التي يمكنك أن تستخدمها:

  • يمكنك أن ترسل Cookie إلى المستخدم تحتوي على معرف خاص وفريد لكل مستخدم، لكن يمكن أن يقوم المستخدم بحذف / تعديل هذه الـ Cookie
  • يمكنك أن تستخدم IP الخاص بالمستخدم، لكن يمكن للمستخدم أن يستعمل VPN أو Proxy أو حتى يقوم بإعادة تشغيل الموجه router لديه (إن كان يستعمل dynamic ip).
  • يمكنك أن تستعمل ما يسمى بـ  browser fingerprinting لكن هذا الأمر يمكن تخطيه بمجرد إستعمال متصفح مختلف.
  • ربما تفكر في إستخدام Mac Address خاص بالمستخدم، لكن للآسف لا يمكن للغة PHP أو لغة JavaScript أن الوصول إلى Mac Address الخاص بالمستخدمين، لذلك هذه الطريقة لن تجدي نفعًا.
  • يمكنك أن تستعمل Cookie خاصة بتقنية flash، لكن هذه التقنية لم تعد مدعومة، هذا بالإضافة إلى وجود إحتمال كبير في أن المستخدم ليس لديه برنامج Flash مثبت في الأساس.

كما تلاحظ في الأعلى أن كل طريقة لها مشكلة أو طريقة تمكن المستخدم من تخطيها، وهذه المشكلة تواجهة شركات الإعلان الكبيرة مثل Google AdSense و Microsoft advertising .. إلخ، وحاليًا تستخدم الكثير من الشركات طريقة المعرف المركب أي أن يتم جمع معلومات كثيرة جدًا مثل نوع المتصفح وإصداره وكل إمكانيات الجهاز (مساحة الذاكرة العشوائية ومعلومات المعالج و اللغة الإفتراضية للنظام) و User-Agent و الدولة والمدينة وغيرها الكثير من الخصائص، ثم يتم دمج كل هذه الخصائص مع بعضها البعض لعمل معرف خاص بالمستخدم، ويكون إحتمال أن تتابطق كل هذه الخصائص مع جهاز آخر قليلة (مازال هناك إحتمال حدوث هذا الأمر وارد)، هذا بالإضافة لتطبيق الخصائص الأخرى يف القائمة السابقة أيضًا.

يمكنك معرفة ما يمكن الحصول عليه من خصائص ومعلومات عن المستخدم من خلال موقع deviceinfo.

توجد شركات متخصصة في تحديد وتتبع المستخدمين مثل موقع device atlas لكن هذه المواقع لديها خطط بأسعار عالية نوعًا ما كما أنها لا تضمن 100% من إمكانية تحديد أو تتبع المستخدم.

لاحظ أن حتى المواقع الضخمة مثل YouTube و Vimeo تحتسب المشاهدات أكثر من مرة إن قام المستخدم بتشغيل الفيديو من أكثر من متصفح على نفس الجهاز.

أما الحل المثال هو عمل نظام لتسجيل دخول authentication system ومن خلاله يمكنك أن تعطي المستخدمين صلاحيات معينة وتمنعهم من خصائص أخرى، ويمكن إستخدام هذا النظام لإحتساب عدد المشاهدات بسهولة وقد تم شرح هذا الأمر في الإجابة السابقة.

انضم إلى النقاش

يمكنك أن تنشر الآن وتسجل لاحقًا. إذا كان لديك حساب، فسجل الدخول الآن لتنشر باسم حسابك.

زائر
أجب على هذا السؤال...

×   لقد أضفت محتوى بخط أو تنسيق مختلف.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   جرى استعادة المحتوى السابق..   امسح المحرر

×   You cannot paste images directly. Upload or insert images from URL.

  • إعلانات

  • تابعنا على



×
×
  • أضف...