だから、私はcURLの完全な初心者ですが、phpを使用してflash as3を介してデータベースにデータを挿入するのに問題があるため(ファイルは異なるサーバーにあります)、cURLスクリプトを使用して両方をブリッジすることをお勧めしました。
これが私のcURLコードです(これは別の質問からコピーして貼り付けたものです。値を変更しただけなので、ここに明らかなエラーがある場合は失礼します):
<?php
//where are we posting to?
$url = 'url'; //I have the correct url of the file (insert.php) on the other server
//what post fields?
$fields = array(
'Nome'=>$_POST['nome'],
'Email'=>$_POST['email'],
'Idade'=>$_POST['idade'],
'Profissao'=>$_POST['profissao'],
'Pais'=>$_POST['pais']
);
//build the urlencoded data
$postvars='';
$sep='';
foreach($fields as $key=>$value)
{
$postvars.= $sep.urlencode($key).'='.urlencode($value);
$sep='&';
}
//open connection
$ch = curl_init();
//set the url, number of POST vars, POST data
curl_setopt($ch,CURLOPT_URL,$url);
curl_setopt($ch,CURLOPT_POST,count($fields));
curl_setopt($ch,CURLOPT_POSTFIELDS,$postvars);
//execute post
$result = curl_exec($ch);
//close connection
curl_close($ch);
?>
これがフラッシュas3です
function WriteDatabase():void{
var request:URLRequest = new URLRequest ("curl.php file here");
request.method = URLRequestMethod.POST;
var variables:URLVariables = new URLVariables();
variables.nome = ContactForm.nomefield.text;
variables.email = ContactForm.emailfield.text;
variables.idade = ContactForm.idadefield.text;
variables.profissao = ContactForm.proffield.text;
variables.pais = LanguageField.selectedbutton.text;
request.data = variables;
var loader:URLLoader = new URLLoader (request);
loader.addEventListener(Event.COMPLETE, onComplete);
loader.dataFormat = URLLoaderDataFormat.VARIABLES;
loader.load(request);
function onComplete(event):void{
trace("Completed");
}
}
// I am assuming (incorrectly perhaps) that if is called the same way you would call a php file. It also traces "Completed" inside the flash, so it comunicates with it.
実際にデータベースにエントリを作成するため、他のファイルを正しく呼び出していることはわかっていますが、すべてが空白です。すべてのフィールド。また、フラッシュファイルをオフラインでテストすると、オンラインではなく機能するため、他のファイルが機能することもわかっています。
どんな助けでもありがたいです。