L'envoi et la réception de données à partir de Flash AS3, PHP
Je sais que c'est fréquemment posée, mais j'ai cherché partout sur internet pour trouver l'erreur que j'ai fais avec le code que j'ai utilisé pour envoyer et recevoir des données à partir d'AS3, PHP, et vice-versa. Pouvez-vous trouver l'erreur? Voici mon code:
AS3:
import flash.events.MouseEvent;
import flash.net.URLLoader;
import flash.net.URLRequest;
import flash.net.URLVariables;
import flash.net.URLLoaderDataFormat;
import flash.net.URLRequestMethod;
import flash.events.Event;
submitbtn.addEventListener(MouseEvent.CLICK, sendData)
function sendData(event:MouseEvent):void
{
var loader : URLLoader = new URLLoader;
var urlreq:URLRequest = new URLRequest("http://[mydomain]/test.php");
var urlvars: URLVariables = new URLVariables;
loader.dataFormat = URLLoaderDataFormat.VARIABLES;
urlreq.method = URLRequestMethod.POST;
urlvars.uname = nametxt.text;
urlvars.apellido = aptxt.text;
urlvars.email = emtxt.text;
urlvars.cedula = cctxt.text;
urlvars.score = scoretxt.text;
urlreq.data = urlvars;
loader.addEventListener(Event.COMPLETE, completed);
loader.load(urlreq);
}
function completed(event:Event): void
{
var loader2: URLLoader = URLLoader(event.target);
trace(loader2.data.done);
resptxt.text = event.target.data.done;
}
PHP à l'intérieur de [domaine]/test.php:
<?php
$username = $_POST["uname"];
$apellido = $_POST["apellido"];
$cedula = $_POST["cedula"];
$email = $_POST["email"];
$score = $_POST["score"];
print_r($_POST);
if (!($link=mysql_connect(databasemanager,username,password)))
{
echo "Error conectando a la base de datos.";
exit();
}
if (!mysql_select_db(database,$link))
{
echo "Error seleccionando la base de datos.";
exit();
}
try
{
mysql_query("insert into scores(name,lastName,email,document,score) values('$username','$apellido','$email','$cedula','$score')",$link);
print "done=true";
}
catch(Exception $e)
{
print "done=$e->getMessage()";
}
echo "done=true";
?>
Merci pour vos réponses.
S'il vous plaît, fournir au moins les informations de ce qui se passe exactement tort.
Essayez d'exécuter votre PHP directement dans le navigateur, la commutation des variables POST pour OBTENIR de sorte que vous pouvez tester facilement. Je soupçonne que vous trouverez une erreur.
quel est le résultat de cette resptxt.texte = event.cible.les données.fait;
Essayez d'exécuter votre PHP directement dans le navigateur, la commutation des variables POST pour OBTENIR de sorte que vous pouvez tester facilement. Je soupçonne que vous trouverez une erreur.
quel est le résultat de cette resptxt.texte = event.cible.les données.fait;
OriginalL'auteur Julio Mendoza | 2011-07-29
Vous devez vous connecter pour publier un commentaire.
Votre code semble être de droite. Donc le problème est peut-être en PHP. Veuillez tout d'abord un test avec ce fichier PHP:
Ceci devrait alors laissez votre film trace
"true"
.Ensuite, vous devez déboguer votre PHP.
print_r($_POST);
détruit votre sortie de cours. Peut-être que vous n'oubliez pas de retirer cette débogage 🙂@Jesse et @Ascension Systèmes, consultez la documentation pour URLVariables: http://livedocs.adobe.com/flash/9.0_de/ActionScriptLangRefV3/flash/net/URLVariables.html
loader.dataFormat = URLLoaderDataFormat.VARIABLES;
Vous aviez raison au sujet de
print_r($_POST);
, c'est l'erreur!!! Merci à tous pour les réponses, je vais les garder à l'esprit.OriginalL'auteur Jens Struwe
Essayer
Mis à jour le formulaire de fonction...
OriginalL'auteur Jesse
Tout d'abord, modifiez cette ligne de code:
:
Vous êtes de la sortie du texte brut à partir de php, de sorte que votre objet de données dans flash est tout simplement va être de texte brut. Ce n'est pas un objet .fait attaché à elle. Si vous voulez avoir une structure de données, alors vous devez créer un peu de XML ou de quelque chose à l'intérieur de PHP, de l'imprimer puis de le cast loader2.des données en XML, comme suit:
Toutefois, si votre fichier XML n'est pas formé correctement, vous allez créer une erreur non interceptée dans le flash crash de votre application, assurez-vous d'utiliser les instructions try/catch.
OriginalL'auteur