我想动态创建PHP文件。静态HTML代码工作正常,但是当我想插入包含“window.location”命令的PHP代码时,我的脚本直接将我发送到该页面,而没有填写“if(isset()) - 条件。” p>
不知何故,一个简单的回声不起作用。我该如何解决这个问题?
public function suche()
{
echo "if(isset(\$_POST['searchit']))
{
\$suchbegriff = \$_POST['suchbegriff'];
\$anfangsbuchstabe = substr(\$suchbegriff, 0, 1);
<script type='text/javascript' language='Javascript'>window.location = '/".$anfangsbuchstabe."/".$suchbegriff.".php'</script>
}";
}
答案 0 :(得分:3)
如果你真的在写一个你要在不同的请求中调用/执行的php文件,你需要确保php被识别为php,现在它只是文本。
所以你需要这样的东西:
public function suche()
{
echo "<?php if(isset(\$_POST['searchit']))
{
\$suchbegriff = \$_POST['suchbegriff'];
\$anfangsbuchstabe = substr(\$suchbegriff, 0, 1);
?>
<script type='text/javascript' language='Javascript'>window.location = '/".$anfangsbuchstabe."/".$suchbegriff.".php'</script>
<?php
}
?>";
}
请注意,我添加了php
开始和结束标记。
答案 1 :(得分:2)
如果您正在尝试创建文件,则不能只回显某些内容,必须将其写入文件。例如,您可以使用file_put_contents(string $filename, mixed $contents)
。
答案 2 :(得分:0)
你忘了逃避变量。正如您在粘贴的PHP的颜色中看到的那样,变量将被执行。
使用\
转义它们,并对双引号("
)执行相同操作
另外,我也注意到,你是echo
你的代码。回应PHP代码实际上不会执行代码。
您可以使用eval
执行PHP代码,但这是非常不安全。从我的问题中可以看出,你没有足够的经验来计算所有的安全风险。不要使用它。