0

我想使用 php 表单获取一些用户数据并将其存储在 mysql 数据库中,问题是,当我提交表单时页面只是刷新。

这是我的php表单:

<form id="companyform" name="companyform" method="post" action="index3.php" data-ajax="false">
<b>To enlist your business fill in the form below:</b>
<p>
<label for="name">Company Name:</label>
<input type="text" name="companyname" id="companyname"  data-mini="true"/>
</p>
<p>
<label for="name">Company Address:</label>
<input type="text" name="companynaddress" id="companynaddress"  data-mini="true"/>
</p>
<p>
<label for="textfield">Tel No.:</label>
<input type="text" name="tel" id="tel"  data-mini="true"/>
</p>
<p>
<label for="textfield">Fax No.:</label>
<input type="text" name="fax" id="fax"  data-mini="true"/>
</p>
<p>
<label for="textfield">Email:</label>
<input type="text" name="email" id="email"  data-mini="true"/>
</p>
<p>
<label for="textfield">Website Address:</label>
<input type="text" name="website" id="website"  data-mini="true"/>
</p>

<p>
<label for="textfield">Contact Person Name:</label>
<input type="text" name="contactname" id="contactname"  data-mini="true"/>
</p>

<p>
<label for="textfield">Contact Person Number:</label>
<input type="text" name="contactnumber" id="contactnumber"  data-mini="true"/>
</p>

<p>
<label for="textfield">Contact Person Email:</label>
<input type="text" name="contactemail" id="contactemail"  data-mini="true"/>
</p>

<p>
<input name="submit" type="submit" id="submit" value="Submit" />
</p>
</form>

这是我的数据库连接代码:

<?php

if (array_key_exists('submit', $_POST)) {

$con = mysql_connect("host",    "user", "pass");

if (!$con)
  {
  die('Could not connect: ' . mysql_error());
  }

mysql_select_db("botswanasearchdb", $con);

$companyname = $_POST['companyname'];
$companyaddress = $_POST['companyaddress'];
$tel = $_POST['tel'];
$fax = $_POST['fax'];
$emailid = $_POST['emailid'];
$website = $_POST['website'];
$contactname = $_POST['contactname'];
$contactnumber = $_POST['contactnumber'];
$contactemail = $_POST['contactemail'];

// prepare the SQL query
 $sql = "INSERT INTO businessuser (companyname, companyaddress, tel, fax, emailid,   website, contactname, contactnumber, contactemail) VALUES ('$companyname',   '$companyaddress', '$tel', '$fax', '$emailid', '$website', '$contactname', '$contactnumber', '$contactemail')";
mysql_close($con);
}

?>
4

1 回答 1

2

这是您的表单标签:

<form id="companyform" name="companyform" method="post" action="index3.php" data-ajax="false">

因此,您将表单提交给index3.phpaction属性)。根据您的评论index3.php包含您的表单,这就是为什么表单在您提交时刷新。您基本上是在提交表单时重新加载表单。

您需要将表单提交到包含您发布的 php 代码的 php 脚本。

编辑:如果所有内容都在同一页面上,您可以执行以下操作:

if (array_key_exists('submit', $_POST))
{
  // your code

  // show thank you message
}
else
{
  // show form
}

另一个编辑:当您使用已弃用的mysql_*函数而不是转义数据时,您有一个整体的 sql 注入,并且'数据中的一个字符会破坏您的查询。您应该切换到 PDO / mysqli 和准备好的语句。并始终添加错误处理。

于 2012-12-07T15:20:08.953 回答