将html嵌入php意外<'错误

时间:2018-09-06 13:45:19

标签: php html embed

我是php的新手,但我不知道问题出在哪里。我试图在文本框中输入字符串。

<?php
$file = fopen("/file/location","r");
while(!feof($file)){
    echo fgets($file);
    echo "<br>";
}
fclose($file);
<html>
    <form name="form" action="" method="get">
        <input type="text" name="subject" id="subject" value="Car Loan">
    </form>
</html> 
echo $_GET['subject'];
<html> file_put_contents("/file/location", $_GET['subject'], FILE_APPEND); </html>
?>

第一部分运行正常,但是当我进入<html>时,它开始吐出各种错误。

2 个答案:

答案 0 :(得分:4)

正如我在评论中所说,您正在将纯HTML注入PHP。

您必须关闭PHP标记,然后重新打开。

<html>和相关<html> file_put_contents中的</html>标签也需要删除。

如果/file/location可能会给您带来麻烦,那么应该在斜杠后面加上斜线,但可能不需要,在这里只是个旁注。

<?php   
    $file = fopen("/file/location","r");
    while(!feof($file)){
    echo fgets($file);
    echo "<br>";
    }
fclose($file);
?>

    <html>
            <form name="form" action="" method="get">
            <input type="text" name="subject" id="subject" value="Car Loan">
            </form>
    </html> 

<?php 
    echo $_GET['subject'];
    file_put_contents("/file/location", $_GET['subject'], FILE_APPEND);
?>

但是,您需要在此处使用条件语句,因为您将获得回显GET数组的未定义索引通知,并且在file_put_contents中会看到整个代码都在同一文件中; action=""建议。 Error reporting将在这里为您提供帮助。

即:if(!empty($var)){...}和/或if(isset($var)){...}

还要确保可以写入该文件夹,并且已经为其设置了适当的权限。

您的文件夹声明也可能要求它是完整的服务器路径。

fopen() http://php.net/manual/en/function.fopen.php上查阅手册。

即:fopen("/var/usr/public_html/file/location","r");

file_put_contents()也可能发生同样的情况。如果现在遇到问题,请尝试使用服务器路径。

脚注:

您可以将结束</html>放在

之后
file_put_contents("/file/location", $_GET['subject'], FILE_APPEND);
?>

因为在HTML标记之外回显某些内容会在控制台/ HTML源代码中引发某些内容。

答案 1 :(得分:2)

您正在将html与php混合使用,但未正确封装。 这是经过编辑的版本:

enzyme