انجمن کدایگنایتر فارسی
کاربرد خط اول در کدایگنایتر چیه؟ defined - نسخه‌ی قابل چاپ

+- انجمن کدایگنایتر فارسی (http://code-igniter.ir)
+-- انجمن: کد ایگنایتر 3 (http://code-igniter.ir/forumdisplay.php?fid=4)
+--- انجمن: مباحث عمومی (http://code-igniter.ir/forumdisplay.php?fid=8)
+--- موضوع: کاربرد خط اول در کدایگنایتر چیه؟ defined (/showthread.php?tid=54)



کاربرد خط اول در کدایگنایتر چیه؟ defined - h_qorbani - 2017/11/29

سلام
کاربرد خط اول در کلاسهای کدایگنایتر چیه و اگه بکاربرده نشه چه مساله ای رو بوجود میاره؟ منظورم خط زیر است:
کد php:
defined('BASEPATH') OR exit('No direct script access allowed'); 



RE: کاربرد خط اول در کدایگنایتر چیه؟ defined - admin - 2017/11/30

سلام
بعضی اسکریپت ها مثل وردپرس هستند که آدرس های اونها به صورت مستقیم فراخوانی میشوند مثل آدرس:
wordpress.com/wp-login.php

در اینجا فایل wp-login.php مستقیم صدا زده میشه اما در کدایگنایتر هیچ فایلی به صورت مستقیم قابل اجرا نیست و همه آدرس ها از طریق فایل index.php فراخوانی میشوند و  همه آدرس ها به صورت مجازی ساخته میشوند.

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

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

مثال ساده:
کد php:
<?php
//index.php
define("CI","Codeigniter");

include(
'child.php');

<?
php
// child.php
defined('CI') OR exit('No direct script access allowed');