PHP define疑问

a.php文件里define("in",true);
b.php文件里defined("in") or exit('Access Denied');
在a.php里定义的常量,在b.php里还能不能用啊?
我看到很多程序里都通过定义常量来防止非法访问,但我这样用不可以啊,哪错了,该怎么写啊?
我是想b.php不能直接访问,要访问过a.php后才可以进入b.php
不想用session

一般用法是这样的:
在一个全局文件里定义,如在 global.php 里定义:
define("SOME_INTER_VALUE",true);

然后在其它文件里引用。如在 b.php 里这样引用:
include("global.php");//必须要包含以后才能用
if(!defined("SOME_INTER_VALUE")) exit('Access Denied');
或 if(!SOME_INTER_VALUE) die("Access Denied');

回答补充:
不管是什么变量,要实现在两个文件中传递(不互相包含),必须要有传递的途径,可选的方法有:
1. SESSION
2. URL GET方法
3. 表单 POST 方法
4. COOKIE
5. 共享内存(WINDOWS主机不行,LINUX主机支持)

如果这些方法都被否决了,那就真的是无法实现了。也许你可以试试用共享内存的方法来实施了
温馨提示:内容为网友见解,仅供参考
第1个回答  2010-05-03
当然不能用
你没有看到 人家的文件和文件之间 都有关联 比如用require引入
第2个回答  2010-05-04
在b.php中需要引入a.php后才能使用它定义的常量。
引入的写法可以是require('a.php')或者include('a.php')
第3个回答  2010-05-05
include("a.php");这样就可以用a.php的常量了。

PHP define疑问
define("SOME_INTER_VALUE",true);然后在其它文件里引用。如在 b.php 里这样引用:include("global.php");\/\/必须要包含以后才能用 if(!defined("SOME_INTER_VALUE")) exit('Access Denied');或 if(!SOME_INTER_VALUE) die("Access Denied');回答补充:不管是什么变量,要实现在两个文件中传递...

php define问题
是错误抑制符,也就是说加了@的语句就算出现警告或者NOTICE也不会报错.(错误不会输出到浏览器上).在定义常量的时候这样加主要是为了避免重复定义相同常量名时的错误,加了后即使重复定义了也不会报错,否则影响美观。。个人观点

php define问题
define是php里定义常量用的。第一个参数是常量名,第二个是常量的值。你在研究ecshop吧,呵,里面经常用到。它定义这个常量的作用是防止被引用文件的非法载入,你会发现在另一个地方会有:if (!defined('IN_ECS')){ die('Hacking attempt');} 它的意思是检测是否存IN_ECS这个常量,不存在的话停...

php define的问题
觉得是没有成功引入 a.php;而且,好像你的错误提示已经关闭了,所以 在引入文件失败时报的错没有看到;你在 include_once() 前面打开一下错误提示:error_reporting(E_ALL);这样就知道是不是引入文件失败导致的了;

php问题 if(!defined('MVMMALL') || !defined('IN_ADMINCP')) exit...
define(IN_ADMINCP,1);后面的程序可以用defined检测IN_ADMINCP是否已定义。这样的语句可用在一些后台管理,用户如果直接在浏览器输入某个后台程序的地址,比如用户管理模块,通常我们不允许未经登陆就访问该程序。这时我们可以先写个文件admincp.inc.php,该文件完成用户权限检查后,定义常量,比如define(IN_...

请教PHP中define常数的定义问题
一般都有一个config.php,所有PHP都要包含这个配置文件,里面通常有定义数据库密码\/用户名等资料 如果不包含该文件,定义的常量自然就不起作用!

php函数问题:define('WP_USE_THEMES', true);
确实是必须的,同事也有默认值,所以不用传。

关于的PHP中 define()效率问题
自定义常量用得不是非常多,很少发生这种问题。上面的几种用法里面,确实自定义常量比较耗资源,但也没必要搞得不敢用它。每一个函数的使用都会占用一定的系统资源,赋值运算当然比用函数定义常量省资源。只要尽量少用就是了。不要搞得如文中所有一个站点程序有400多个自定义常量就行了。

php中define定义一个常量,其他文件调用这个常量出错求解!
你确定index.php和register.php执行了!如果两个都执行会出项重复定义SCRIPT的错误!如果其中的一个执行了(除非define在执行分支上,不如if什么的,没有执行到),要不绝对是存在的,因为没有注销define定义的常量的函数!我觉得是不是题主把英文看错了!人家可能说的是SCRIPT重复定义了!

请问大家一个关于PHP,define()函数的问题
IN_UCHOME 这种布尔型的常量 一般用做开关。也就是经常会放在if()上面使用

相似回答