开始我认为自己在初学者和中级之间谈到PHP。在我的网站上,我有一个文本区,用户可以输入网页代码,当按下按钮时,它会将代码发送到页面并显示输出。以下是该页面的链接:http://opensourcewebsite.host22.com/editpage.php。我遇到的另一个问题是我想要用户输入的任何内容留在页面上。
以下是目前代码的样子:
<?php $source_code = $_POST['source-code'}; ?>
...
<editable_area>
<?php echo $source_code ?>
</editable_area>
...
<form action="" method="post">
input class="result" type="submit" name="submit" value="View Result">
<textarea id="source" class="edit_are" name="source-code"></textarea>
目前,当用户输入包含id / class / name / etc的代码时。有引号,就像你做的那样:
echo "<div id="Name">"
它会添加\“并因此搞乱代码。我需要找到一种方法来存储代码,以便它能正确显示。如果你尝试网页,你会亲眼看到我的问题。
提交代码时,textarea通过javascript抓取网页的源代码。我发现如果你省略代码中的“”,它会按预期工作。问题是当它抓取源代码时,其中有引号,因此代码将在textare中显示它们。这意味着每次进行更改时,都需要取出所有引号。
感谢webbiedave,我使用:
修复了引用问题<?php echo stripslashes($source_code) ?>
现在我只需要弄清楚如何永久存储更改。
答案 0 :(得分:2)
检查您是否已启用magic quotes,并确保turn them off。此外,您还需要使用htmlspecialchars来转义特殊字符。否则,他们可以关闭你的textarea
并造成其他破坏。
echo htmlspecialchars($source_code);
答案 1 :(得分:2)
<?php echo htmlentities(stripslashes($source_code)) ?>
答案 2 :(得分:1)
您可以使用单引号代替: '&lt; div id =“Name”&gt;';