无法存储PHP变量

时间:2012-02-09 20:55:59

标签: php html variables storage

开始我认为自己在初学者和中级之间谈到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) ?>

现在我只需要弄清楚如何永久存储更改。

3 个答案:

答案 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;';