2012-04-26 10 views
0

私はPHP &に非常に新しいです。ちょうど趣味として友人のためのウェブサイトを設計するので、どんな助けも大歓迎です。私のページに簡単な連絡フォームがあるときは、情報を提出するときにエラーメッセージが表示され続けます。ここではPHPは次のとおりです。初心者のPHPとMySQLの

<?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')"; 

私のコードはありますが、データベースをチェックすると、表示される唯一の情報は電子メールアドレスです。

+1

エラーメッセージは何ですか? – Tchoupi

+0

あなたはホスティングを取得したとき、あなたは情報を持つ電子メールを取得しませんでしたか? – JonathanRomer

+0

これは、実際に私たちにエラーを伝え、通常それをコピーして貼り付けると役に立ちます。これは、コードのブロックを読むことなく答えをテレビで見ることができるように、 – mjsa

答えて

3

localhostデータベースサーバーがWebサーバーと同じマシンにある場合は、正しいです。データベースをセットアップするときには、接続する必要のある場所を教えておく必要があります。

それ以外では、あなたの入力をエスケープしてください!!!!

問合せににそれらを連結真剣に、これらの変数を取り、mysql_real_escape_stringで十分に洗った後、。あなたは後で私に感謝します。

+4

[PDO](http://php.net/manual/en/book.pdo.php)を使用してください。 –

+0

Idにも "DONT USE ---- ing ext/mysql"を追加してください! MysqliまたはPDOを使用してください:-) – prodigitalson

+0

@prodigitalson MySQLの使用方法が分かっている限り、MySQL(または他のシステム)に問題はありません。 –

0

あなたのif文で余分)を持っている:

if (!$con)) { 

は、例えば

if (!$con) { 
0
if (!$con)) it is wrong one extra ')' present here, remove ')' and then execute 

でなければなりません

 if (!$con){ 

     //do something 

      } 
0
間違っている

そのクエリ、あなたが持っていますa;それはあなたの質問の途中です。

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

最初の行の最後に注意してください。これを変更します。

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

問題は、あなたの三行目

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

あなたの三行目に余分な閉じ括弧)があるとされます。それを削除してから、声をかけてください!

これが役に立ちます。