راکت

محدود کردن دسترسی به فایل ها

12 پاسخ

سلام وقتتون بخیر
آیا امکانش هست که وقتی کاربر لاگین بود فقط فایل ها بهش نمایش داده بشه ؟
test.com/file.mp3 برای مثال این رو وارد کنه و اگر لاگین بود فقط بهش نمایش داده بشه

@milwad @endworld @mhyeganeh @SobhanDadkhah

ثبت پرسش جدید

پاسخ‌ها

12
میلاد خسروی
میلاد خسروی
@milwad

تخصص: برنامه نویس بامزه

سلام خسته نباشید
اره یه if سادس

if (auth()->check()) {
// show
}
مانی
مانی
@manish

تخصص: طراح سایت و سئوکار

@milwad
درسته اما من منظورم اینه که فایل mp3 رو بهش دسترسی نده اگه لاگین نبود

شاید پاسخ شما همین‌جا باشد

میلاد خسروی
میلاد خسروی
@milwad

تخصص: برنامه نویس بامزه

خب ببین بیا این جوری چک کن اگه لاگین بود بتونه حالا مثلا ویو رو ببینه یا دانلود کنه اگه نبود برگرده و بهش یه پیامی بده
البته gate هم میتونی استفاده کنی

مانی
مانی
@manish

تخصص: طراح سایت و سئوکار

@milwad
از php خام استفاده میکنم
اگر میشه نمونه این که گفتید رو بدید ممنون میشم

میلاد خسروی
میلاد خسروی
@milwad

تخصص: برنامه نویس بامزه

ببین نمی دونم سیستم احزارهویتت چجوریه ولی این کد برای چک کردنه

if (isset($_SESSION['loggedin']) && $_SESSION['loggedin'] == true) {
    echo "Welcome to the member's area, " . $_SESSION['username'] . "!";
} else {
    echo "Please log in first to see this page.";
}
مانی
مانی
@manish

تخصص: طراح سایت و سئوکار

@milwad
منظور من رو فکر میکنم متوجه نشدید
میگم اگر url فایل رو وارد کرد بهش نمایش داده نشه ، این امکانش هست یا نه ؟

رایموند
رایموند
@Raymond

تخصص: مختصص وردپرس - برنامه نویس لاراول

مانی
مانی
@manish

تخصص: طراح سایت و سئوکار

@endworld

تا جایی که فهمیدم چیزیه که میخوام .
یعنی الان این فعال باشه تو سایت وقتی کاربر لینک یک فایل دانلودی سایت رو در مرورگر وارد کنه بهش نمایش داده نمیشه ؟

رایموند
رایموند
@Raymond

تخصص: مختصص وردپرس - برنامه نویس لاراول

@manish
نه نشون نمیده
تا زمانی کاربر عضو بشه به لینک و محتوای آن دسترسی خواهند داشت.

مانی
مانی
@manish

تخصص: طراح سایت و سئوکار

@endworld

ممنون از شما
فقط یک سوال : من میخوام که با یک تابع بررسی کنه که کاربر عضو هست و اشتراک داره یا نه . باید چی کار کنم ؟
(تابع رو نوشتم)

محمدحسن یگانه
محمدحسن یگانه
@mhyeganeh

تخصص: Full-Stack Web Developer Freelancer

یک نکته رو توجه داشته باشید:

به صورت پیش فرض وقتی آدرس URLیک فایل به سرور میرسه، (مثلا example.com/ali.jpg) وب سرورتون طبق تنظیماتی که بهش داده شده:

اول از همه میگرده دنبال فایلی با این نام و فرمت در مسیر مشخص شده. اگر پیداش کرد همون فایل رو serve می‌کنه و ریکوئست اصلا به هسته برنامتون و کدهای PHP یا لاراول نمیرسه که بخواد چیزی چک بشه.

دوم اگر چنین فایلی وجود نداشت، ریکوئست به router برنامتون میرسه و بین route های تعریف شده دنبال تطابق می‌گرده. اگر پیدا کرد به Controller مربوطه میرسه و اگر تطابقی پیدا نشد پاسخ با کد 404 برمی‌گردونه.

با این توضیحات اول از همه اینکه اگر شما آدرس مستقیم به یک فایل بدید فارغ از هسته برنامتون و احراز هویت و ... فایل قابل دریافت خواهد بود. یا باید تنظیمات وب سرورتون رو تغییر بدید و شرط دسترسی ها رو تو اون لایه تعریف کنید.

یا راه بهتر اینه که یک route برای دانلود فایلهای مورد نظرتون تعریف کنید به نحوی که با پوشه بندی اصلیتون تطابق نداشته باشه (اینجوری درخواست به هسته برنامتون میرسه) بعد با استفاده از دستورات شرطی که دارید اگر شرطش تایید شد فایل رو از مسیر اصلیش که غیر قابل دسترس عمومی هست پیدا کنید و یک response از نوع فایل با mim-type مرتبط برگردونید.

پارسا سجادی
پارسا سجادی
@mrcortexcode

تخصص: فول استک وب

سلام
سشن ست کن
بعد که ست شد
چک کن که ایا وجود داره یا نه
بعداگه وجود نداشت
بزار بره به صفحه
@manish

برای ارسال پاسخ لازم است وارد شده یا ثبت‌نام کنید

ورود یا ثبت‌نام