Aide - Recherche - Membres - Calendrier
Version complète : Envoi de variable de flash à php
Centre de Formation Flash - Forums Adobe Flash > Adobe Flash > Gestion de données dynamiques
iceman2001
Bonjour à tous,

je vous expliquer mon histoire.
Sur mon site complétement en flash, j'ai une page d'inscription à la newsletter.
Dans mon clip, j'ai placé un objet text dynamique et j'ai donné comme nom de variable adressemail.

Quand on clique sur un bouton inscription, j'effectue ce code :

Action Script

on (release) {
loadVariablesNum ("inscription.php", 0, "POST");
}


Dans mon inscription.php qui est au même niveau que mon swf, j'ai ceci :

Action Script


<?php

$host = "sql.xxx.fr";
$user = "xxx";
$password = "toto";
$bdd = "bdd1";

mysql_connect($host, $user, $password) or die ("impossible de se connecter au
serveur");
mysql_select_db($bdd) or die ("impossible de se connecter a la base de donnees");
$SQLQuery = "INSERT INTO newsletter (email) VALUES ('$adressemail') ";
$result = mysql_query($SQLQuery);

mysql_close();
?>


Ma BDD MySQL s'appelle bien bdd1, possede une table newsletter avec 2 champs (ID (int) autoincrémental unique et email (text)).

Quand on appuie sur le bouton, pas d'erreur, mais rien dans ma base MySQL.

Avez vous une idée de ce qui cloche svp ? J'ai récupéré mes codes dans les différents tutoriaux que j'ai pu trouver sur le net. Je suis vraiment débutant en AS....et je ne souhaite pas vraiment passer au XML pour l'instant.

Merci d'avance
monz
Citation (iceman2001 @ Nov 7 2008, 12:19 PM) *
Bonjour à tous,

je vous expliquer mon histoire.
Sur mon site complétement en flash, j'ai une page d'inscription à la newsletter.
Dans mon clip, j'ai placé un objet text dynamique et j'ai donné comme nom de variable adressemail.

Quand on clique sur un bouton inscription, j'effectue ce code :

Action Script

on (release) {
loadVariablesNum ("inscription.php", 0, "POST");
}


Dans mon inscription.php qui est au même niveau que mon swf, j'ai ceci :

Action Script


<?php

$host = "sql.xxx.fr";
$user = "xxx";
$password = "toto";
$bdd = "bdd1";

mysql_connect($host, $user, $password) or die ("impossible de se connecter au
serveur");
mysql_select_db($bdd) or die ("impossible de se connecter a la base de donnees");
$SQLQuery = "INSERT INTO newsletter (email) VALUES ('$adressemail') ";
$result = mysql_query($SQLQuery);

mysql_close();
?>


Ma BDD MySQL s'appelle bien bdd1, possede une table newsletter avec 2 champs (ID (int) autoincrémental unique et email (text)).

Quand on appuie sur le bouton, pas d'erreur, mais rien dans ma base MySQL.

Avez vous une idée de ce qui cloche svp ? J'ai récupéré mes codes dans les différents tutoriaux que j'ai pu trouver sur le net. Je suis vraiment débutant en AS....et je ne souhaite pas vraiment passer au XML pour l'instant.

Merci d'avance


Salut,

Comment récupères-tu la variable ?
Je vois dans ton script : "VALUES ('$adressemail')", mais comment-dis tu à php que $adressemail est égale à la variable passée en post ?
iceman2001
Effectivement, ceci serait plus correct ?

Action Script

<?php

$host = "sql.xxx.fr";
$user = "xxx";
$password = "toto";
$bdd = "bdd1";

$mail = $_POST['adressemail'];

mysql_connect($host, $user, $password) or die ("impossible de se connecter au
serveur");
mysql_select_db($bdd) or die ("impossible de se connecter a la base de donnees");
$SQLQuery = "INSERT INTO newsletter (email) VALUES ('$mail') ";
$result = mysql_query($SQLQuery);

mysql_close();
?>
iceman2001
Cette fois, il y a bien une écriture dans ma BDD mais mon champs email reste vide dans mysql (alors que l'ID est bien incrémenté).
monz
Citation (iceman2001 @ Nov 7 2008, 02:48 PM) *
Cette fois, il y a bien une écriture dans ma BDD mais mon champs email reste vide dans mysql (alors que l'ID est bien incrémenté).

C'est normal, flash appelle bien ta page, mais par contre, avec loadVariablesNum, je ne crois pas que tu puisses envoyer des variables à php. Je ne fais plus trop d'AS2, mais je crois pas.

Regarde plutôt du côté de :

Action Script


mesVars:LoadVars = new LoadVars();
mesVars.adressemail = monchampsdynamique.text;//ou le nom de ta variable
mesVars.sendAndLoad("inscription.php", mesVars, "POST");


Enfin, je crois...
iceman2001
J'ai donc essayé ca :

Action Script

	var MaVariable:LoadVars = new LoadVars(); 
MaVariable.adressemail = adressemail;
MaVariable.sendAndLoad("./Scripts/inscription.php", MaVariable, "POST");


Mais je sais pas trop si je dois mettre

MaVariable.adressemail = adressemail;

ou

MaVariable.adressemail = adressemail.text;

Ceci dit, dans mon champ email de ma BDD, maintenant, j'ai undefined. icon_sad.gif

Je suis vraiment pas bon, désolé.
monz
Citation (iceman2001 @ Nov 7 2008, 03:56 PM) *
j'ai undefined. icon_sad.gif

Ca veut dire qu'on progresse !

Action Script


MaVariable.adressemail = adressemail.text;


Si ton champs de texte dynamique s'appelle adressemail (dans ce cas, tu ne renseignes pas la case var)

Mais pour pas te perdre, tu devrais l'appeler adressemail_txt. Donc, tu appelles ton champs texte dynamique :
adressemail_txt

Et tu as :

Action Script


MaVariable.adressemail = adressemail_txt.text;
iceman2001
En fait, j'ai l'impression que je me perds entre le nom que je donne à l'occurence de mon texte de saisie et le nom de variable que je rentre dans la case "var".

Si j'ai bien compris, je donne comme nom d'occurence : adressemail_txt
et je laisse vide le champ "var" ?
monz
Citation (iceman2001 @ Nov 7 2008, 04:20 PM) *
En fait, j'ai l'impression que je me perds entre le nom que je donne à l'occurence de mon texte de saisie et le nom de variable que je rentre dans la case "var".

Si j'ai bien compris, je donne comme nom d'occurence : adressemail_txt
et je laisse vide le champ "var" ?


Oui.

Et dans ton script, pour récupérer ce qu'il y a dans ton occurence de text dynamique, tu fais :

Action Script


adressemail_txt.text // c'est le contenu de ton champs dynamique
iceman2001
Ben c'est bien ce que j'ai fait...
Mon nom d'occurence s'appelle adressemail_txt. Pas de valeur dans "VAR".
Et dans mon code :

Action Script


MaVariable.adressemail = adressemail_txt.text;


et dans mon PHP

Action Script


$mail = $_POST['adressemail'];
$SQLQuery = "INSERT INTO newsletter (email) VALUES ('$mail') ";
$result = mysql_query($SQLQuery);


et je ne comprends pas pourquoi j'ai toujours undefined.
monz
Citation (iceman2001 @ Nov 7 2008, 04:30 PM) *
Ben c'est bien ce que j'ai fait...
Mon nom d'occurence s'appelle adressemail_txt. Pas de valeur dans "VAR".
Et dans mon code :

Action Script


MaVariable.adressemail = adressemail_txt.text;


et dans mon PHP

Action Script


$mail = $_POST['adressemail'];
$SQLQuery = "INSERT INTO newsletter (email) VALUES ('$mail') ";
$result = mysql_query($SQLQuery);


et je ne comprends pas pourquoi j'ai toujours undefined.


Après, tu peux avoir un problème ciblage, suivant où tu as mis tes codes.
Par exemple, si ton texte dynamique n'est pas au même niveau que ton code onrelease, quand tu fais

Action Script


MaVariable.adressemail = adressemail_txt.text;


il ne va pas trouver adressemail_txt et donc te renvoyer undefined.
Il faudrait, avant ton envoi de données, que tu fasses un trace (MaVariable.adressemail) pour voir si elle est convenablement récupérée.
iceman2001
Merci Monz, c'était exactement ça. Problème de ciblage. gourou.gif gourou.gif

Il fallait que je fasse :

Action Script


MaVariable.adressemail = _parent.adressemail_txt.text;


Un grand merci à toi.
Ceci est une version "bas débit" de notre forum. Pour voir la version complète avec plus d'informations, la mise en page et les images, veuillez cliquer ici.
Invision Power Board © 2001-2009 Invision Power Services, Inc.