【发布时间】:2012-12-15 22:17:02
【问题描述】:
我有一个表单正在尝试提交到我的 MySQL 数据库中,它提交的所有记录都可以接受我博客表中的“内容”字段。
我不确定这是否重要,但我正在使用来自 nicedit.com 的 textarea 框架
更新:我已经删除了 NicEdit 框架,并且它作为普通文本区域提交时效果很好,我不确定现在该去哪里我会尝试将我的支持转移到 NicEdit 并在我找到时发布回复这个问题的解决方案。
但是我遇到了另一个问题并且不想打开关于它的新帖子,我的日期插入为 0000-00-00 而不是当前日期。有什么解决办法吗?
这里是 php post 方法
<?php
include_once"dbconnection.php";
session_start();
$connect = mysql_connect($host, $username, $password) or die (@mysql_error());
$selectdb = mysql_select_db($database, $connect) or die (@mysql_error());
if(isset($_POST['postblog'])){
$blogtitle = $_POST['blogtitle'];
$blogcontent = $_POST['blogcontent'];
$author = 'Admin';
$query = mysql_query("INSERT INTO blog SET date='date()', title='$blogtitle', author='$author', published='1', content='$blogcontent'");
if ($query == false){
echo "false";
} else {
echo "true";
}
}
?>
和html表单
<form action='postblog.php' method='post'>
<input class="inputMed" type="text" name="blogtitle"> <br />
<textarea style="width: 600px;" name="blogcontent"></textarea> <br />
<input type="submit" name="postblog" id="postblog" value="Post Blog" />
</form>
提前致谢
【问题讨论】:
-
我闻到了 SQL 注入的味道。 Please, don't use
mysql_*functions in new code。它们不再维护and are officially deprecated。看到red box?改为了解prepared statements,并使用PDO 或MySQLi - this article 将帮助您决定哪个。如果你选择 PDO,here is a good tutorial. -
只是猜测,您的“博客内容”中有 MySQL 不喜欢的未转义字符。尝试在插入前清理您的内容。
-
如果您在编写代码时不担心 MySQL 安全性,那么您就是在为失败做好准备。我建议您阅读准备好的语句,它们是防止 SQL 注入的救星。
-
@AaronRussell 几乎肯定是在 NicEdit 框架中。请参阅我在下面提供的答案。
-
对于日期问题,去掉
date()周围的引号。他们正在阻止它运行该功能。
标签: php mysql forms textarea nicedit