我已经设置了所有内容,但是这很有效,但是当我点击提交时,如果没有MySQL语法错误,我就无法添加'或任何其他标点符号。我想知道如何在表单的文本行中添加标点符号。我在Collation下设置了utf8_unicode_ci,但我仍然遇到语法错误。
textarea是我希望能够提交任何标点符号或字符的地方。这就是我所拥有的。
这是我正在使用的表格
print "<form method=post action=reply.php>";
print "<h3>Reply:</h3>";
print "<br><textarea name=reply_content textarea rows=4 cols=50></textarea>";
print "<input type=hidden name=reply_user value={$_SESSION['user_name']}>";
print "<input type=hidden name=topic_id value=$id>";
print "<br><input type=submit></form>";
这是reply.php的SQL
$reply_content=$_POST['reply_content'];
$reply_time=date('Y-m-d H:i:s');
$reply_user=$_POST['reply_user'];
$topic_id=$_POST['topic_id'];
mysql_query("INSERT INTO reply VALUES ('reply_id', '$reply_user', '$reply_content', '$reply_time', '$topic_id')") OR die(mysql_error());
print "<center><h1>Reply Posted Successfully</h1>";
我知道有办法做到这一点,我只是不知道怎么做。如果有人能帮帮我,我真的很感激!
答案 0 :(得分:2)
你需要做很多事情,但要专门用单引号添加值等,你需要做一些简单的事情:
$reply_content = mysql_real_escape_string($_POST['reply_content']);
这将需要$_POST['reply_content']
并在必要时添加反斜杠,以便可以将其插入MySQL。如果要向用户显示数据,请不要忘记将其反转。你不希望他们看到他们不期待的斜线。
另外,根据你的例子你应该......
答案 1 :(得分:1)
试试这个(参见mysql_real_escape_string):
$reply_content = mysql_real_escape_string($_POST['reply_content']);
此外,还有一些正确方法的提示:
您正在将会话中的用户名写入隐藏的输入字段。 试试这样:
session_start();
$reply_user = $_SESSION['user_name'];
您添加了一个属性&#39; textarea&#39;在:
<textarea ... textarea>...
删除此
像这样编辑您的HTML输出:
print "<form method='post' action='reply.php'>";
print "<h3>Reply:</h3>";
print "<br><textarea name='reply_content' rows='4' cols='50'></textarea>";
print "<input type='hidden' name='reply_user' value='{$_SESSION['user_name']}'>";
print "<input type='hidden' name='topic_id' value='$id'>";
print "<br><input type='submit'></form>";
或者像这样:
// Some PHP Stuff
?>
<form method="post" action="reply.php">
<h3>Reply:</h3>
<textarea name="reply_content" rows="4" cols="50"></textarea><br/>
<input type="hidden" name="topic_id" value="<?php echo $id; ?>" />
<input type="submit" />
</form>
<?php
// Go on with php stuff
在这里还有更多工作要做但是因为看起来你是PHP的新手,现在应该没问题了
提一下:您的代码对sql injection
不安全答案 2 :(得分:-1)
$content = "<form method=post action=reply.php>";
$content .= "<h3>Reply:</h3>";
$content .= "<br><textarea name=reply_content textarea rows=4 cols=50></textarea>";
$content .= "<input type=hidden name=reply_user value={$_SESSION['user_name']}>";
$content .= "<input type=hidden name=topic_id value=$id>";
$content .= "<br><input type=submit></form>";
$content = mysql_real_escape_string($content);