-1

AS3とmySQLを接続するこのPHPコーディングに取り組んでいます...

このエラーに出くわしましたが、何が問題なのかわかりません...誰かが2番目の目のペアを助けることができれば、私はそれを大いに感謝します...

ここにPHPの更新されたコーディングがあります

   <?php 
if(isset($_POST['userFirstName']) && isset($_POST['userLastName']) && isset($_POST['userEmail']) && isset($_POST['userNumber']) && isset($_POST['userMsg']))
{
    $userFirstName=strip_tags($_POST['userFirstName']);
    $userLastName=strip_tags($_POST['userLastName']);
    $userEmail=strip_tags($_POST['userEmail']);
    $userNumber=strip_tags($_POST['userNumber']);
    $userMsg=strip_tags($_POST['userMsg']);

    // connect with database. 

    $username="root";
    $password="dp10aap";
    $database="b-elite-fitness";

    mysql_connect("localhost","$username","$password") or die (mysql_error());
    mysql_select_db("$database") or die (mysql_error());

    //query for inserting data in database.
    $query="INSERT INTO 'formdp' VALUES('NULL','".mysql_real_escape_string($userFirstName)."','".mysql_real_escape_string($userLastName)."','".mysql_real_escape_string($userEmail)."','".mysql_real_escape_string($userNumber)."','".mysql_real_escape_string($userMsg)."')";

    if($query_run=mysql_query($query))
    {
        echo'Data inserted.';
    } else {
        die(mysql_error());
        }
}
?>  

これが私のAS3コーディングです....

processing_mc.visible = false;

function checkComplete(evt:MouseEvent):void {

    // Create A new URLVariables instance to store the variable
    var phpVars:URLVariables = new URLVariables();

    // Create a variable (e.g. candidate) to send
    phpVars.userFirstName = firstname_txt.text;
    phpVars.userLastName = lastname_txt.text;
    phpVars.userNumber = number_txt.text;
    phpVars.userEmail = email_txt.text; 
    phpVars.userMsg = msg_txt.text;

    // Create a new URLRequest instance sending data to "ascom01.php"
    var myRequest:URLRequest = new URLRequest("form.php");
    // Send data using the POST method
    myRequest.method = URLRequestMethod.POST;

    var loader:URLLoader = new URLLoader();
    loader.load(myRequest);

loader.addEventListener(Event.COMPLETE, response);
function response(e:Event):void
{
    trace(loader.data);
}

if(!firstname_txt.length) {
status_txt.text = "Please enter your first name";
} else if(!lastname_txt.length) {
status_txt.text = "Please enter your last name";
} else if (!email_txt.length) {
status_txt.text = "Please enter your email";
} else if (!number_txt.length) {
status_txt.text = "Please enter your phone number";
} else {

}

}
// handler for the PHP script completion and return of status
function completeHandler(event:Event):void {

processing_mc.visible = false;
firstname_txt.text = "";
lastname_txt.text = "";
email_txt.text = "";
number_txt.text = "";
msg_txt.text = "";

status_txt.text = event.target.data.return_msg;
}

// Add event listener for submit button click
submit_btn.addEventListener(MouseEvent.CLICK, checkComplete);

私が抱えている問題は、送信ボタンをクリックするとデータが送信されないことです...何かアイデアはありますか?

4

4 に答える 4

1

ほら、これでやってみる。

    mysql_query("INSERT INTO formdp 
      (firstname, lastname, email, number, message)  VALUES('".$userFirstName['firstname']."','".$userLastName['lastname']."','".$userEmail['email']."','".$userNumber['number']."','".$userMsg['message']."')") 
     or die (mysql_error());
     mysql_close();

* id が auto_increment の場合、id に値を挿入する必要はありません。

于 2013-03-10T22:09:49.860 に答える
0

クエリに引用符が矛盾している場合は、次を試してください。

mysql_query("INSERT INTO formdp
    (id ,firstname, lastname, email, number, message)
    VALUES(
            NULL,
        '".$userFirstName['firstname']."',
        '".$userLastName['lastname']."',
        '".$userEmail['email']."',
        '".$userNumber['number']."',
        '".$userMsg['message']."'
    )
")
or die (mysql_error());
于 2013-03-10T22:22:36.847 に答える
0

二重引用符で囲まれた文字列で配列を使用する場合、それらを配置する必要があります{}

mysql_query("INSERT INTO formdp 
  (id ,firstname, lastname, email, number, message)     
  VALUES(NULL,'{$userFirstName['firstname']}','{$userLastName['lastname']}','{$userEmail['email']}','{$userNumber['number']}','{$userMsg['message']}')")

ただし、これらの配列はとにかく存在しないように思われ、他のことについても混乱しています。おそらくあなたはただ欲しい:

mysql_query("INSERT INTO formdp 
  (id ,firstname, lastname, email, number, message)     
  VALUES(NULL,'$userFirstName','$userLastName','$userEmail','$userNumber','$userMsg')")

ただし、これにはまだ SQL インジェクションの可能性があります。正しいコードは次のとおりです。

<?php

$username="root";
$password="dp10aap";
$database="b-elite-fitness";

mysql_connect("localhost","$username","$password") or die (mysql_error());
mysql_select_db("$database") or die (mysql_error());

if(isset($_POST['userFirstName'])){ $userFirstName = mysql_real_escape_string($_POST['userFirstName']); }
if(isset($_POST['userLastName'])){ $userLastName = mysql_real_escape_string($_POST['userLastName']); }
if(isset($_POST['userEmail'])){ $userEmail = mysql_real_escape_string($_POST['userEmail']); }
if(isset($_POST['userNumber'])){ $userNumber = mysql_real_escape_string($_POST['userNumber']); }
if(isset($_POST['userMsg'])){ $userMsg = mysql_real_escape_string($_POST['userMsg']); }



mysql_query("INSERT INTO formdp 
    (id ,firstname, lastname, email, number, message) 
    VALUES(NULL,'$userFirstName','$userLastName','$userEmail','$userNumber','$userMsg')") 
or die (mysql_error());

また、1 つ以上の変数が指定されていない場合は、まだ処理されないことに注意してください。

于 2013-03-10T22:09:02.370 に答える
0
<?php 
if(isset($_POST['userFirstName'])) && isset($_POST['userLastName']) && isset($_POST['userEmail']) && isset($_POST['userNumber']) && isset($_POST['userMsg']))
{
    $userFirstName=strip_tags($_POST['userFirstName']);
    $userLastName=strip_tags($_POST['userLastName']);
    $userEmail=strip_tags($_POST['userEmail']);
    $userNumber=strip_tags($_POST['userNumber']);
    $userMsg=strip_tags($_POST['userMsg']);

    // connect with database. 

    $username="root";
    $password="dp10aap";
    $database="b-elite-fitness";

    mysql_connect("localhost","$username","$password") or die (mysql_error());
    mysql_select_db("$database") or die (mysql_error());

    //query for inserting data in database.
    $query="INSERT INTO `formdp` VALUES('NULL','".mysql_real_escape_string($userFirstName)."','".mysql_real_escape_string($userLastName)."','".mysql_real_escape_string($userEmail)."','".mysql_real_escape_string($userNumber)."','".mysql_real_escape_string($userMsg)."')";

    if($query_run=mysql_query($query))
    {
        echo'Data inserted.';
    } else {
        die(mysql_error());
        }


}
?>  

上記のコードを見てください。
提案:
減価償却されているため、コードで mysql_* 関数を使用しないようにしてください。したがって、mysqli_* またはオブジェクト指向のアプローチを使用してみてください。

于 2013-03-10T22:42:51.003 に答える