0

私はPHPとMySQLを初めて使用します。趣味で友達向けのウェブサイトをデザインするだけなので、どんな助けでも大歓迎です。ページに簡単な連絡フォームがあると、情報を送信するときにエラーメッセージが表示され続けます。PHPは次のとおりです。

<?php
$con = mysql_connect("localhost","user","password");
if (!$con))  {
die('Could not connect: ' . mysql_error());
 }

mysql_select_db("database_name", $con);

$sql="INSERT INTO contact (first_name, last_name, email, phone, message)
VALUES
('$_POST[first_name]','$_POST[last_name]','$_POST[email]','$_POST[phone]','$_POST[message])";

if (!mysql_query($sql,$con)) {
die('Error: ' . mysql_error());
}
echo "1 record added";

mysql_close($con);
?>

必要に応じてユーザー名とパスワードを入力しますが、「localhost」はそのままにしておきます。これは正しいです?私はwebhostingpadを介してホスティングしています。上記のデータベース名も挿入します。これが私のHTMLです:

<!--Start of order form-->

<form id="contactform" method="POST" action="http://www.talephotography.com/insert.php">
<p><label>First Name:<br />
<input type="text" name="first_name" class="textfield" value="" />
</label></p>

<p><label>Last Name:<br />
<input type="text" name="last_name" class="textfield" value="" />
</label></p>

<p><label>Email: <br />
<input type="text" name="email" class="textfield" value="" />
</label></p>

<p><label>Phone: <br />
<input type="text" name="phone" class="textfield" value="" />
</label></p>

<p><label>Message: <br />
<textarea name="message" class="textarea" cols="45" rows="5"></textarea>
</label></p>

<p><input type="submit" name="submit" class="button" value="Submit" /></p>
</form>
<!--End of order form-->

必要なところならどこでも詳しく説明できます。


一部のコードを変更しましたが、データベースにメールアドレスを投稿するだけです。

mysql_select_db("databasename", $con);

$first = mysql_real_escape_string($_POST['first']);
$last = mysql_real_escape_string($_POST['last']);
$email = strip_tags(mysql_real_escape_string($_POST['email']));
$number = preg_replace('/[^0-9]/', '', $_POST['number']);
$number =  (int) $number;


$sql="INSERT INTO contact (first, last, email, phone);
VALUES
('$first','$last','$email','$number')";

私のコードはありますが、データベースをチェックすると、リストされている情報はメールアドレスだけです。

4

5 に答える 5

3

localhostデータベースサーバーがWebサーバーと同じマシン上にある場合は正しいです。データベースを設定すると、接続する必要がある場所がどこかに示されているはずです。

それはさておき、あなたの-----------ing入力をエスケープしてください!!!!

真剣に、それらの変数を取り、それらを徹底的に洗い流してから、それらをクエリにmysql_real_escape_string連結します。後で感謝します。

于 2012-04-26T16:31:40.477 に答える
0

問題は3行目にあります

$con = mysql_connect("localhost","user","password");
if (!$con))  {
die('Could not connect: ' . mysql_error());
}

3行目に余分な閉じ括弧)があります。それを削除してからボイラー!

お役に立てれば。

于 2012-10-20T11:38:57.430 に答える
0

)ifステートメントに余分なものがあります:

if (!$con))  {

する必要があります

if (!$con)  {
于 2012-04-26T16:48:00.847 に答える
0
 if (!$con)) it is wrong one extra ')' present here, remove ')' and then execute

例えば

       if (!$con){

        //do something

           }
于 2012-04-26T17:14:42.753 に答える
0

そのクエリは間違っています、あなたは;を持っています。それはあなたの質問の真ん中にあります。

$sql="INSERT INTO contact (first, last, email, phone);
   VALUES
('$first','$last','$email','$number')";

最初の行の終わりに注意してください。これを次のように変更します。

$sql="INSERT INTO contact  VALUES
('$first','$last','$email','$number')";
于 2012-05-31T09:49:27.200 に答える