PDA

View Full Version : سوال: دانلود فايل به صورت شرطي



behrooooz
چهارشنبه 12 آبان 1389, 14:17 عصر
با سلام خدمت اساتيد محترم.

من اين تالار رو حسابي گشتم. ولي نتونستم در مورد مشكلم چيزي پيدا كنم.
حالا يا ضعف از سرچ من بوده يا واقعا مطلب موجود نبود.

سوالم رو به اين شكل مطرح ميكنم.

هدف من :

يوزر پس از لاگين كردن و سرچ صفحات سايت، نهايتا به صفحه اي برسد كه لينك دانلود فايلهاي مورد نظرش در آنجا باشد. يوزر قبلا توسط پرداخت اينترنتي پول پرداخت كرده و حساب كاربري اش را شارژ كرده. حالا با كليك روي لينك دانلود، سايت بايد وضعيت يوزر را چك كند و اگر از لحاظ مالي مجاز بود، اجازه دانلود را به يوزر بدهد و مقداري از اعتبارش كم كند. در واقع يوزر بايد براي دانلود پول بدهد.

مشكل من:

الآن مشكلي با لاگين كردن و پرداخت وجه به صورت آنلاين و اعتبار دادن به يوزر ندارم. فقط نميدونم چطور بايد براي يك لينك دانلود شرط بررسي شود.
خواهشمندم اگر اطلاعاتي در اين زمينه داريد كمكم كنيد.

binyaft
چهارشنبه 12 آبان 1389, 15:58 عصر
مقدار هزینه پرداخت شده از طرف کاربر در بانک شما وجود داره ، میتونید از اون اطلاعات استفاده کنید

behrooooz
چهارشنبه 12 آبان 1389, 16:16 عصر
مقدار هزینه پرداخت شده از طرف کاربر در بانک شما وجود داره ، میتونید از اون اطلاعات استفاده کنید

با سلام و تشكر از توجه شما.

فكر كنم منظورم رو خوب بيان نكردم.

سوال من اينه: چطور ميشه يك لينك به يك فايل رو شرطي كرد؟ يعني وقتب يوزر لينك رو كليك ميكنه اول يك شرط بررسي بشه و بعد فايل دانلود بشه.

با تشكر

binyaft
چهارشنبه 12 آبان 1389, 17:06 عصر
بعد از چک کردن

<?php
header('Content-type: application/pdf');
header('Content-Disposition: attachment; filename="downloaded.pdf"');
readfile('original.pdf');
کد بالا original.pdf رو میخونه و پنجره دانلود را برای کاربر باز میکنه
موفق باشید

maysam.m
پنج شنبه 13 آبان 1389, 00:59 صبح
بعد از چک کردن

<?php
header('Content-type: application/pdf');
header('Content-Disposition: attachment; filename="downloaded.pdf"');
readfile('original.pdf');
کد بالا original.pdf رو میخونه و پنجره دانلود را برای کاربر باز میکنه
موفق باشید

ببخشید یه سوال:
این طوری لینک دانلود معلوم نمی شود؟ چون اگه لینک دانلود معلوم شود ممکنه هر کسی بتونه دانلود کنه!

funpatogh
پنج شنبه 13 آبان 1389, 02:07 صبح
شما مقدار پرداخت شده رو توی بانک ذخیره کن بعد هر بار که کاربر لاگین میکنه اعتبارش رو نگاه کن اگر اعتبار کافی داشت بهش اجازه دانلود بده اگر اعتبار نداشت هم پیغام بده که باید حسابتون رو شارژ کنید

behrooooz
دوشنبه 17 آبان 1389, 10:36 صبح
بعد از چک کردن

<?php
header('Content-type: application/pdf');
header('Content-Disposition: attachment; filename="downloaded.pdf"');
readfile('original.pdf');کد بالا original.pdf رو میخونه و پنجره دانلود را برای کاربر باز میکنه
موفق باشید


ممنون. كارم راه افتاد با همين كد.

binyaft
دوشنبه 17 آبان 1389, 14:07 عصر
ببخشید یه سوال:
این طوری لینک دانلود معلوم نمی شود؟ چون اگه لینک دانلود معلوم شود ممکنه هر کسی بتونه دانلود کنه!

لینک دانلود رو میشه کاری کرد که بعد از 1 ساعت از کار بیافته ( زمانش متغیر هست )

behrooooz
سه شنبه 18 آبان 1389, 16:00 عصر
ببخشید یه سوال:
این طوری لینک دانلود معلوم نمی شود؟ چون اگه لینک دانلود معلوم شود ممکنه هر کسی بتونه دانلود کنه!


والا من از اين كد استفاده كردم و لينك دانلود هم معلوم نشد.

اما معلوم هم بشه زياد مهم نيست. چون شما ميتوني فايل مورد نظر رو داخل يك فولدر بذاري و دسترسي مستقيمش رو ببندي. طوري كه فقط نرم افزار سايت بهش دسترسي داشته باشه.
به اين شكل هيچكس نميتونه بدون طي كردن مراحل سايت فايل رو دانلود كنه.

behrooooz
سه شنبه 18 آبان 1389, 16:09 عصر
بعد از چک کردن

<?php
header('Content-type: application/pdf');
header('Content-Disposition: attachment; filename="downloaded.pdf"');
readfile('original.pdf');کد بالا original.pdf رو میخونه و پنجره دانلود را برای کاربر باز میکنه
موفق باشید

آقا من اين كد رو به طور كاملا موفقيت آميز استفاده كردم و مساله حل شد.
فقط يه موردي داره.
تو ساختار برنمه من دستورات بعد از اين قطعه كد اجرا نميشه.
فقط فايل دانلود ميشه و بعدش هيچي.
چرا؟

binyaft
سه شنبه 18 آبان 1389, 16:50 عصر
از چه کدهایی استفاده میکنید؟؟؟
اون ها رو بالا تر از توابع header بزارید و بافر رو روشن کنید

behrooooz
سه شنبه 18 آبان 1389, 17:31 عصر
از چه کدهایی استفاده میکنید؟؟؟
اون ها رو بالا تر از توابع header بزارید و بافر رو روشن کنید



if($_POST){
$etebar=$_SESSION['etebar']-$default['xfileprice'];
$_SESSION['etebar']=$etebar;
$sql = "UPDATE xxuser SET xetebar='$etebar' WHERE xuserid='$userid'";
$db->query($sql);
header('Content-type: application/pdf');
header('Content-Disposition: attachment; filename="downloaded.pdf"');

readfile('download/'.$id);
redirect(URL);
break;

rapidpich
پنج شنبه 20 آبان 1389, 10:55 صبح
بعدش نمیتونی ریدایرکت کنی
هیچی اضافه به کاربرت نمیتونی بدی
الان اون فایل هم خراب دانلود شده

behrooooz
پنج شنبه 20 آبان 1389, 14:27 عصر
بعدش نمیتونی ریدایرکت کنی
هیچی اضافه به کاربرت نمیتونی بدی
الان اون فایل هم خراب دانلود شده


والا اينجور كه من با يكي از دوستان صحبت كردم چون اين كدها ريسپانس كلاينته بعدش ديگه براوزر هيچي نميخونه

در ضمن فايل سالم دانلود ميشه
تست شده

rapidpich
جمعه 21 آبان 1389, 12:45 عصر
هرچیزی که تو خروجی بعدش بنویسی میره تو فایل
md5 فایلهارو چک کن