• 1 رای - 5 میانگین
  • 1
  • 2
  • 3
  • 4
  • 5
عدم نمایش صفحات include بطور مستقیم
#1
سلام
دوستان من میخواستم با استفاده از $_SERVER
کاری کنم که صفحاتی که قراره include بشن
کسی دیگه نتونه با آدرس مستقیم وارد اون صفحات بشه
مثلا یه صفحه دارم که توش منو طراحی شده . میخوام این منو رو Include کنم به یه سری از صفحاتم

اگر کسی اسم مستقیم این صفحه (menu.php)رو نوشت ریدایرکت بشه به جایی که من میخوام
  پاسخ
تشکر شده توسط :
#2
خب اگه مستقیم وارد کنه چه اتفاقی می افته؟
همه جوره اش رو داریم ظاهرن
  پاسخ
تشکر شده توسط : newphp
#3
یه ثابت رو define کن توی صفحه اصلی و توی صفحه menu چک کن اگر این ثابت defined نشده بود اخطار بده و exit کن
  پاسخ
تشکر شده توسط : molana newphp pary_daryayi
#4
(۱۳۹۱ مرداد ۲۲, ۱۱:۵۲ ب.ظ)admin نوشته: یه ثابت رو define کن توی صفحه اصلی و توی صفحه menu چک کن اگر این ثابت defined نشده بود اخطار بده و exit کن

مقدارش چی باشه؟
  پاسخ
تشکر شده توسط :
#5
هرچی می خاد باشه
مهم نیس

کد پی‌اچ‌پی:
define('aaaaaaaaaaa'); 

تو فایل منو هم می گی:
کد پی‌اچ‌پی:
if(!defined('A')){
    
//do something

همه جوره اش رو داریم ظاهرن
  پاسخ
تشکر شده توسط : newphp
#6
مرسی کارم راه افتاد میخواستم بدونم میشه این کارو با استفاده از اطلاعاتی که $_SERVER میده انجام داد؟
اگر لطف کنید توضیح بدید ممنون میشم
  پاسخ
تشکر شده توسط :
#7
خب ببینید به اطلاعات $_SERVER هیچ اعتباری نیست .

روند کلی برنامه اینه .

شما یک فایل index.php داری که کلیه ورودی ها روی اینه . مثلاً
index.php?action=post&id=1
در نتیجه باید بقیه دستری به سایر فایلها ممکن نباشه .
و هر جا لازم شد اون فایل توی index.php تحت شرایطی اینکلود بشه .
مثلاً میتونه محتوای فایل index.php این باشه
کد پی‌اچ‌پی:
define('access','yes');

if( ! empty(
$_GET['action'] && $_GET['action'] === 'post')
include 
"./post.php"
بعد توی فایل post.php توی خط اول مینویسی .
کد پی‌اچ‌پی:
defined('access') or die('no access');

echo 
$_GET['id']; 

اینجوری فقط زمانی فایل post.php اجرا میشه که ثابت access تعریف شده باشه و اینم لازمه اینه که مستقیم توسط index.php اینکلود بشه .

امیدوارم متوجه شده باشی .
وبلاگ rezaonline.net/blog
سفارش برنامه نویسی reza.biz
Php , mysql , postgresql , redis , Yii and ... Cool
  پاسخ
تشکر شده توسط : newphp
#8
سلام البته این روشی که دوستمون گفت خیلی بهتره
ولی اگه می خوای با سرور کار کنی
print_r($_SERVER)
بگیر ،بعد بین کدوم یک از عضو ها بدرد میخوره بعد از همون استفاده کن
  پاسخ
تشکر شده توسط : newphp
#9
(۱۳۹۱ مرداد ۲۳, ۰۸:۳۱ ب.ظ)mortezaa نوشته: سلام البته این روشی که دوستمون گفت خیلی بهتره
ولی اگه می خوای با سرور کار کنی
print_r($_SERVER)
بگیر ،بعد بین کدوم یک از عضو ها بدرد میخوره بعد از همون استفاده کن


بله دقیقا همین کارو کردم
با php_self

درست شد
  پاسخ
تشکر شده توسط :
#10
کد پی‌اچ‌پی:
if(stristr($_SERVER['PHP_SELF'], 'MyFileName'))
{
    exit;

وبلاگ: Yousha.Blog.ir


 کد کمتر => خطای کمتر => قابل فهمتر => خوانایی بالاتر => نگهداری بهتر

  پاسخ
تشکر شده توسط :


پرش به انجمن:


کاربران در حال بازدید این موضوع: 1 مهمان