我有一个包含以下内容的PHP文件:
<?php
$myflash = $_GET["flashname"];
$mytitl = $_GET["titlname"];
$myqgif = $_GET["flashgif"];
$mytxt = $_GET["txtname"];
?>
<?php
include('01.txt');
?>
显示正确。但是当我使用以下内容时:
<?php
include('<?php echo $mytxt; ?>.txt');
?>
不显示。
答案 0 :(得分:3)
?php
include('<?php echo $mytxt; ?>.txt');
?>
是无效的PHP语法... <?php ?>
内的代码已经是PHP代码。你不要在其中添加更多的php标签。
您只想使用:
<?php
include($mytxt . '.txt');
?>
你有PHP代码的php标签,然后是一个include语句。在该语句中,您连接两个字符串($mytxt
和.txt
)以形成要包含的文件名。
请确保在包含之前清理您的输入。有人可以轻松更改GET参数,您的脚本将include
他们想要的任何文件。在包含之前,请确保文件位于您希望的位置。
答案 1 :(得分:2)
你不能在字符串中做回声。相反,您正在寻找字符串连接:
include( $mytxt . '.txt');
请注意,您必须清理$mytxt
以避免Local File Inclusion(LFI)漏洞。
答案 2 :(得分:0)
<?php
include('<?php echo $mytxt; ?>.txt');
?>
已经是PHP了。你不需要重新打开你的php标签。
<?php
include($mytxt . ".txt");
?>
答案 3 :(得分:0)
它不会显示任何内容,因为include
函数将参数作为文件名和路径,而不是PHP代码。
如果您将echo $mytxt;
放入foobar.php
并说出include('foobar.php');
它就可以了。但它目前的形式毫无意义。
正在显示01.txt
,因为它的内容(01.txt
是一个文件)被加载到代码中。主要是因为它不是PHP代码,它将被转储到浏览器。应该使用Include来在我们的代码中执行其他PHP脚本。