הצבעה חוזרת

games

New member
הצבעה חוזרת

היי
בניתי מנגנון דירוג לאתר שלי בו הגולשים יכולים לעבור על הפריטים המוצגים בו ולדרג כל אחד. אני מעוניין למנוע מהגולשים להצביע לכל פריט יותר מפעם אחת. איך (בגדול) מומלץ לעשות את זה? בגלל בורותי היחסית, אני מעדיף להשתמש בSESSIONS. האם כדאי? או שעדיף להשתמש בכל זאת בעוגיות? תודה
 

games

New member
אוקיי... מתאים לי ../images/Emo13.gif

אני באמת לא צריך משהו מאובטח מדי... אבל - יש לי מעל 700 פריטים באתר. נניח ומישהו יעבור פריט פריט וידרג - האם לא יגמר המקום בעוגיה? (יש לי גם דברים אחרים שמאוחסנים על העוגיה). וחוץ מזה, מה האלגוריתם (?) הבסיסי בו אני משתמש? לכל פריט יש קוד שמייחד אותו (לדוגמא house, man, computer) - כשמישהו מצביע ל"בית", איך אני מכניס את זה לעוגיה?
 

games

New member
ועוד שאלה

האם שימוש בעוגיות מאט את טעינת הדף?
 

אמיר ט

New member
שיטה אחת

תחשוב על העניין בצורה כזאת, אתה הולך לשמור מידע אצל הלקוח, מן הסתם ללקוח תהיה אפשרות לגשת ולשנות את המידע הזה לכן אתה רוצה שהמידע הזה יהיה כמה שפחות רלוונטי ללקוח ומאד רלוונטי לגביך, איך עושים כזה דבר אתה שואל ? יפה, שאלה מצוינת... תבנה לך טבלה, שתכיל מזהה ID חד-ערכי (UNIQUE מה שנקרא) שאותו אפשר לקבל בהרבה צורות שונות משונות (לדוגמא לקחת את התאריך\שעה ואת הIP ולעשות להכל MD5, ואז קיבלת מזהה בן 26 אותיות שסביר מאד מאד להניח שלא תקבל עוד אחד כזה אי פעם...) עכשיו כשיש לך מזהה כזה, אתה יכול לאחסן בטבלה הזאת את כל הפעילות שביצע משתמש מסוים, לאיזה דברים הוא הצביע, מה הוא הצביע וכן הלאה וכן הלאה. שגם כאן אתה פתוח לאפשרויות מימוש רבות. עכשיו נותר מצב שלך יש רישום מלא ומקיף של כל מה שהמשתמש עשה, ולעומת זאת למשתמש במחשב יש 26 אותיות שגם בעוד 100 שנה הוא לא יוכל לעשות איתם כלום... כמובן שתתאים את הכל לצרכים וההגבלות שלך איך שאתה רואה לנכון, וכמובן שיש עוד דרכים לממש את העניין, אבל זאת ראיה אחת של הנושא, בהצלחה.
 

games

New member
הממ...

תודה, אבל אני לא חושב שבמקרה הזה צריך לדאוג לעניין הזה. אני רק רוצה מנגנון בסיסי שימנע מגולשים רגילים להצביע פעמיים - אם יש גולש שמה שעוזר לו בחיים זה להצביע שוב ושוב לפריט מסויים, שיהנה. השאלה שלי היא במישור היותר מעשי. משתמש הצביע לפריט שהענקתי לו את הקוד HOUSE. הפניתי אותו לסקריפט שמשקלל את ההצבעה שלו יחד עם הדירוג הקודם, ובסופו של דבר אני רוצה לשתול בעוגיה משהו שיעיד שהוא הצביע לפריט הזה. איך אני עושה את זה? תודה
 

shanor

New member
מממ...

בוא נחבר כאן כמה דברים שאמיר הציע יחד עם הדברים שאתה צריך. לפי ההסברים שלך כל מה שאתה רוצה לעשות זה להביא לכך שמשתמש מסויים לא יוכל להצביע פעמיים לאותו פריט. אחסנה של הפריטים שעליהם המשתמש הצביע בקוקי היא רעיון בעייתי מכיוון שיש לך הרבה פריטים ובשלב מסויים יגמר המקום. לפי IP, יש בעיה אחרת. למשל כל מי שמתחבר ב- DIAL UP, מקבל IP אחר כל חיבור ולחלופין אלו שמחוברים דרך נתבים / רשתות יכול להיות שיש להם IP אחד לכמה מחשבים (שיוצאים כולם דרך אותו GATEWAY). גם זו בעיה. אני עדיין הייתי הולך על קוקיז. אני מניח שהאתר הוא אתר רגיל שלא דורש מהגולשים להכנס פנימה בעזרת שם משתמש וסיסמא. על כן היות ואין משמעות למדרגים אלא יש משמעות לדירוג, מי שבאמת יטרח למחוק את הקוקי עשרות פעמים יהיה קשה לנצח אותו... (למרות שאפשר לצמצם את זה אם תבחר למשל לשלב IP בתוך הרעיון - כך שאותו IP יוכל להצביע רק פעם ב-10 דקות למשל...זה מתיש מעצבן ולא ממש יעיל מבחינת הגולש אם הוא יכול להצביע 6 פעמים בשעה...). כדי להתמודד עם הבעיה שיש לך הרבה מאוד פריטים, אפשר להכנס לתוך הקטע של מאגר נתונים ולבנות סקריפט בסגנון הבא: אפשרות ראשונה: כניסה של משתמש חדש - אין לו קוקי. 1.1 השתלת קוקי עם מספר יחודי לקוקי. 1.2 רישום המספר היחודי בתוך מאגר הנתונים. אפשרות שניה: כניסה של משתמש קיים - יש לו קוקי. 2.1 בדיקת מספר הקוקי ומציאת הפריטים שדורגו. 3. רישום הפרטים המדורגים על פי מספר הקוקי במאגר. 3.1 אם משתמש בוחר פריט שכבר מדורג, הוא לא יוכל לדרג שוב. החיסרון בדרך הזו היא שצריך מאגר נתונים אבל לאור כל מה שאתה מתאר, לדעתי זו הדרך העדיפה. מקווה שלא סיבכתי עיניינים בברכת הצלחה, שנאור.
 

games

New member
כמה שאלות

תודה על ההסבר המפורט, אבל יש לי כמה שאלות... קודם כל (ואני יודע שזה מאוד בסיסי) האם שרת יכול ליצור שני קבצי טקסט על המחשב של המשתמש? כך אני אוכל ליצור שתי עוגיות על המחשב של המשתמש - אחת בשביל הדירוג ואחת בשביל כל השאר. וחוץ מזה, האם מאגר הנתונים צריך להיות מבוסס MYSQL? כי המקום שיש לי בבסיס הנתונים מוגבל ביותר... משהו שאני חושב שצריך להבהיר זה שהסקריפט הזה לא צריך להיות "מאובטח מכל הכיוונים" - אני מעוניין רק ב"הגנה" בסיסית - כיום המצב הוא שמישהו שרוצה לדרג יכול לפתוח את החלון של הדירוג עשרות פעמים ברצף - והפרצה הזאת מן הסתם קוראת למשועמם. אני רק מעוניין במצב בו ברגע שהוא דירג פעם אחת, הוא לא יוכל לדרג שוב מבלי "להתאמץ" - וזה לא משנה אם הוא יצטרך לסגור את חלון הדפדפן או למחוק את העוגיה - העיקר שזה לא יתבצע ב"רצף". עוד משהו שרציתי לדעת זה איך אני קובע בעוגיה שהמשתמש הצביע - האם ניתן ליצור ARRAY כמו "פריטים שהצביעו להם: פריט1, פריט2, פריט3"? או שאני צריך להכניס לעוגיה שורות כמו "פריט1=0" ו"פריט2=0" כדי לדעת אם הצביעו לפריטים האלו. מצטער שאני מסתבך... תודה
 

אמיר ט

New member
עקרונית נכון

אבל IP זה דבר שמשתנה... בעיקר לאנשים שיש לך חיבור בחיוג לאינטרנט.
 

יולו

New member
אממ..

ועוגיות נמחקות.. אם הוא צריך משהו ממש ממש מאובטח הייתי משתמש ב ip ועוגיות.. תבדוק אם יש את אחד מהם אל תביא לו שוב.. :) אם לא תבחר מה שבא לך.. מה שאתה חושב שישאר יותר זמן אצל הלקוח..
 

nirdagan

New member
sessions עצמו זה עוגיות

זו פשוט שכבה תכנותית בהן העוגיות לא מתוכנתות ישירות ע"י המתכנת בקוד.
 

Mr Boggy Man

New member
session זה עוגיות שנשמרות

על השרת ולא על הלקוח ככה ללקוח אין גישה לשנות אותן. יותר מאובטח כאשר מדובר במערכות משתמשים עם סיסמא ושטויות כאלו, הבעיה שהן נמחקות ברגע שהדפדפן נסגר.
 
למעלה