PHP / Mysql评论框基本编码问题

时间:2015-03-04 00:35:30

标签: php mysql

嘿我想在我的网站上添加一个简单的联系人框。我已经按照在线教程进行了操作,但它们似乎从未按照它们的方式工作: 我在phpMyadmin上设置了一个名为comment的表,名为comment和3列:id,name和comment。我已将此代码用于评论框页面... index.php

    <html>
<form action="post_comment.php" method="POST">
<input type="text" name="name" value="Your Name"><br>
<textarea name="comment" cols="50" rows="2">Enter your query and contact details</textarea><br>
<input type="submit" value="Submit">
</form>

然后我有另一个名为post_comment.php的页面,上面有mysql编码......

    <?php

     mysql_connect("localhost","root","");
     mysql_select_db("comment");

     $name = $_POST["name"];
     $comment = $_POST["comment"];

     $comment_length = strlen($comment);

     if($comment_length > 100)

    {
    header("location: index.php?error=1")
    }
    else
   {
   mysql_query("INSERT INTO comment VALUES('','$name','$comment')")
   header("location: index.php")
   }

   ?>

但是,一旦我在输入框中输入详细信息而不是发送到我的表格的详细信息,我就会收到此错误

解析错误:语法错误,意外的文件结束,期待变量

(T_VARIABLE) or ${ (T_DOLLAR_OPEN_CURLY_BRACES) or {$ (T_CURLY_OPEN) 
in C:\xampp\htdocs\tutorials\contact1.php on line 16

我的代码第16行只写了else语句。有人看看,因为我知道这是基本的,但我刚刚开始。感谢Advance.Paul

2 个答案:

答案 0 :(得分:2)

请,请查阅并了解SQL注入。不要将用户文本直接放入您的查询中,或者只是要求某人与您联系。如果“root”真的是你的登录,那就更糟了......利用权限较少的用户帐户。此外,您应该使用PDO或mysqli,因为不推荐使用mysql扩展。

那就是说,这是你的代码,有些修复以消除用户输入和修复的语法错误:

<?php

$conn = mysql_connect("localhost","root","");
mysql_select_db("comment");

$name           = mysql_real_escape_string($_POST["name"], $conn);
$comment        = mysql_real_escape_string($_POST["comment"], $conn);

$comment_length = strlen($comment);

if($comment_length > 100)
{
    header("location: index.php?error=1");
}
else
{
    mysql_query("INSERT INTO comment VALUES('','$name','$comment')");
    header("location: index.php");
}

答案 1 :(得分:0)

注意你的语法。我在下面更正了它,但if语句中的每个函数调用都没有';'。

<?php

 mysql_connect("localhost","root","");
 mysql_select_db("comment");

 $name = $_POST["name"];
 $comment = $_POST["comment"];

 $comment_length = strlen($comment);

 if($comment_length > 100)
 {
     header("location: index.php?error=1");
 }
 else
 {
     mysql_query("INSERT INTO comment VALUES('','$name','$comment')");
     header("location: index.php");
}

?>