أحتاج إلى إقتراحات بخصوص إستخدام أجاكس مع Jquery

السلام عليكم ورحمة الله وبركاته.

أصدقائي وأخواني أحتاج إلى إقتراحاتكم:

أريد عمل تقييم لمواضيع داخي الموقع الخاص بي ، مثل التقييم الموجود في arabia.io

المشكلة تكمن في كيفية منع المستخدم من أن يقوم بالتقييم أكثر من مرة على نفس الموضوع .

هنالك حل عن طريق زرع Cookies ولكنها غير آمنة بعض الشيء حيث أن المستخدم بإستطاعته مسحها من المتصفح.

الحل الثاني عن طريق تخزين الحركات في قاعدة بيانات ولكنها أيضا قد تأخذ مساحة ووقت خلال عملية التنفيذ والتحقق إذا كان المستخدم قبل قييم الموضوع من قبل أم لا .

أنتظر آرائكم

يرجى الدخول لحسابك أو تسجيل حساب لتستطيع إضافة تعليق
حساب جديد دخول

التعليقات

حسنا هناك بعض القواعد البسيطة:

إلا إذا كان هذا تصويتا على رئيس البلد المقبل، تكرار التصويت لن يكون نهاية الكون

عادة فقط 1% من الزوار سيأخذون العناء الكبير والمتعب في مسح الكوكيز لإعادة التصويت

هناك أمور لا يستطيع المستخدمون حذفها مباشرة مثل localStorage

الحلول

لا تفتح التصويت للزوار واتركه للمستخدمين فحسب

احفظ IP و الكوكيز معا في قاعدة البيانات، سيضمن هذا غشا أقل ربما

خاطر وافتح التصويت عبر الكوكيز فحسب وستنازل نتائج أقل دقة بنسبة 1 بالمئة

إذا كان التصويت للموجب فحسب فلن تواجه مشكلة على عكس التصويت السلبي الذي قد يفعل الناس الكثير للقيام به

لو كانت ارابيا تستخدم التقييم عبر الكوكيز فقط, هل تعتقد ان نسبة المتلاعبين ستكون 1% ؟ اعتقد ان النسبة ستتجاوز 70%

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

لكن ما يحاول هو فعله هو مجرد طريقة لتبيين المواضيع الاكثر شيوعا والتي يكتبها هو في الاغلب لذا لا اظن يوجد تحيز كبير

هنا في arabia.io التقييم خاص بالأعضاء، وبالتالي غالبا يوجد جدول يسجل تقييم العضو مع رقم المقال ورقم العضوية،

لكن لنفترض أن المقيّم في موقعك سيكون زائرا يتردد من وقت لآخر، حسنا، بالنسبة لي أسجل رقم IP في حقل التقييمات، ثم في جلسة لمنع تكرار التقييم في نفس الوقت او في وقت متقارب وذلك لتصفير العملية قبل استدعاء حقل التقييمات للتأكد من رقم الـ IP وذلك لتقليل الضغط على المخدّم.

هل ينفع هذا لمن يريد تكرار التقييم ؟

للأسف لا، لأن رقم الـ IP يتغير مع كل إعادة تشغيل للروتر أو المودم، لكن هذا يعني على الأقل أن على هذا المتلاعب أن يعيد تشغيل المودم أو استخدام برنامج لتغيير الـ IP كل 20 ثانية ...


نكتة: يقال أنه لصا دخل إلى بيت ليسرقه، فأخذ كل شيء والزوجان ينظران، طبعا الزوج خائف أكثر من الزوجة ^_^ وفي الأخير اقترب اللص من الزوج وأخذ منه عباءته التي يرتديها، ولما خرج قالت له الزوجة يا جبان يا ... أنت تعرف، فقال لها لا لا، لم يأخدها حتى تعب لأني ضخمت صدري ولويت ذراعي، فلا تقولي لي أني لم أحاول منعه من إعادة التقييم، فهمت ؟

يمكنك مثلا الاعتماد على طرف ثالث مثلا أن يكون الدخول من خلال فيسبوك والتصويت فقط لمن حسابه في فيسبوك له أحداث ماضية مثلا أن يكون له أكثر من 10 أصدقاء وأن يكون عمر الحساب أكثر من يومين ....

طبعا تحتاج قاعدة بيانات.

تناقشت مع صديق لي من قبل كان يواجهه نفس الموضوع وطرحت فكرة الجدول وتم اعتمادها من قبله

لكن هناك فكرة أخرى عرضتها عليه وأرى انها جيدة لكن ﻻ أرى مدى فاعليتها عمليا

وهي : ان تخزن التقييمات في حقل بصيغة JSON ويمكنك التحقق بهذه الطريقة ايضا .. اذا كان قيم من قبل او ﻻ .. ما رأيك بها ؟

^طبعا تحفظ كل عضو وتقييمه

بالمناسبة بخصوص الجدول كيف سيكون شكل جدول التقييمات ؟؟ هل ستمثل كل عملية تقييم بصف جديد في الجدول ؟!

التقييم هنا يعتمد علي حظ الـ id

الامر اشبه بـ اعجابات فيس بوك

يمكنك حظ المقييمين ي جدول في حالوجود عضويات ...

اعتذر علي الاخطاء الاملائية

يبدو لي بان لوحة المفاتيح بها بعض الاتربة

لناخذ مثال : php

بالمناسبة اكتtd بحفظ ارقام الـ id للاعضاء في جدول ما

فلنسميه rating

تحفظ الارقام كمصوفة كـ array(56,54,35,22,7678,42435,5665,23)

بعدها نستخدم دوال حساب الاعداد بالمصفوفة

او ما شابه , الفكرة مجرد هيكلة ليس الا

السلام عليكم

يوجد حل بسيط هو تخزين جميع id الخاصة بالمواضيع التي قان العضو بتقييمها في حقل بجدول الأعضاء ويكون شكل البيانات كالتالي

1,5,10,22,25

وعند تقييم أي موضوع تقوم بجلب هذا الحقل وتبحث بداخله عن رقم id الخاص بالموضوع الذي يقوم بتقييمه بتحويلها إلى مصفوفة وفي حالة وجود رقم الموضوع ضمن هذه الأرقام تمنعه من التصويت سواء إيجابي أو سلبي

هذه مجرد فكرة وتنفيذها سهل وبسيط أتمنى أن تفيدك

شكرا جزيلا لكل الردود .. بالسنبة لموقعي فإن معظم مستخدميه سوف يكونون من الخبراء في الويب والكمبيوتر بشكل عام .. لذلك أفضل أن أخزنا في قاعدة بيانات لمنع التلاعب :)

شكرا لردودكم .. لقد إعتمدت طريقة حفظ ال ID الخاص بالمستخدم مع الـ ID الخاص بالموضوع بجدول وكل عملية تقييم تمثل صف جديد بالجدول ، وعن طريق دالة اجاكس أقوم بالتحقق من الـ ID الخاص بالمستخدم إذا كان مقابلة ID خاص بالموضوع وعلى هذا الأساس يكون قد قيم من قبل أو لا :)