Php if()语句处理我自己的函数时产生意外结果

Php if()语句处理我自己的函数时产生意外结果,php,function,if-statement,Php,Function,If Statement,以前从未遇到过这种情况,但是在if()语句中测试用户编写的函数是否有问题 我在另一台服务器(称为“myPhpInclude.PHP”)上的一个单独的PHP包含文件中包含以下内容: 从PHP includes文件的单独服务器上摘录我的HTML文档: <?php include('http://mydomain.com/includes/myPhpInclude.php'); /* the displayIt() function is contained in this include

以前从未遇到过这种情况,但是在if()语句中测试用户编写的函数是否有问题

我在另一台服务器(称为“myPhpInclude.PHP”)上的一个单独的PHP包含文件中包含以下内容:


从PHP includes文件的单独服务器上摘录我的HTML文档:

<?php include('http://mydomain.com/includes/myPhpInclude.php'); /* the displayIt() function is contained in this include file */ ?>

...

<div id="content">
<?php if (displayIt('on')) { /* <-- MY PROBLEM ORIGINATES HERE */?>
    <p>Some content.</p>
<? } ?>
</div>

...
一些内容

网页在my if()语句处停止呈现,并且不返回任何错误。PHP错误调试已激活并启用


谢谢。

您在第二个变量中拼写的“短语”错误。

您在第二个变量中拼写的“短语”错误。

等等,您有$phase和$phase吗?我想这是个打字错误

在那里:

function displayIt($phrase = NULL) { <== phrase
    if (is_null($phase))             <== phase

函数displayIt($phrase=NULL){等等,你有$phrase和$phase吗?我想这是一个打字错误

在那里:

function displayIt($phrase = NULL) { <== phrase
    if (is_null($phase))             <== phase

function displayIt($phrase=NULL){包含文件有问题:

include('http://mydomain.com/includes/myPhpInclude.php');
将从服务器
includes/myPhpInclude.php
请求文件
http://mydomain.com
通过正常的http请求。您将收到的不是php代码,而是web服务器运行该php文件时的输出。即使在某些情况下:

PHP 4.3.0之前的Windows版本不支持通过此函数访问远程文件,即使启用了allow_url_fopen

您需要做的是通过本地文件系统包含文件,使用相对路径(或文件系统的绝对路径),例如:

include 'includes/myPhpInclude.php';

包含文件存在问题:

include('http://mydomain.com/includes/myPhpInclude.php');
将从服务器
includes/myPhpInclude.php
请求文件
http://mydomain.com
通过正常的http请求。您将收到的不是php代码,而是web服务器运行该php文件时的输出。即使在某些情况下:

PHP 4.3.0之前的Windows版本不支持通过此函数访问远程文件,即使启用了allow_url_fopen

您需要做的是通过本地文件系统包含文件,使用相对路径(或文件系统的绝对路径),例如:

include 'includes/myPhpInclude.php';


您是否启用了
short\u open\u标签
ini设置('display\u errors',1)是的,短标记很好。你有一段有问题的脚本的摘录。我确实已经打开了调试错误。更新了我的PHP包含文件,以显示不是故障原因的其他两个部分。我有一个回音,只是想确认我的包含正在工作——确实如此。你的文件中有PHP和html吗同一个文件?是否启用了
short\u open\u标记
ini\u集('display\u errors',1)是的,短标记很好。你有一段有问题的脚本的摘录。我确实已经打开了调试错误。更新了我的PHP包含文件,以显示不是故障原因的其他两个部分。我有一个回音,只是想确认我的包含正在工作——确实如此。你的文件中有PHP和html吗同一个文件?很好的回答@JeremyLawson。在我的原始问题中修复了它。很好的回答@JeremyLawson。在我的原始问题中修复了它。这是一个拼写错误。谢谢你指出@LukaRamishvili。我更正了我的原始问题。这是一个拼写错误。谢谢你指出@LukaRamishvili。我更正了我的原始问题question@Dr.点那个文件的输出(在本例中,您的
echo
语句)将被包括在内,而不是原始代码本身。让我在本地试一试,然后我会发回@jeroen。我将包含脚本放在一个单独的服务器上的主要原因是它将具有全局实用程序,并用于我以后的许多其他脚本——其中一些脚本驻留在单独的服务器上。因此我打算编写这个1函数ion并在我的整个应用程序企业中使用它。看起来这个攻击计划可能不起作用,但我会很快发回。感谢您对jeroen的洞察力。@DOT博士,这是可能的,但您必须像
include('http://mydomain.com/includes/myPhpInclude.php?your_variables');
并让它返回您在调用页面中处理的json或序列化数据。就是这样@jeroen…我今天学到了一些新东西。今天是学习新东西的好日子!谢谢。@Dr.DOT该文件的输出(在本例中是您的
echo
语句)将被包括在内,而不是原始代码本身。让我在本地试一试,然后我会发回@jeroen。我将包含脚本放在一个单独的服务器上的主要原因是它将具有全局实用程序,并用于我以后的许多其他脚本——其中一些脚本驻留在单独的服务器上。因此我打算编写这个1函数ion并在我的整个应用程序企业中使用它。看起来这个攻击计划可能不起作用,但我会很快发回。感谢您对jeroen的洞察力。@DOT博士,这是可能的,但您必须像
include('http://mydomain.com/includes/myPhpInclude.php?your_variables');
并让它返回您在调用页面中处理的json或序列化数据。就是这样@jeroen…我今天学到了一些新东西。今天是学习新东西的好日子!谢谢。