我有一个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函数/查询?
答案 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']))