עבור לתוכן

איך ליצור קישור חד פעמי בPHP

Featured Replies

פורסם

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

דוגמא: כאשר המשתמש רוצה להוריד את הקובץ X הוא מקבל קישור מיוחד בסגנון get.php?id=3423423 ומוריד את הקובץ, הקישור לא חושף את הלינק המקורי (לא היפר קישור) ולאחר ההורדה הלינק הופך ללא שמיש אבל הקובץ נשאר באתר.

אשמח לקבל רעיונות איך לבצע זאת ???

פורסם

מימוש אפשרי:

אתה מחזיק טבלאות בDB שמנהלות לך את הקבצים להורדה.

לכל קובץ ID משלו.

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

ואם המשתמש לא הוריד אותו, אזי תכתוב את הקובץ לתוך הheader של הresponse, ואז פשוט תעשה flush, וכל ישלח למשתמש (תקפוץ לו הודעה שיש לו קובץ להוריד).

פתרון מאוד פשוט וקל למימוש.

בהצלחה.

פורסם

ברמת הDB:

שתי טבלאות -

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

הטבלאה השנייה היא תהיה של קישורי הורדה זמניים בה יהיו הID לרשומה של הקובץ וזמן שבה יפוג תוקפו של קישור ההורדה.

כאשר אדם מקבל ID של הורדה אתה בודק אם ההורדה פגה, אם לא, אתה מפנה אותו לדף הורדה של קובץ (ראה כאן).

אתה כמובן תצטרך לחסום גישה ישירה אל המיקום בו אתה שומר את הקבצים

חיפוש קצר בגוגל הביא אותי לפה:

http://stackoverflow.com/questions/869269/how-do-i-serve-a-downloadable-file-online-without-exposing-the-physical-path

^^^ מספיק בהחלט

ארכיון

דיון זה הועבר לארכיון ולא ניתן להוסיף בו תגובות חדשות.

דיונים חדשים