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.php(action属性) に送信しています。あなたのコメントによると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 に答える