(Php和HTML)如何在包含.txt文件中的文本时不运行代码

时间:2017-09-10 03:53:56

标签: php html

HTML:

<html>
<head>
    <title></title>
</head>
<body>
    <header class="major last">
        <h2>Title</h2>
    </header>
    <form method="post" action="myprocessingscript.php" method="POST">
        <div class="row">
            <div class="6u 12u(mobilep)">
                <input type="text" name="Date" placeholder="Meeting Date (mm/dd/yy)" />
            </div>
            <div class="6u 12u(mobilep)">
                <input type="text" name="Topic" placeholder="Meeting Topic" />
            </div>
        </div>
        <div class="row">
            <div class="12u">
                <textarea name="Summary" placeholder="Summary of the Meeting" rows="6"></textarea>
            </div>
        </div>
        <div class="row">
            <div class="12u">
                <ul class="actions">
                    <li><input type="submit" value="Send Message" /></li>
                </ul>
            </div>
        </div>
    </form>
    <div>
        <p><?php echo file_get_contents( "data.txt" ); ?></p>
    </div>
</body>`

腓:

<?php
if(isset($_POST['Date']) && isset($_POST['Topic']) && isset($_POST['Summary'])) {
    $data = 'Date: ' . ' ' . $_POST['Date'] . ' Topic: ' . $_POST['Topic'] . ' Summary: ' . $_POST['Summary'] . "\n";
    $ret = file_put_contents('data.txt', $data, FILE_APPEND | LOCK_EX);
    if($ret === false) {
        die('There was an error writing this file');
    }
    else {
        echo "$ret bytes written to file";
    }
}
else {
   die('no post data to process');
}

我正在尝试最终创建一个表单,该表单将获取信息并将其记录在文本文件中。该文本文件最终将包含在网页中。但是,目前,如果在表单中键入代码(例如<a href="websiteaddress">websitename</a>),则在包含该代码时,将执行该代码。如何编辑我的代码以将响应作为字符串而不是纯文本?

1 个答案:

答案 0 :(得分:0)

您可以在PHP中使用htmlspecialchars()函数。例如:

echo "<pre>";
echo htmlspecialchars('<a href="websiteaddress">websitename</a>');
echo "<pre>";

显然,一旦你编写代码从文本文件中的代码中读取,你将提取一行或多行并将变量放在htmlspecialchars()函数中。

提醒一句:要非常小心将恶意代码放入表单中,例如JavaScript代码。研究XSS和其他类似的攻击。由于您使用的是htmlspecialchars(),因此应该处理大多数攻击,但要小心如何实现代码。