【发布时间】:2021-08-05 22:24:58
【问题描述】:
我有三个 php 文件,一个定义了一个常量,另一个具有 html 标记并包含一个 php 文件,用于呈现 js 内容。第三个是渲染js内容的php文件。代码如下所示。
第一个名为“config.php”的文件:
<?php
define('TESTVAR','test variable');
?>
名为“main.php”的第二个文件:
<?php
require_once ('config.php');
?>
<!doctype html>
<html lang="en">
<head>
<title>Document</title>
</head>
<body>
<script type="text/javascript" src="script.php"></script>
</body>
</html>
第三个名为“script.php”的文件:
alert(<?php echo TESTVAR ?>);
这是作为 script.php 加载的内容:
<b>Notice</b>: Use of undefined constant TESTVAR - assumed 'TESTVAR' in <b>C:\xampp\htdocs\trials\testphpinjs\script.php</b> on line <b>2</b><br />
TESTVAR);
如果我将 script.php 更改为
,并不是没有呈现 phpalert(<?php echo '\'testing'. 'php' . 'echo\'' ?>);
完美运行,加载的脚本可以从开发者工具中查看
alert('testingphpecho');
我唯一的问题是我无法访问之前需要或包含的页面中的变量
【问题讨论】:
-
script.php由浏览器自行加载。如果你想使用config.php中定义的常量,你还需要从那里获取config.php。 -
您已经接近我们自己的想法了。检查
script.php是在什么时候/在什么请求中加载的。提示:与main.php不在同一个请求中。 -
该死,我太傻了。没有看到它,因为实际项目是一个更大的框架,但是简化后它确实可以提供帮助,但非常感谢。你想把它写成一个正确的答案,以便我可以设置为正确,还是你想让我写一个以备将来帮助?
-
@jaafarNasrallah 我确定这之前已经出现过,所以它可能会被标记为重复,尽管我目前找不到合适的。但就我而言,这不是一个“愚蠢”的问题。特别是因为它是更大框架的一部分,所以很容易忽略这样的事情。
-
@rickdenhaan 我对 stackoverflow 并不陌生,在发布之前我已经看过了。所以谢谢
标签: javascript php require