0

我想做的很简单,但似乎不起作用。

在这个主页中,我试图从另一个页面插入一段代码,就像这样。

<?php

include_once $_SERVER['DOCUMENT_ROOT'].'\attach\common.php';

$clear = False;

echo $code;

if($clear){
    echo 'Clear was cleared';
}

?>

这是common.php

<?php

$code = "if(isset($_GET['n'],$_GET['c'])) {";
$code .="   echo 'Name and Country were set <br />';";
$code .="   $clear = True;";
$code .="} else {";
$code .="   echo 'An error occured <br />';";
$code .="}";

?>

我怎样才能在 php 中做到这一点?

更新

<?php
include_once $_SERVER['DOCUMENT_ROOT'].'\attach\common.php';
$clear = False;
d();
if($clear){
    echo 'Clear was cleared';
}
?>

<?php

function d() {
    if(isset($_GET['n'],$_GET['c'])) {
        echo 'Name and Country were set';
        $clear = True;
    } else {
        echo 'An error occured <br />';
    }
}
?>
4

2 回答 2

1

请小心使用,因为这是实现您想要eval()的非常危险的方式。

为什么你不能只输入代码common.php而不是将其作为字符串放入变量中?

即common.php:

<?php
if(isset($_GET['n'],$_GET['c'])) {
   echo 'Name and Country were set <br />';
   $clear = true;
} else {
   echo 'An error occured <br />';
}
?>

-

在您确实需要这样做的情况下:

用于eval()解析$code. 那是因为您的代码是字符串变量,而不是实际代码。

<?php

include_once $_SERVER['DOCUMENT_ROOT'].'\attach\common.php';

$clear = False;

eval($code);

if($clear){
    echo 'Clear was cleared';
}

?>
于 2013-10-17T04:58:12.187 回答
1

您不会将代码放在字符串中以将其包含在另一个文件中,只需按原样放置代码即可。

common.php应该

<?php

if(isset($_GET['n']) && isset($_GET['c'])) {
echo 'Name and Country were set <br />';
$clear = True;
} else {
   echo 'An error occured <br />';
}

?>
于 2013-10-17T05:03:41.213 回答