Envoi de variables depuis un formulaire flash vers une data base

gesign Messages postés 11 Date d'inscription vendredi 18 janvier 2008 Statut Membre Dernière intervention 29 avril 2009 - 22 janv. 2008 à 18:39
gesign Messages postés 11 Date d'inscription vendredi 18 janvier 2008 Statut Membre Dernière intervention 29 avril 2009 - 23 janv. 2008 à 14:22
Voilà je suis débutant en action script et je suis à la recherche d'un pti coup de main.
Je réalise un formulaire en flash ou l'internaute peut inscrire son adresse e-mail et j'aimerai que celle-ci s'inscrive automatiquement dans ma base de donnée. PROBLEME: ca ne marche pas et je comprend pas pourquoi!!!!

Pour ce faire j'ai créé un TextInput qui a comme occurence "email" et un bouton envoyer sur lequel j'ai placé le code A.S. suivant:

code Action script de mon bouton:

on (release) {

var myVars:LoadVars = new LoadVars();
myVars.email = email.TextInput;
var receivedVars:LoadVars = new LoadVars();

receivedVars.onLoad = function(ok:Boolean):Void {
trace("une réponse du serveur est arrivée."); }
myVars.sendAndLoad("traitement.php", receivedVars, "POST");

}

Code de mon fichier "traitement.php"

<?php
        // On commence par récupérer les champs
            $email=$_POST['email'];
                   
         // connexion à la base
            $db = mysql_connect('localhost','root','')  or die('Erreur de connexion');
         // sélection de la base 
                                   
            $base=mysql_select_db('members',$db)  or die('Erreur de selection');
                                       
        // on écrit la requête sql
            $sql = "INSERT INTO fiches(email) VALUES('','$email')";
                                                                                   
            mysql_close();
    ?>            
---------------------------------------------------------------------------------------------

Pour info, j'utilise un serveur qui tourne en local.

Voilà rien ne s'inscrit dans ma base de donnée!!   

Si quelqu'un peut m'aider!
 
      

13 réponses

stefbuet Messages postés 576 Date d'inscription mercredi 5 janvier 2005 Statut Membre Dernière intervention 12 mai 2009
22 janv. 2008 à 19:25
Salut, n'as tu pas oublié de mettre cette ligne dans ton fichier php ?

mysql_query($sql);
0
gesign Messages postés 11 Date d'inscription vendredi 18 janvier 2008 Statut Membre Dernière intervention 29 avril 2009
23 janv. 2008 à 10:02
Je viens de rajouter cette ligne que j'avais effectivement oublié dans mon php, mais ca ne fonctionne toujours pas.
0
gesign Messages postés 11 Date d'inscription vendredi 18 janvier 2008 Statut Membre Dernière intervention 29 avril 2009
23 janv. 2008 à 12:19
Voilà j'ai fait quelques modifs
Maintenant, mon fichier php transmet bien la requete à la base de donnée mais au lien d'inscrire la variable
(ex: nom@machin.com) il m'indique UNDEFINED dans ma table.

code php:

<?php
        // On commence par récupérer les champs
            $email = $_POST['email'];
               
         // connexion à la base
            $connexion = mysql_connect('localhost','root','') or die('Erreur de connexion');
         // sélection de la base 
                                   
            $base = mysql_select_db('members',$connexion) or die('Erreur de selection');
                                       
        // on écrit la requête sql
            $sql = "INSERT INTO fiches( id, email ) VALUES('', '$email')";
            $req = mysql_query($sql) or die('Exécution de la requête impossible.');
                                   
            mysql_close($connexion);  // on ferme la connexion
    ?>                           


Pourquoi?

Quelqu'un a une idée?
0
stefbuet Messages postés 576 Date d'inscription mercredi 5 janvier 2005 Statut Membre Dernière intervention 12 mai 2009
23 janv. 2008 à 12:57
Si sa t'écris undefined, c'est que la variable POST email est undefined.
Ton php semble OK.
Ton email.TextInput, c'est une textInput non ?
Donc se devrais plutot être :
email.TextInput.text

@++
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
gesign Messages postés 11 Date d'inscription vendredi 18 janvier 2008 Statut Membre Dernière intervention 29 avril 2009
23 janv. 2008 à 13:23
Oui c'est un TextInput que j'ai pris dans les composant flash

J'ai mis "email.TextInput.text" comme tu as dit mais ca ne change pas, j'ai toujours undefined.

je te montre le code action script comme ca tu vois plus clair.

on (release) {

var myVars:LoadVars = new LoadVars();
myVars.email = email.TextInput.text;
var receivedVars:LoadVars = new LoadVars();

receivedVars.onLoad = function(ok:Boolean):Void {
trace("une réponse du serveur est arrivée."); }
myVars.sendAndLoad("traitement.php", receivedVars, "POST");

}

tu vois le problème?
0
stefbuet Messages postés 576 Date d'inscription mercredi 5 janvier 2005 Statut Membre Dernière intervention 12 mai 2009
23 janv. 2008 à 13:32
Ou as tu mis ce code ? Sur un bouton ? C'est très moche de faire sa...
Met ton code dans la frame principale :

stop();

var envoyer:LoadVar=new LoadVars();
var receveur:LoadVars=new LoadVars();

TonBouton.onRelease=function():Void {
envoyer.email=email.TextInput.text;
envoyer.sendAndLoad("traitement.php", receveur, "POST");
}

receveur.onData=function(sucess:Boolean):Void {
trace("reponse reçut depuis le serveur.");
}

@++
0
gesign Messages postés 11 Date d'inscription vendredi 18 janvier 2008 Statut Membre Dernière intervention 29 avril 2009
23 janv. 2008 à 13:44
Voilà c fait, je sais que mettre le code sur un bouton c moche mais c  plus facile a capter qd on commence.

J'ai donc remis mon code dans la première image-clé comme ceci

stop();

var envoyer:LoadVars= new LoadVars();
var receveur:LoadVars=new LoadVars();

button .onRelease =function():Void {
envoyer.email=email.TextInput.text;
envoyer.sendAndLoad("traitement.php", receveur, "POST");
}

receveur.onData=function(sucess:Boolean):Void {
trace("reponse reçut depuis le serveur.");
}

Mais j'ai toujours undefined.
0
stefbuet Messages postés 576 Date d'inscription mercredi 5 janvier 2005 Statut Membre Dernière intervention 12 mai 2009
23 janv. 2008 à 13:54
envoyer.email=email.TextInput.text;
remplacé par :
envoyer.email=_root.email.TextInput.text;
0
gesign Messages postés 11 Date d'inscription vendredi 18 janvier 2008 Statut Membre Dernière intervention 29 avril 2009
23 janv. 2008 à 13:59
Non, ca ne marche pas non plus
merci qd même pour ta persévérence
0
stefbuet Messages postés 576 Date d'inscription mercredi 5 janvier 2005 Statut Membre Dernière intervention 12 mai 2009
23 janv. 2008 à 14:01
donne moi le schema de ton champ de saisi flash stp :
il y a un clip nomé "mail", dedant une champ de texte nomé "TextInput" ??
0
gesign Messages postés 11 Date d'inscription vendredi 18 janvier 2008 Statut Membre Dernière intervention 29 avril 2009
23 janv. 2008 à 14:08
C'est un TextInput que j'ai choisit dans les composants que j'ai placé sur la première image clé
Il n'est pas dans un clip, il est directement posé sur la scène.

Instance of : TextInput
Instance Name: email
0
stefbuet Messages postés 576 Date d'inscription mercredi 5 janvier 2005 Statut Membre Dernière intervention 12 mai 2009
23 janv. 2008 à 14:11
La ligne est donc :



envoyer.email=email.text;
0
gesign Messages postés 11 Date d'inscription vendredi 18 janvier 2008 Statut Membre Dernière intervention 29 avril 2009
23 janv. 2008 à 14:22
Super ca marche!!!
Merci beaucoup pour ton aide
 a+
0
Rejoignez-nous