0

我有对 MSSQL 数据库的 PHP 查询。它看起来像这样:

<?php 

    if (isset($_POST['form6'])) {
        $Title=$_POST['Title'];
        $Synopsis=$_POST['Synopsis'];
        $Article=$_POST['Article'];
        $DateUploaded= date("Y-m-d H:i:s");
        $Deleted=$_POST['Deleted'];

        $myServer = "**********";
        $myUser = "**********";
        $myPass = "******";
        $myDB = "*********";

        $dbhandle = mssql_connect($myServer, $myUser, $myPass) or die("Couldn't connect to SQL Server on $myServer"); 
        mssql_select_db($myDB) or die;

        $dbTABLE = "Tablename";
        $query_sql = sprintf("INSERT INTO %s (Title, Synopsis, Article, DateUploaded, Deleted)   VALUES ('%s','%s','%s','%s','%s')",
        addslashes($dbTABLE),
        addslashes($Title),
        addslashes($Synopsis),
        addslashes($Article),
        addslashes($DateUploaded),
        addslashes($Deleted));

        if ($result = mssql_query($query_sql, $dbhandle)) {
            print "Your information has been successfully added to the database.";
            header('Location: News.php');
        }
    }
?>

最初它位于一个单独的 .php 文件中,并在表单的“操作”上执行。然而,为了减少重定向的数量,我将它移动到与表单相同的页面,并在顶部包含了 if 语句,以尝试让它在名为 form6 的表单发布时执行。

这是表格行。:

<FORM method="post" name="form6" id="form6" ENCTYPE="multipart/form-data" action="<?php echo $_SERVER['PHP_SELF']; ?>">

然而,这一切似乎只是刷新页面,没有数据被添加到数据库中,也没有命中标题以重定向到 News.php。

我也尝试过,没有任何动作,同样的结果。我的问题是为什么这不会使它命中 php 函数/查询?

4

4 回答 4

3

您正在检查该<form行中实际上从未包含值的元素:

if (isset($_POST['form6']))

您需要检查实际的表单元素(输入)以查看是否发送了数据。

您应该检查诸如此类的实际值,$_POST['Title']以查看是否已从表单发送数据。

如果要包含表单名称,请在表单内使用如下隐藏字段:

<input type='hidden' name='form6' value='1'>
于 2012-09-05T11:10:23.333 回答
1

您需要在表单中添加一个提交按钮,例如:

<form method="post" name="form6" id="form6" ENCTYPE="multipart/form-data" action="">
    <input type="submit" name="formsubmit"/>
</form>

然后在php中检查

 if (isset($_POST['formsubmit']))
于 2012-09-05T11:12:14.987 回答
1

另一种不包括制作特殊隐藏字段的方法:

将“form6”添加到您的操作网址:

<FORM method="post" name="form6" id="form6" ENCTYPE="multipart/form-data" 
      action="<?php echo $_SERVER['PHP_SELF'].'?form6'; ?>">

如果您检查表单名称,请改用 GET,但请记住,其他值仍在 POST 变量中

if (isset($_GET['form6'])) {
于 2012-09-05T11:19:23.927 回答
0

你为什么<Form name在 if 条件下检查财产

if (isset($_POST['form6']))

删除它并检查

if (isset($_POST['Title']))
于 2012-09-05T11:12:20.307 回答