PDA

View Full Version : سوال: نحوه ساخت امتیاز دهی به پست



maysam.m
شنبه 06 آذر 1389, 19:59 عصر
سلام

من میخواهم بخشی برای امتیاز دادن به هر مطلب ایجاد کنم و فرمی از شماره 1 تا 10 با دکمه های رادیویی ایجاد کنم.
میخواستم بدونم برای ایجاد همچین کاری چه جدول و ستون هایی باید درست کنم و کلا الگوریتم کار چطوریه؟

ممنون میشم راهنمایی کنید :قلب:

UnnamE
شنبه 06 آذر 1389, 20:32 عصر
هيچ زحمت و عرق ريختني نداره
ساده ترين رو ميگم
دو ستون جديد تو جدول پست ها ايجاد ميكني مثلا rate و count مقدار عددي هم بهش بده
همون راديو يا هرچي كه دوس داري واسه پست مورد نظر ميزاري كه با هر بار فشار روي دكمه امتياز دهي به همون مقداري كه كاربر واسه امتياز اتخاب كرده به فيلد rate ارسال ميشه كه + مقدار فعلي ميشه
و همچنين دفعات امتياز دادن به پست مورد نظر هم به count
وقتي هم ميخواي امتياز رو نشون بدي مقدار rate /count (تقسيم) :D ميشه و نمايش ميدي
كه اگه يكم آجاكس بزاري جفتش و بجاي اون دكمه هاي راديو و تلويزيون:لبخند: هم ستاره هاي نصفه و نيمه قرار بدي و خشگلش كني كابرا قلقلكشون مياد كه امتياز بدن
در ضمن يه تابع هم باس داشته باشي كه هر ip كه امتياز داد بار بعد نتونه كه اون هم داستان ي داره واسه خودش!

maysam.m
شنبه 06 آذر 1389, 21:14 عصر
هيچ زحمت و عرق ريختني نداره
ساده ترين رو ميگم
دو ستون جديد تو جدول پست ها ايجاد ميكني مثلا rate و count مقدار عددي هم بهش بده
همون راديو يا هرچي كه دوس داري واسه پست مورد نظر ميزاري كه با هر بار فشار روي دكمه امتياز دهي به همون مقداري كه كاربر واسه امتياز اتخاب كرده به فيلد rate ارسال ميشه كه + مقدار فعلي ميشه
و همچنين دفعات امتياز دادن به پست مورد نظر هم به count
وقتي هم ميخواي امتياز رو نشون بدي مقدار rate /count (تقسيم) :D ميشه و نمايش ميدي
كه اگه يكم آجاكس بزاري جفتش و بجاي اون دكمه هاي راديو و تلويزيون:لبخند: هم ستاره هاي نصفه و نيمه قرار بدي و خشگلش كني كابرا قلقلكشون مياد كه امتياز بدن
در ضمن يه تابع هم باس داشته باشي كه هر ip كه امتياز داد بار بعد نتونه كه اون هم داستان ي داره واسه خودش!

واقعا ممنونم از شما دوست عزیز :لبخندساده:
اون قسمت آخر هم توضیح میدی؟ :خجالت:

UnnamE
یک شنبه 07 آذر 1389, 00:20 صبح
اوكي!
اين قسمت هم سادست..
به اين شكل كه بهتر هست يه جدول داشته باشه واسه كل كار
يعني يه جدول ايجاد كني واسه ip ها كه هركس نظر يا امتياز ميده ip اون ذخيره بشه و هرجا كه نياز به دسترسي به ip ها داشتي به اون جدول مراجعه كني
خوب وقتي يه نفر امتياز ميده اول چك ميشه كه ip كاربر تو جدول هست يا نه
اگه نبود كه فبا، اما اگه بود يه پيغام به كاربر ميدي كه برو بزا باد بياد
همچنين واسه جدول ip هم بهتر هست مقدار كاربردي بزاري
مثلا كساني هم كه در نظرسنجي ها يا كامنت ها فعاليت داشتن هم ip گرفته ميشه ولي با مقدار منحصز بفرد خودش مثلا يه فيلد تو همين جدول ip ميزاري به نا job_id كه نشون ميده طرف چيكار كرده
كه وقتي نياز ميشه ip چك كني با مقدار مشخصي انجام بدي
مثلا مقدار براي امتيار 1
براي نظرسنجي ها 2
براي كامنت ها3
براي جستجودر سايت 4
و همينجور براي هر كاري كه ميخواي محدوديت بزاري

اينجوري حتي ميتوني تعيين كني يه كاربر با فلان ip چند بار ميتونه در سايت جستوجو كنه يا امتياز بده (بسته به post_id ) و خيلي چيزاي ديگه
حالا باز خواستي توضيح ميفرمايم!

maysam.m
یک شنبه 07 آذر 1389, 12:31 عصر
بازم ممنون :چشمک:
یه مسئله: به نظر شما در صورتی که هر کسی بخواهد رای بدهد و ما آی پی هر کس را ذخیره کنیم بعد از مدتی تعداد رکوردهامون زیاد نمیشه و همچنین برنامه سنگین نمیشه؟

UnnamE
یک شنبه 07 آذر 1389, 17:22 عصر
درود
خب در دراز مدت بله!
منظور دراز مدت دراز ها!
يه وب سايت نوشته بودم كه همين يه جدول داشتم براي آي پي ها كه خيلي هم كار باهاش انجام دادم
تقريبا بعد از اينكه تعداد ركوردهاي ip ها رسيده بود به 80.000 تازه حجم ديتابيس شده بود 4 مگابايت كه 2.5 مگا واسه content!!!!
در صورتي نگراني داري در اين مورد ميتوني optimize كني
يعني داده هاي قديمي رو با يه sql ساده بريز دور و همچنين همين كار رو براي پست ها يا مطالب قديمي انجام بده كه تاريخ انقصا داشته باشه
يعني همزمان هم كسي نتونه ديگه امتياز بده و هم ip هاي درگير ماجرا از بانك حذف بشه
تمام مدل كار رو ميشه توي 2-3 دقيقه از لحاظ الگوريتم يا theory پياده كرد!

maysam.m
دوشنبه 08 آذر 1389, 11:01 صبح
درسته به این نکته :

در صورتي نگراني داري در اين مورد ميتوني optimize كني
يعني داده هاي قديمي رو با يه sql ساده بريز دور و همچنين همين كار رو براي پست ها يا مطالب قديمي انجام بده كه تاريخ انقصا داشته باشه
فکر نکرده بودم :D
بهترین راه به نظرم همین راهی است که شما گفتید .

به نظرم با کوکی هم می تونیم تا یه مدتی کاربر را شناسایی و مانع رای دادن اون بکنیم چون IP هم داینامیکه و بعد از هر بار آن شدن کاربر فرق میکنه پس کوکی هم میتونه گزینه ساده تری باشه. با این حال نظرتون درباره کوکی چیه؟

پ.ن: مد تشکر بعد از تعمیرات انجمن حذف شده؟

funpatogh
دوشنبه 08 آذر 1389, 21:31 عصر
آره عزیز فکر کنم بهترین راه برای تشخیص اینکه کاربر قبلا رای داده یا نه استفاده از کوکی هست
موقع امتیاز آی پی هر کاربر رو توی دیتابیست ذخیره کن و یک کوکی هم که مدت دار باشه توی سیستم کاربر بریز
بعد وقتی کاربر دیگه میاد امتیاز بده اول آی پی رو چک کن که موجود هست یا خیر اگر نبود که بزار امتیاز بده اگر بود هم کوکی رو چک کن که هست یا خیر اگر نبود بزار امتیاز بده و گر نه قبلا امتیاز داده و ممانعت از امتیازدادن دوباره کن



مد تشکر بعد از تعمیرات انجمن حذف شده؟

اخه ورژن فروم 4 شده و باید تمامی هک های همین ورژن هم نصب بشه که انگار هنوز نصب نشده

UnnamE
دوشنبه 08 آذر 1389, 23:01 عصر
در مورد كوكي مدت دار زياد موافق نيستم
چرا كه مثلا همين pmc top كه اجازه به كاربر ميده كه موزيك ويديو كه خوشش اومده رو بهش راي بده تا در ليست بهترين ها قرار بگيره
خب اگه دقت كرده باشي هر 2 روز يه بار ميشه طرف بره و راي بده!!!!!(خيلي چندشه نه ؟)
در مورد ديناميك بودن آي پي هم موافق نيستم
چون ديگه كاربران ديال آپ روز به روز در حال كم شدن هستند و اكثرا آي پي يكتا دارن!
بعضي ها واسه امنيت بيشتر سيستم كوكي رو در مرورگر غيرفعال ميكنن
كه اين خودش دردسري داره
مثلا يارو راي ميده بعد بايد چك كني كوكي فعال هست يا نه اگه بود كه فبا اگه نبود هم يه پيغام ميدي به كاربر كه آقا اين چه وضعشه؟ بيا كوكي و فعال كن
كاربر يه ضد حالي ميخوره باور كن!
كار با بانك خيلي راحت تر هست
يه cUrl job داشته باش هر 2-3 ماه يه بار جدول ip رو optimize كن!!!!
ديگخ دست به دامان هيچي نميشي!
در كل روش هاي كه گفتم خيلي ساده بود و ميشه خيلي راحت هم خيلي قويترش كرد كه ديگه كاربر نتونه تكون بخوره!
اين هم بگم حساس نشو كه طرف بتونه دور بزنه به يه مطلب 20 بار راي يا امتياز بده ها!!!!
خود شما از پست من يه بار خوشت مياد كه تشكر ميزني
اگه آزاد بودي كه نميومدي 20 تا تشكر بزني!!!!
زياد تو فكرش نباش عمو جان!

maysam.m
سه شنبه 09 آذر 1389, 11:19 صبح
اگه بخوایم از روش ip و کوکی با هم استفاده کنیم بهتره از یه آمارگیر هم استفاده کنیم و ip ها رو از جدول آمارگیر استخراج کنیم!

به نظرم بیاییم اول روش کوکی رو تست کنیم و اگر کاربر کوکی مرورگرش فعال بود که با کوکی بریم جلو و اگه نبود با روش ip ! اینطوری بهترن نیست؟

پ.ن: حالا امتیاز دهی ما چقدر مهمه که بخواهیم خودمون رو بکشیم! :d
چه کسی میاد مثلا به یک پست 10 بار امتیاز بده؟ طرف مگه بیکاره!? :d

UnnamE
سه شنبه 09 آذر 1389, 15:39 عصر
ديگه بستگي به خودت چرا چقد بخواي قاشق و چنگال رو دور سرت بچرخوني
نوشتن كد الكي فقط كار رو شبيه ماكاروني با ميكنه
كه خيلي بد مزه ميشه
باوركن!
يه سيستم كامل نوشتم 3 ماه روش مانور دادم
چرا كه با اينكه حداكثر oop و اينا هم رو به كار بردم بازم ميشه نودل چيني!
بهتره با كيك همه اين كار ها رو انجام بدي
خيلي سادست
http://cakephp.org

maysam.m
چهارشنبه 10 آذر 1389, 12:39 عصر
UnnamE جان
یه اسکریپت ساده ست که میخوام یه چند تا قابلیت بهش اضافه کنم چیز خاصی نیست. با کیک هم کمی کار کردم بدک نیست :d
اگه بخوام یه چیز حرفه ای بنویسم قطعا حرف شما درسته باید از یک فریم ورک مثل کیک استفاده کرد.