PDA

View Full Version : سوال در خصوص اجازه دانلود فایل برای یک کاربر خاص از هاستی دیگر



cmdeveloper
چهارشنبه 13 دی 1391, 15:11 عصر
سلام و خسته نباشید.
برای اینکه بتوانیم دانلود فایل را برای یک کاربر خاص محدود کنیم ( یعنی مثلا به صورت فروشگاه تنها کسی که فایل را خریداری کرده ) می توانیم از هدر های php استفاده کرده و فایل را برای وی در دسترس قرار دهیم، که البته php به دلایل امنیتی توابع خود را بر روی فایل های روی هاست اصلی محدود کرده.
سوال من اینجاست که چطور می توانم فایلی که بر روی یک هاست دانلود قرار داده ام را پس از فروش در اختیار کاربر مورد نظر قرار دهم؟
در صورت کمک ممنون خواهم بود.

plague
چهارشنبه 13 دی 1391, 16:48 عصر
اگه لینک مستقیم داشته باشی میتونی براش استریم کنی
باید از روی هاست مبدا بخونی خودت و بدی به یوزر

http://stackoverflow.com/a/6914978/590589

Unique
چهارشنبه 13 دی 1391, 16:53 عصر
توی انجمن یکی دوبار سوال شد ه و روش هایی هم گفته شده ، بهترین کار اینه که هر کاربر پنل خودش را داشته باشه و مشخص باشه چه فایل هایی را خرید کرده و برای زمان معینی اجازه دانلود همان فایل ها در صورت ورود به سایت براش مهیا بشه از طریق تابع header اگه هم نمیخواین حتما لاگین کنه باید hash بسازین و برای ایمیل کنین تا با اون hash توری زمان محدودی بتونه دریافت کنه.

cmdeveloper
چهارشنبه 13 دی 1391, 17:12 عصر
ممنون دوستان. مشکل من توی دانلود فایل های خرید شده کاربر ها از روی سرور خود سایت نیست.
مسئله اینجاست که فایل های من روی یک سرور دیگه (هاست دانلود) قرار داره. من می خوام کاربر بعد از خرید بتونه فایل رو دانلود کنه از هاست دانلود.
اگر فایل ها بر روی هاست خودم بود، با تعیین هدر و تابع readfile() اگر کاربر لاگین کرده بود اجازه دانلود رو میدم، اما مشکل من اینه که فایل ها روی سرور اصلی سایت نیست!

چطور می تونم این کار رو انجام بدم؟!

Unique
پنج شنبه 14 دی 1391, 03:58 صبح
سرور دانلود شما php نداره ؟

cmdeveloper
پنج شنبه 14 دی 1391, 04:35 صبح
داره! ولی متوجه نمی شم، اگر بخوام از روی آرائه get یا post یا حتی _server استفاده کنم، با curl راحت می شه همشو تغییر داد به نظرم :| میشه توضیح بدین ؟

Unique
پنج شنبه 14 دی 1391, 16:24 عصر
یکی از کارهایی که خودم میکنم اینه که میام مشخصه فایل(حالا با id یا نام فایل یا هر قانونی که میگذارم) + زمان expire شدن را به صورت یک پارامتر encrypt شده با get ارسال میکنم و لینک را میدم به کاربر اینطوری تا یک زمان محدود میتونه با اون لینک دانلود کنه ! کار دیگه ای هم که میشه کرد اینه که id کاربر را با get بدین به php روی سرور فایل ، بعد با curl از روی سرور file ها و صدا زدن یک اسکریپت روی سرور سایت که چک میکنه آیا id کاربر معرفی شده لاگین کرده یا نه اجازه دانلود را بدین. سناریو خیلی خیلی زیاده و باید دید شما دنبال دقیقا چی هستین.

cmdeveloper
پنج شنبه 14 دی 1391, 21:54 عصر
روش اول برای سایت های دانلود خیلی عالیه! اما روش دوم برای من مناسبه و عملی هم هست. ممنونم از راهنماییتون.