PDA

View Full Version : سوال: ساخت like برای کامنت مطالب



softex49
سه شنبه 01 بهمن 1392, 15:26 عصر
با عرض سلام خدمت دوستان عزیز
من برای ساخت like جهت کامنت هام دچار مشکل شده ام.
تو تالار هم جستجو کردم،ولی مطلبی مفیدی پیدا نکردم.از دوستانی که در این زمینه کار کردن خواهش میکنم کمکم کنن.
در صورت ممکن مثال عملی بزارین.
سپاس فراوان.

alimobe
سه شنبه 01 بهمن 1392, 16:40 عصر
سلام
من فک کنم باید عسش رو بگذاری و برنامشو بنویسی هرکی کلیک کرد یه عدد به دیتابیست اضافه شه

softex49
چهارشنبه 02 بهمن 1392, 00:35 صبح
داداش گلم من مبتدی هستم.
این چیزو که گفتی به صورت کلی میدونم.اما در پیاده سازیش موندم،مشکلم هم بیشتر تو این هس که کاربری که like زده،دیگه نتونه like همون مطلبو دوباره بزنه.Ajaxش رو بلد نیستم،و اینکه چجوری به IP فرد اجازه دوباره کار رو نده.
ممنون از دوستانی که مشکلم را مشکل خودشون بدونن و حلش کنن.

jafar01
چهارشنبه 02 بهمن 1392, 00:54 صبح
تو این سایت قشنگ توضیح داده http://barnamenevisan.org/

vira1368
چهارشنبه 02 بهمن 1392, 01:16 صبح
معمولا کسی میتونه برای کامنت لایک بذاره که عضو سایت هست!
در این صورت لازم نیست IP چک کنید. فقط کافیه ID کاربرایی که اون کامنت رو like کردن ذخیره کنید.
یعنی به عنوان مثال: میتونید از جدولتون لیست کاربرایی که کامنت شماره 3 رو لایک کردن در بیاری.

softex49
چهارشنبه 02 بهمن 1392, 01:32 صبح
معمولا کسی میتونه برای کامنت لایک بذاره که عضو سایت هست!
در این صورت لازم نیست IP چک کنید. فقط کافیه ID کاربرایی که اون کامنت رو like کردن ذخیره کنید.
یعنی به عنوان مثال: میتونید از جدولتون لیست کاربرایی که کامنت شماره 3 رو لایک کردن در بیاری.



اگه ممکنه واسم مثال عملی بزراین،ممنون میشم.

afee1990
چهارشنبه 02 بهمن 1392, 01:34 صبح
فقط کافیه یه جدول بسازی با فیلدهای :
- userId
-comment_id

که هر دوشون باید باهم unique باشن، تعداد لایک‌ها رو هم میتونی یا هر سری با شمردن تعداد سطرهایی که دارای Comment_id یکسانی هستند بدست بیار یا اینکه یه فیلد به جدول Comments اضافه کن و هر سری که کسی لایک میکنه مقدارشو یه دونه افزایش بدی

softex49
چهارشنبه 02 بهمن 1392, 01:35 صبح
تو این سایت قشنگ توضیح داده http://barnamenevisan.org/


دوست من ،نمونه کدی که سایتو معرفی کردی اشکال داره،اونم این هست که کاربر به تعداد دلخواه میتونه یه مطلب رو like کنه،ولی من میخوام فقط یکبار حق این کار رو داشته باشه.

softex49
چهارشنبه 02 بهمن 1392, 01:37 صبح
فقط کافیه یه جدول بسازی با فیلدهای :
- userId
-comment_id

که هر دوشون باید باهم unique باشن، تعداد لایک‌ها رو هم میتونی یا هر سری با شمردن تعداد سطرهایی که دارای Comment_id یکسانی هستند بدست بیار یا اینکه یه فیلد به جدول Comments اضافه کن و هر سری که کسی لایک میکنه مقدارشو یه دونه افزایش بدی


کلیتش درسته،ولی من در پیاده سازی محدودیت یکبار likeش موندم.

afee1990
چهارشنبه 02 بهمن 1392, 01:59 صبح
خب وقتی فیلدها unique باشه خودبه خود محدودیت یکبار اعمال مبشه دیگه

jafar01
چهارشنبه 02 بهمن 1392, 02:02 صبح
خودتو اذیت نکن بهت گفتم برو سورس و همه چی هس

softex49
چهارشنبه 02 بهمن 1392, 02:05 صبح
خودتو اذیت نکن بهت گفتم برو سورس و همه چی هس


دوست من گفتم که مشکل اون مثال چیه،راه حل می خوام.

softex49
چهارشنبه 02 بهمن 1392, 02:06 صبح
خب وقتی فیلدها unique باشه خودبه خود محدودیت یکبار اعمال مبشه دیگه

من مبتدام و منظورت از unique رو نمی فهمم.میشه راهنمائی کنید.

alireza_s_84
چهارشنبه 02 بهمن 1392, 02:30 صبح
من مبتدام و منظورت از unique رو نمی فهمم.میشه راهنمائی کنید.

به دیتابیست یک جدول Likes اضافه کن ، براش دوتا کلید تعریف کنید UserId و CommentId میتونی ، هروقت کاربری لایک کرد شما میای Id اون کاربر و Id اون کامنت رو توی این جدول ثبت میکنی. (تا اینجا کاربر لایک کرد رفت)
هروقت خواستی کامنتها رو نشون بدی که حالا زیر اون یا لینک پسندیدم هست یا یه باتن یا هر چیز دیگه ، شما میای چک میکنی که این یوزری که الان داری این مطالب رو بخاطرش واکشی میکنی آیا برای اون کامنت لایک کرده یا نه. اگر لایک زده بود که دیگه کدهای مربوط به نمایش لینک یا باتن رو نمینویسی (یک شرط ساده)
حالا بر فرض مثال کاربر شیطون بود و با کارهای مهندسی اومد و لینک رو شبیه سازی کرد ، چون توی جدول هر دو فیلد کلید هستن پس نمیتونن تکراری باشن و این یعنی شکست راه نفوذ کاربرای شیطون
این خیلی ساده و راحته اگر نتونستی پیاده بکنی کدهای مربوط به واکشی کامنت ها رو بذار تا دوستان راهنماییت کنن

alimobe
چهارشنبه 02 بهمن 1392, 08:23 صبح
asp بلدی خودت کد بنویسی یا از ابزار ها استفاده میکنی ؟
sql چی یه خورده بلدی؟
vb6 چی ؟ اگر بلدی بگو تا بهت بگم چیکار کنی

softex49
چهارشنبه 02 بهمن 1392, 21:30 عصر
به دیتابیست یک جدول Likes اضافه کن ، براش دوتا کلید تعریف کنید UserId و CommentId میتونی ، هروقت کاربری لایک کرد شما میای Id اون کاربر و Id اون کامنت رو توی این جدول ثبت میکنی. (تا اینجا کاربر لایک کرد رفت)
هروقت خواستی کامنتها رو نشون بدی که حالا زیر اون یا لینک پسندیدم هست یا یه باتن یا هر چیز دیگه ، شما میای چک میکنی که این یوزری که الان داری این مطالب رو بخاطرش واکشی میکنی آیا برای اون کامنت لایک کرده یا نه. اگر لایک زده بود که دیگه کدهای مربوط به نمایش لینک یا باتن رو نمینویسی (یک شرط ساده)
حالا بر فرض مثال کاربر شیطون بود و با کارهای مهندسی اومد و لینک رو شبیه سازی کرد ، چون توی جدول هر دو فیلد کلید هستن پس نمیتونن تکراری باشن و این یعنی شکست راه نفوذ کاربرای شیطون
این خیلی ساده و راحته اگر نتونستی پیاده بکنی کدهای مربوط به واکشی کامنت ها رو بذار تا دوستان راهنماییت کنن

دوست من این مطلبو که گفتی بهش اگاهم،ولی منظور دقیقتر من این هست که، کاربر بیرونی بدون اینکه تو سایت ثبت نام کنه،عمل like یه کامنتی رو انجام می ده،لزومی نداره واسه یه لایک کاربر رو مجبور به ثبت نام کنم.
مثل سایتهای خبری که طرف در مورد مثلا خبر X نظر داده و من کاربر میام به نظر اون کاربر یه لایک میزنم.اگر بخوام همون نظر رو دوباره like کنم،با استفاده از Ajax و IP سیستم،نمیزاره دوباره like کنم.

من همین مرحله Ajax و چک کردن IP رو میخوام.
امیدوارم تونسته باشم منظورم رو برسونم.(ممنون از راهنماییتون)

softex49
چهارشنبه 02 بهمن 1392, 21:33 عصر
asp بلدی خودت کد بنویسی یا از ابزار ها استفاده میکنی ؟
sql چی یه خورده بلدی؟
vb6 چی ؟ اگر بلدی بگو تا بهت بگم چیکار کنی
یکم بلدم،اگه میشد یه مثال عملی بزارین،ممنونتون میشدم.