将SQL中的HTML插入textarea?

时间:2013-09-12 01:44:43

标签: php html mysql textarea parse-error

我想知道为什么我的代码中出现“解析错误:语法错误,意外T_VARIABLE,期待T_STRING”,这会将HTML从MySQL数据库中拉出来,取代<和>使用实体(& lt;,& gt;)并将其输入到textarea(CKEditor)中。这是代码的那一部分:

<textarea name="editor1">
          <?php
            //QUERY DATABASE
            $query1 = "SELECT * FROM users WHERE ID = '" . $id . "'";
            $resource1 = mysql_query($query1, $database);
            $result1 = mysql_fetch_assoc($resource1);
            $rawcode = $result['code'];\
            $code1 = str_replace("<", "&lt;", "$rawcode");
            $code = str_replace(">", "&gt;", "$code1");
            echo $code1;          
          ?>
    <!--&lt;p&gt;Create your page here.&lt;/p&gt;-->
</textarea>

5 个答案:

答案 0 :(得分:1)

你在行尾有一个额外的“\”

$rawcode = $result['code'];\

将其删除

答案 1 :(得分:0)

请勿尝试自行转义HTML,请改用htmlspecialchars()。

答案 2 :(得分:0)

您的代码中存在语法错误: 取代

 $rawcode = $result['code'];\

使用

 $rawcode = $result['code'];

您可以使用htmlspecialchars()替换html。

替换:

$code1 = str_replace("<", "&lt;", "$rawcode");
$code = str_replace(">", "&gt;", "$code1");

使用:

$code = htmlspecialchars($rawcode);

答案 3 :(得分:0)

$rawcode = $result['code'];\

反斜杠是php中的escape char,并在下一行中转义$。 PHP将$code1解析为此处不允许的字符串。

你不应该在$“中使用$ rawcode和$ code1,因为它只会稍微减慢执行速度。

答案 4 :(得分:0)

你有两个错误。

第一个是来自$rawcode = $result['code'];\的$ result变量。 $result不存在。您调用了该变量$result1

第二个是\末尾的$rawcode = $result['code'];\。你必须删除它。

结束代码为$rawcode = $result1['code'];

我注意到的另一个错误,最后一句话echo $code1;应为echo $code;,因为$code包含您对str_replace所做的最后一次更改。