PHP表单未重新发布已发布

时间:2012-09-05 11:08:14

标签: php sql-server post

我有一个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 个答案:

答案 0 :(得分:3)

您正在检查行中的<form元素,该元素中实际上没有值:

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

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

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

如果要包含表单名称,请在表单中使用这样的隐藏字段:

<input type='hidden' name='form6' value='1'>

答案 1 :(得分:1)

您需要表单中的提交按钮,例如:

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

然后在php中检查

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

答案 2 :(得分: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'])) {

答案 3 :(得分:0)

为什么要在条件为

的情况下检查<Form name属性
if (isset($_POST['form6']))

将其删除并检查

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