2011-07-17 11 views
0

私はhtml phpとjavascriptでフォーム設定をしています。私は、送信ボタンをクリックするとprocess()関数を実行するフォームを設定しました。このプロセス関数では、自分自身に電子メールを送り、フォームからのデータをmysqlクエリに挿入し、そのクエリを送信します。PHPの電子メールコードはMySQLクエリは処理されていませんか?

電子メールコードは機能しますが、電子メールが届きますが、クエリコードがないため、データベースに新しい行がありません。また、mysql_error()も出力されません。

どこに間違っているのか教えてください。

function process() 
    { 
     mysql_connect("localhost", "username", "password"); 
     mysql_select_db("db"); 
     $device = mysql_real_escape_string($_POST['Device_Type']); 
     $name = mysql_real_escape_string($_POST['Name']); 
     $job = mysql_real_escape_string($_POST['DD']); 
     $username = mysql_real_escape_string($_POST['Username']); 
     $email = mysql_real_escape_string($_POST['Email']); 
     $website = mysql_real_escape_string($_POST['Website']); 
     $UDID = mysql_real_escape_string($_POST['UDID']); 
     mysql_query("INSERT INTO Beta_Testers (`Name`, `Username`, `Email Address`, `Website`, `Job`, `Device_Type`, `UDID`) VALUES ('$name','$username','$email','$website','$job','$device','$UDID'))") or die(mysql_error()); 
      $msg = "Form Contents: \n\n"; 
      foreach($this->fields as $key => $field) 
       $msg .= "$key : $field \n"; 
      $to = '[email protected]'; 
      $subject = 'Beta Form Submission'; 
     $from = 'Beta Sign up'; 
      mail($to, $subject, $msg, "From: $from\r\nReply-To: $from\r\nReturn-Path: $from\r\n"); 
    } 
+0

テーブルのプライマリキーとは何ですか?おそらく、あなたは同じキーでレコードを書き直そうとしています。 – itsols

+0

私の主キーが 'id' –

+0

mysqlは廃止予定です。代わりにmysqli(またはPDO)を使用してください! – Perocat

答えて

0

するmysql_query()はあなたがそれを使用している状況にあるブール関数であるので、あなたが次の操作を行うことができます。

function process() 
    { 
     mysql_connect("localhost", "username", "password"); 
     mysql_select_db("db"); 
     $device = mysql_real_escape_string($_POST['Device_Type']); 
     $name = mysql_real_escape_string($_POST['Name']); 
     $job = mysql_real_escape_string($_POST['DD']); 
     $username = mysql_real_escape_string($_POST['Username']); 
     $email = mysql_real_escape_string($_POST['Email']); 
     $website = mysql_real_escape_string($_POST['Website']); 
     $UDID = mysql_real_escape_string($_POST['UDID']); 
     $query = "INSERT INTO Beta_Testers (`Name`, `Username`, `Email Address`, `Website`, `Job`, `Device_Type`, `UDID`) VALUES ('$name','$username','$email','$website','$job','$device','$UDID'))"; 
     if (mysql_query($query)) { 
      $msg = "Form Contents: \n\n"; 
      foreach($this->fields as $key => $field) 
       $msg .= "$key : $field \n"; 
      $to = '[email protected]'; 
      $subject = 'Beta Form Submission'; 
      $from = 'Beta Sign up'; 
      mail($to, $subject, $msg, "From: $from\r\nReply-To: $from\r\nReturn-Path: $from\r\n"); 
     } else { 
      echo $query; 
     } 
    } 

しかし、見て、あなたのコードを、 "と呼ばれるメールアドレス欄です電子メールアドレス "または" Email_Address "?

+0

これは電子メールアドレスと呼ばれています(_が付いていません)。 –

+0

私は今、電子メールを取得していませんが、クエリはエコーしていません。 –

+0

修正しました。クエリに余分な ')'がありました。 –

関連する問題