提问者:小点点

PHP-不在特定页面上执行特定代码


我有一个通用页面:default.php

<?php 

  ________Some Codes________

?>

我的项目有100+.php文件。 (是,所有文件在所有页面的第一行都有require_once'default.php';)

现在,我决定在除2以外的所有文件中显示alert。 (例如1.php和2.php)。

当然,我将在default.php中添加alert

所以现在我的default.php将如下所示:

<?php

________Some Codes_______


echo $comn_alert = "<script>alert('Hi');</script>";

?>

如何阻止$COMN_ALERT在1.php上执行& 2.PHP?


共2个答案

匿名用户

在包含文件之前定义一个常量,然后检查该常量是否在default.php中定义。如下所示:

1.PHP:

<?php

define('AVOID_ALERT_1',1);

require_once('default.php');

2.PHP:

<?php

define('AVOID_ALERT_2',1);

require_once('default.php');

default.php:

<?php 

// __some__codes

if(!(defined('AVOID_ALERT_1') || defined('AVOID_ALERT_2'))){
   echo $comn_alert = "<script>alert('Hi');</script>";
}

匿名用户

几种方法:

  • 您可以使用default.php中的$_server['php_self']检查它是否包含在1.php2.php
  • 您可以稍微调整包含结构:将default.php的公共逻辑(即所有文件中使用的逻辑)提取到另一个文件中(例如default_minimin.php),并使default.php需要该文件并包含有问题的代码(例如alert())。 使1.php2.php只需要default_minimin.php
  • 在要求之前先在1.php2.php中设置一个变量,然后签入default.php查看该变量的存在/不存在。