页面更新或加载时,表单将信息发送到数据库

时间:2014-01-06 10:22:03

标签: php database forms

我试图在我的数据库中保存我的信息。我的下面的表单将代码发送到数据库,但如果我更新页面,重新加载它或者只是加载页面,表单中的信息将被发送到我的数据库。

它应该以这种方式工作,当您单击“提交”时,信息将被发送 - 并且仅当您单击提交时。

我认为我错过了某种形式的琐事!

这是我的PHP代码:

<?
include "../config.php";

mysql_query("insert into profiles set name= '".$_POST["name"]."', age= '".$_POST["age"]."', text= '".$_POST["text"]."', country = '".$_POST["country"]."'");
?>

我的表格如下:

<form method="post" action="<?php echo htmlspecialchars($_SERVER["PHP_SELF"]);?>" name="myform" id="myform">
 name: <input type="text" name="name"><br />
 age: <input type="text" name="age"><br />
 text: <input type="text" name="text"><br />
 country: <textarea name="country" rows="5" cols="40"></textarea><br />
<input type="submit">
</form>

我的错误是什么?请指教。

5 个答案:

答案 0 :(得分:0)

使用isset

<form method="post" action="<?php echo htmlspecialchars($_SERVER["PHP_SELF"]);?>" name="myform" id="myform">
 name: <input type="text" name="name"><br />
 age: <input type="text" name="age"><br />
 text: <input type="text" name="text"><br />
 country: <textarea name="country" rows="5" cols="40"></textarea><br />
<input type="submit" name="submit_name">
</form>

添加name属性以提交按钮

<?
include "../config.php";
if(isset($_POST['submit_name']))
{
mysql_query("insert into profiles set name= '".$_POST["name"]."', age= '".$_POST["age"]."', text= '".$_POST["text"]."', country = '".$_POST["country"]."'");
}
?>

现在您的查询仅在单击提交按钮时运行

答案 1 :(得分:0)

您应该使用名称修复按钮:

<input name="formSubmit" type="submit">

然后你可以检查按钮是否真的很容易按下

if(isset($_POST["formSubmit"]) == true) {
    mysql_query("insert into profiles set name= '".$_POST["name"]."', age= '".$_POST["age"]."', text= '".$_POST["text"]."', country = '".$_POST["country"]."'");
}

答案 2 :(得分:0)

试试这个简单的代码:

<强> HTML:

<form method="post" action="<?php echo htmlspecialchars($_SERVER["PHP_SELF"]);?>" name="myform" id="myform">
 name: <input type="text" name="name"><br />
 age: <input type="text" name="age"><br />
 text: <input type="text" name="text"><br />
 country: <textarea name="country" rows="5" cols="40"></textarea><br />
<input type="submit" name="send">
</form>

<强> PHP:

<?php
include "../config.php";
 if (isset($_POST['send'])) {
    mysql_query("insert into profiles set name= '".$_POST["name"]."', age= '".$_POST["age"]."', text= '".$_POST["text"]."', country = '".$_POST["country"]."'");
}
?>

答案 3 :(得分:0)

将提交按钮更改为

<input type="submit" name="btn" value="Submit">

if(isset($_POST[btn]))
  {
  //write your query here
  }

答案 4 :(得分:-1)

保存到数据库时尝试此代码

<?php
mysql_query("INSERT INTO profiles ('name','age','text') VALUES ('".$_POST[name]."','".$_POST[age]."','".$_POST[text]."')");

在没有htmlspecialchars的情况下修复表单上的action属性

<form method="post" action="<?php echo $_SERVER["PHP_SELF"];?>" name="myform" id="myform">