0

私は両方のプログラミング言語に慣れていないので、可能な限りあらゆる助けを借りることができます。AS3 でフォームを作成しました。データは PHP に送信され、次に MYSQL に送信されます。コードを確認しましたが、PHP ドキュメントにも AS3 ドキュメントにもエラーはありません。

私は WAMP Server 2.2 を使用していますが、ドキュメントが正しいものであると確信していますWAMP/WWW/Project(ドキュメントはこのフォルダーにあります)。経由でアクセスできますhttp://localhostが、データが送信されていません。

これがPHPとAS3の両方の私のコーディングです

AS3:

// hide processing CM
processing_mc.visible = false;

var variables:URLVariables = new URLVariables();

// Build the varSend variable
var varSend:URLRequest = new URLRequest("http://localhost/belitefitness/form.php");
varSend.method = URLRequestMethod.POST;
varSend.data = variables;

// Build the varLoader variable
var varLoader:URLLoader = new URLLoader;
varLoader.dataFormat = URLLoaderDataFormat.VARIABLES;
varLoader.addEventListener(Event.COMPLETE, completeHandler);
// handler for the PHP script completion and return of status
function completeHandler(event:Event):void {

// remove processing clip
processing_mc.visible = false;
firstname_txt.text = "";
lastname_txt.text = "";
email_txt.text = "";
number_txt.text = "";
msg_txt.text = "";

// Load the response from php here
status_txt.text = event.target.data.return_msg;
}
// Add event listener for submit button click
submit_btn.addEventListener(MouseEvent.CLICK, ValidateAndSend);

// function ValidateAndSend
function ValidateAndSend (event:MouseEvent):void {

// validate fields
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 {

// All is good, send the data now to PHP
processing_mc.visible = true;

// ready the variables in our form for sending
variables.userFirstName = firstname_txt.text;
variables.userLastName = lastname_txt.text;
variables.userEmail = email_txt.text; 
variables.userNumber = number_txt.text;
variables.userMsg = msg_txt.text; 
// Send the data to PHP now
varLoader.load(varSend);
} // close else condition for error handling
} // close validate and send function

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());
        }
}
?>  
4

2 に答える 2

1

URLRequest()PHP スクリプトのパスを、ローカル サーバーのフル パスに変更する必要があります。つまり、サーバーをローカルで実行している場合は、パスを次のように変更する必要があります。

var myRequest:URLRequest = new URLRequest("http://localhost/form.php");

ここからダウンロードできる実用的な例を用意しました。

次の内容が含まれます。

  • Application.fla - ここで最初のフレームを見て、動作するコードを確認できます。
  • Request.as - このプロセスをより簡単に管理できるように作成した単純なクラス。
  • DemoRequestResponse.php - デモ用に作成した単純な PHP スクリプト。
于 2013-03-11T23:57:21.600 に答える
1

phpVars をリクエストに追加するのを忘れました。

myRequest.data = phpVars;

編集
load メソッドを呼び出す前に、イベントリスナーをローダーに追加する必要もあります。

var loader:URLLoader = new URLLoader();
loader.addEventListener(Event.COMPLETE, response);
loader.load(myRequest);
于 2013-03-11T18:27:46.070 に答える