【问题标题】:if isset($_POST issueif isset($_POST 问题
【发布时间】: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";
}

我的另一种形式似乎可以工作,但这种形式没有……我的语法是否有错误?

【问题讨论】:

  • &lt;form action="announce.php" method="post"&gt; 试试这个
  • 哇,是的,成功了。谢谢,我不知道我必须包括在内。
  • 如果未定义,表单默认为 GET 方法。
  • jerdiggity,我收到错误“出了点问题”。一旦我修复了 method="post" 的东西,我得到了未定义的变量错误。你甚至在解析器知道之前就解决了我的问题!谢谢:)
  • 您容易受到SQL injection attacks 的攻击,并且存在多个 SQL 语法错误。在解决注入问题并了解字符串的基本 SQL 语法要求之前,您永远不会将任何内容放入数据库中。

标签: php html mysql forms


【解决方案1】:

您的表单是作为 GET 请求而不是 POST 提交的。

改变这一行:

<form action="announce.php">

到这里:

<form action="announce.php" method="post">

编辑:我真的应该在发帖前刷新页面。感谢 noobie-php 在我发布这篇文章前 30 分钟在他们的comment 中做到了这一点!

【讨论】:

    【解决方案2】:

    PHP :

    include_once 'creds.php';
    $con=mysqli_connect("$db_hostname","$db_username","$db_password","$db_database");
    
    if (isset($_POST['submit']))
    {
        $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";
    }
    

    我认为if (isset($_POST['submit'])) 这就是问题所在。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-04-03
      • 1970-01-01
      • 1970-01-01
      • 2014-07-04
      • 2015-03-05
      • 1970-01-01
      相关资源
      最近更新 更多