שלום

rafi20

New member
שלום

רציתי לשאול איך אני יכול להכין סופר הורדות..ניתן לעשות את זה על PHP ? זאת אומרת שזה יספור כמה פעמים לחצו על איזה שהוא לינק.. תודה..
 

shanor

New member
מממ...

האמת, הגישה לאיך צריכה להיות בהתאם לשימוש שאתה צריך. אם מדובר באתר גדול, ובאוסף גדול של לינקים (ואולי גם קטגוריות שונות ותתי קטגוריות / לינקים) אני הייתי הולך על חיבור ל- MYSQL. אם מדובר באתר קטן או במספר קטן של לינקים אני לא בטוח שלבחור ב- MYSQL זה הפתרון הטוב ביותר (אם כי אין ספק שזה פתרון טוב בפני עצמו - אבל זה יהיה כמו להשתמש בתותח כדי להרוג זבוב... אפקטיבי, בדרך כלל יעבוד אבל האם זה יעיל...?). במצב זה הייתי פותח קובץ טקסט קטן, ורושם בו משהו כמו
link NAMEOFLINK times XYZ;​
בכל אופן,כל מה שצריך לעשות זה לגרום ללינק להפנות את הדפדפן לדף PHP. כל הלינקים יפנו לאותו קובץ PHP בדיוק כאשר אחד הפרמטרים שיועברו עם הלינק יהיה גם הלינק עצמו, כך כל הלינקים יפעילו את אותו סקריפט, שיריץ את הקוד של כמה פעמים הלינק הזה נלחץ עד כה, יוסיף 1, וירשום מחדש את המספר שיצא. זהו בגדול, זו התיאוריה, עכשיו בהצלחה עם הת'כלס. שנאור.
 
---->

בגדול, אתה צריך לעשות שכל פעם שמשתמש ילחץ על "הורדה" הוא יופנה לכתובת
page.php?id=X&url=URL_TO_FILE​
עכשיו בדף page.php היה קוד שמעדכן את השדה count ב +1,איך הוא ידע את מה לעדכן? על ידי ה ID מועבר ב URL, לאחר מיכן הוא יופנה לכתובת שמועברת ב url. בהצלחה.
 

rafi20

New member
הבנתי..

אני דיי חדש ב PHP..תוכל להגיד לי מה אמור להיות רשום ב page.php בבקשה? תודה מראש..
 

selalerer

New member
בזהירות!

במערכת מרובת הורדות אתה צריך לדאוג לסנכרון, כך שלא יהיה מצב שהדף רץ עבור משתמש 1 קורא את הcount, ואז הדף רץ עבור משתמש 2, הוא קורא את אותו הcount, ואז שוב ממשיך המשתמש 1 והוא כותב לדיסק count+1 ואז שוב ממשיך משתמש 2 וגם כותב לדיסק count+1. למעשה הורידו את הקובץ שני משתמשים אבל המונה קודם רק ב1.
 
אם אינני טועה

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

rafi20

New member
הצלחתי:)

השאלה אם אני יכול לשים את הלינק לסטסטיקת הורדות באתר.. זאת אומרת יש שם כל מיני סיסמאות של ה db וכ"ו..זאת אומרת בתוך download_counter.php אי אפשר לקרוא את זה נכון? זה אוטמאטית הופך ל html
 

selalerer

New member
אני לא מכיר מספיק טוב את המע' של

PHP כדי להגיד לך אם הוא דואג לסנכרון בעצמו או לא, אבל היות ואתה יכול לכתוב תוכנות PHP ארוכות למדיי בדף אחד והמפרש של PHP לא יכול להבין כל מה שאתה עושה שם, לא סביר שהוא ייתן לך לסיים עם דף אחד לפני שהוא יתחיל להריץ בקשה שניה על אותו הדף (אם מדובר בדף עם הרבה קוד שלוקח זמן כמובן). במקרים כאלו יכולים להיווצר לך בעיות כמו זאת שהסברתי בהודעה הקודמת. לכל מע' הפעלה יש כלים משלה לסינכרון בין תהליכים שרצים בנפרד, אני לא יודע אם יש כלים בPHP או שתצטרך ליצור לבד כאלו, אבל מה שכן, לכל DB יש Transactions שדואגות שכל הפעולות בתוך Transaction אחד יתבצעו ביחד על הDB וכך נמנעות בעיות של סינכרון. אם תעשה מונה בעזרת DB אז לא תהיה לך הבעיה הזאת, עם קבצים תצטרך לדאוג לסינכרון בעצמך.
 

פשוש

New member
סינכרון קבצים - ע"י flock

זהו מנגנון נעילת קבצים שמאפשר בנית "קוד חכם" שנועל את הקבצים לקריאה/כתיבה ומאפשר לבצע מונה שכזה ע"י המתנה של התהליך במידה והקובץ נעול, לדוגמה ע"י while. מצד שני השימוש בmySQL אינו overkill כשצריך לבנות אפליקציה יעילה ונכונה. מצד שלישי (לכל מטבע יש שלושה צדדים פלוס מינוס) יש פונקציות DB מובנות בתוך השפה כך שאפשר להשתמש בהן והמנגנון כבר ידאג לסינכרון.
 
למעלה