【发布时间】:2014-06-27 18:57:28
【问题描述】:
我有一个实例说明我的 PHP 站点上的用户可以登录,我正在尝试创建第二个实例,管理员可以在其中发布公告。
我的登录效果很好,但由于某种原因,我无法让我的公告提交工作。尽管我的输入字段被正确命名,但当我在表单上输入标题和公告时,该字段被视为“未设置”。这是我的代码:
表格:
<form action="announce.php">
<input type="text" name="title" />
<textarea name="announce" cols="20" rows="2" ></textarea>
<input type="submit" name="submit" value="Announce" />
</form>
这是我的 PHP:
include_once 'creds.php';
$con=mysqli_connect("$db_hostname","$db_username","$db_password","$db_database");
if (isset($_POST['title']))
{
$title = $_POST['title'];
$announce = $_POST['announce'];
$query = "INSERT INTO announcements (labname, name, author, announce)
VALUES ($lab, $title, $username, $announce)";
$insert = mysqli_query($con, $query);
mysqli_close($con);
echo "added successfully";}
else
{
echo "something went wrong";
}
我的另一种形式似乎可以工作,但这种形式没有……我的语法是否有错误?
【问题讨论】:
-
<form action="announce.php" method="post">试试这个 -
哇,是的,成功了。谢谢,我不知道我必须包括在内。
-
如果未定义,表单默认为 GET 方法。
-
jerdiggity,我收到错误“出了点问题”。一旦我修复了 method="post" 的东西,我得到了未定义的变量错误。你甚至在解析器知道之前就解决了我的问题!谢谢:)
-
您容易受到SQL injection attacks 的攻击,并且存在多个 SQL 语法错误。在解决注入问题并了解字符串的基本 SQL 语法要求之前,您永远不会将任何内容放入数据库中。