سلام دوستان
وقتی من محدودیت دسترسی میزارم برای صفحه مثلا exmaple.php ، دیگ کاربر نمیتونه پست اون ادرس get ک دادم رو ببینه و انتقال پیدا میکنه ب جایی ک من گفتم برا این کار چیکار باید بکنم؟ فقط میخام پست رو ببینه دیگ اون صفحه example رو نبینه
میخام پست مربوط به این رو ببینه جز خود صفحه خودش
example.php?post=dsfdfdf
متوجه شدم می تونید یه شرط ابتدای صفحه بزارید که اگر get وجود داشت به دیتابیس ارجاع بشه و صفحه نمایش داده بشه و اگر get وجود نداشت کاربر به صفحه لیست مقالات ریدایرکت بشه، اینطور دیگه خطا هم به وجود نمیاد.
if(isset($_GET['post'])){
//show post
}else{
//redirect
}
من یک صفحه ای دارم برا مثال article.php ، تو این صفحه من کد های addpost و ی سری چیزای دیگ مث کامنت پست رو قرار دادم ، خب الان وقتی کاربری میاد یک پست رو منتشر میکنه بهش با get دستور دادم و این پست مربوطه این شکلی میشه
url : article.php?post= title post
ولی اینجا چون سشن ثبت کردم کسی این صفحه article من رو نبینه ، یعنی کاربری که ورود نکرده ب سایت من ب این صفحه دسترسی نداره ، ولی اینطوری باعث میشه حتی پست هم نتونه ببینه همونی ک بالا ادرس دادم منظورمه
اگرم سشن براش ثبت شه میتونه ببینه ولی ی چیز در ه برهم میبینه
تو پنل وقتی میخایم پست اضافه کنیم اسم ادرسش اینه article.php
الان چیکار کنم فکک میکنم اشتباه انجام دادم ولی هرچی فکر میکنم نمیدونم باید چیکار کنم که مشکلم رفع شه ، ممنون از شما
@zahramalekipor
ابتدا باید در مورد الگوی کار تصمیم بگیرید.
اینجور که من متوجه شدم یک سری دسترسی لازم دارید برای کاربری که لاگین کرده و میتونه پست بزاره. حالا می خواهید برای کاربرانی که لاگین کردن این پست نمایش داده بشه اما برای کاربرانی که لاگین نکردن قابل مشاهده نباشه.
درست متوجه شدم؟
نه اینطوری نیس
من تو پنل مدیریتی ادمین یک صفحه دارم به اسم add-post.php که وقتی بخام مقاله منتشر بکنم هست ، یک صفحه دیگ دارم ب اسم modiriat-post.php که کل پست هایی ک منتشر شده رو میبینم و میتونم حذف یا ویرایش بکنم
خب الان وقتی پستی که ایجاد میشه و محتواش چجوری باشه ب چ شکل باشه اینا رو تو ی صفحه ب اسم article.php طراحی کردم وقتی هم پستی منتشر بشه ب این شکل منتشر میشه article.php?id=1 و بقیه پست ها هم به صورت id=2 و ... تا اینجا همه چی روبراهه
کاربر چ لاگین باشه چ لاگین نباشه میتونه همه پست هارو هم ببینه با اینم مشکلی ندارم
ولی وقتی کاربر میاد ادرس رو اینطوری وارد مرورگر میکنه article.php با کلی ارور بر میخوره خب معلومه باید بهش بر بخوره چون دستورات php و طراحی اون مدل پست رو قرار دادم
الان نمیخام کاربر این صفحه article.php به صورت خالی ببینه و فقط پست رو به این شکل ببینه article.php?id=1
وقتی میخام دسترسی رو قفل میکنم دیگ حتی اون پست رو به ادرس article.php?id=1 رو هم نمیتونه ببینه
چیکار میتونم بکنم؟ راه دیگ نداره یا من اشتبا انجام میدم ممنون میشم ی توضیح خوب بدید
متوجه شدم می تونید یه شرط ابتدای صفحه بزارید که اگر get وجود داشت به دیتابیس ارجاع بشه و صفحه نمایش داده بشه و اگر get وجود نداشت کاربر به صفحه لیست مقالات ریدایرکت بشه، اینطور دیگه خطا هم به وجود نمیاد.
if(isset($_GET['post'])){
//show post
}else{
//redirect
}
@hekmati
عذرخواهی میکنم ب دلیل مجدد سوال همه چی درس شد تازه دیدم ی مشکل دیگ باز پیش اومد
وقتی ادرس این مدلی وارد میکنم اوکی هست article.php و ریدایرکت میکنه ی جا دیگ
ولی وقتی اینطوری این id=1 رو جلوش ی عدد یا حروف اضافه میزارم بازم همون ارورای صفحه article میده و هرچی هم تو url وارد میکنم باقی میمونه این و چیکارش کنم؟ مثلا همیچن مقداری وارد میکنم ی چیز عجیب غریب جلو این ایدی
article.php?id=1kdjfsdgf
حالا باید سه حالت رو بررسی کرده و براش سناریو مناسب رو تدوین کنید.
حالت اول: get وجود داره و مقدار اون هم درسته یعنی آی دی صفحه ارایه شده توی دیتابیس موجوده
حالت دوم: get وجود داره اما مقدارش درست نیست
حالت سوم: get موجود نیست
شروط رو بر اساس وضعیت بالا می تونید تنظیم کنید.
if(isset($_GET['post'])){
//ریکوست به دیتابیس و دریافت ریسپانس
if($response){
//show page
}else{
//404 error
}
}else{
//redirect
}
یک راه دیگه هم برای اجرای حالت دوم و سوم هست که در این مواقع کاربر رو به صفحه 404 ارجاع بدید یعنی در صورتی که صفحه مورد نظر وجود نداشت کاربر با خطای 404 مواجه بشه. یک صفحه استاتیکی 404 طراحی کنید و توی فایل .htaccess این کد رو قرار بدید.(آدرس فایل 404 مد نظر است)
ErrorDocument 404 /404.php
آیا مایل به ارسال نوتیفیکیشن و اخبار از طرف راکت هستید ؟