【发布时间】:2025-12-28 03:10:11
【问题描述】:
首先,我认为自己在 PHP 方面处于初学者和中级之间。在我的网站上,我有一个文本区域,用户可以在其中输入 Web 代码,当按下按钮时,它将代码发送到页面并显示输出。这是该页面的链接: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) ?>
现在我只需要弄清楚如何永久存储更改。
【问题讨论】:
-
你有没有打开叫
magic_quotes_gpc的恶心东西? -
php.net/manual/en/security.magicquotes.php 可能需要关闭此功能。
-
哇,您只是在为这样的页面提出各种麻烦。这种页面正是垃圾邮件发送者想要创建的 XXS 注入攻击。确保您至少剥离
<script>标签 -
我没有打开 magic_quotes_gpc。我意识到了thenetimp 的担忧,但是这个页面还没有完成。将有一个登录系统,只有该用户可以更改页面。 textarea 不会在
标记之外进行编辑。
标签: php html variables storage