如题

解决方案 »

  1.   

    define不是设置常量么,跟限制非正常访问有啥关系
      

  2.   

    网上看到的...在a.php里加上 
    @define(   "ROOT ",   "abc "   );     //具体写什么随便你 然后在b.php开头部分加上 
    if(!defined( "ROOT ")){die( 'System   Halt. ');}当时试的时候明明起作用了
    结果现在用的时候不知道为什么不起作用了
    我想问的就是这个应该怎么用...
    或者说 为什么我都加上了之后为什么连正常访问也提示System   Halt了..
      

  3.   

    a.php里定义一个常量然后a.php把b.php用include或者require包含进来,这时b.php里的程序也就会读得到a.php所定义的常量了但如果有个用户想单独运行b.php,因为b.php还没被载入a.php中,所以这个时候b.php里是读不到a.php的常量的,然后die()掉,就禁止了b.php被人单独访问意思应该是这样吧
      

  4.   

    但是问题就是
    !define("PATH","c:/");
    这句前面加一个惊叹号是什么意思?
      

  5.   

    一般判断'PATH'有没有定义过常量,用defined函数前面!是 “非…”
      

  6.   


    a.php里require了b.php界面然后a.php里define('TEST', '随便');在b.php里执行
    if (!define('TEST', '还是随便')){
      // TEST已经被定义过,此时b.php已经被加载进a.php里了,可以正常执行
    }else {
      die('TEST还没被定义过,可能有人非法地单独执行了b.php,后续操作不允许进行');
    }
    常量的特性是不可以重新定义! 用来检查重新定义的操作是不是失败了