Php 将数据从textarea保存到数据库
我是PHP的新手。我只是想知道为什么每次我从textarea保存字符串数据时,它总是在数据库中插入Php 将数据从textarea保存到数据库,php,html,mysql,textarea,Php,Html,Mysql,Textarea,我是PHP的新手。我只是想知道为什么每次我从textarea保存字符串数据时,它总是在数据库中插入字符串格式。这是我的代码: <table> <tr> <td> <textarea name="event_desc" cols="40" rows="10" id="event_desc"></textarea> </td> </tr> <tr> <
字符串
格式。这是我的代码:
<table>
<tr>
<td>
<textarea name="event_desc" cols="40" rows="10" id="event_desc"></textarea>
</td>
</tr>
<tr>
<td> </td>
<td><input type="submit" name="Add" id="Add" value="Add event" /></td>
</tr>
</table>
我已经使用mysql\u real\u escape\u字符串、addslashes和stripslashes
这是我保存到数据库中的代码:
<?php
if(isset($_REQUEST['Add']))
{
$event_title=$_POST['event_title']; $event_desc=mysql_real_escape_string($_POST['event_desc']);
$section=$_POST['section'];
$get_date=NOW;
if($event_title=="" || $event_desc=="")
{
echo'<div class="warning">Some of the fields are empty.</div>';
}
else
{
mysql_query("INSERT INTO events (`event_title`, `event_desc`,`event_date`,`event_target`) VALUE('$event_title','$event_desc','$get_date','$section')") or die(mysql_error('Error: Error in adding entries'));
echo'<div class="success">You have just added 1 event for School. You will be redirect in 5 seconds</div>';
echo "<META HTTP-EQUIV='Refresh' CONTENT='5; URL=events.php'>";
}
}
?>
我的建议是使用mysqli::real\u escape\u string和
单击将html编码文本保存到数据库中。在页面中查看时对标点符号进行编码。因此,你必须以某种方式解码它们。我不是PHP爱好者,但我知道这是你的问题。你可以在存储到数据库时使用addslashes()
,如果它是编码的,则可以使用retrivehtmlspecialchars\u decode
<?php
$str = "<p>this -> "</p>\n";
echo htmlspecialchars_decode($str);
// note that here the quotes aren't converted
echo htmlspecialchars_decode($str, ENT_NOQUOTES);
?>
除了上面提到的传统方法之外
我们可以使用“base64_encode”对来自文本区域的字符串进行编码,然后将其存储在db中…同时使用“base64_decode”函数从db中检索并将其解码回来
注意:-根据文档,它占用的空间增加了33%
Ref:-您连接db的方式是什么?您使用的是mysql、mysqli还是pdo?我使用的是mysql Sir@Kiyarash
<?php
$str = "<p>this -> "</p>\n";
echo htmlspecialchars_decode($str);
// note that here the quotes aren't converted
echo htmlspecialchars_decode($str, ENT_NOQUOTES);
?>
<p>this -> "</p>
<p>this -> "</p>