Forums Développement Multimédia

Aller au contenu

Exporter des données via une application

exportation android air texte

22 réponses à ce sujet

#1 cortoh

    Ceinture Noire

  • Members
  • PipPipPipPipPipPipPip
  • 485 messages

Posté 17 December 2018 - 19:02 PM

Bonjour,
Pour le projet d'une application Android sur tablette actuellement à l'étape de papier, je souhaiterais avoir des infos concernant l'exportation de données, je m'explique, l'utilisateur remplira des infos dans une ou plusieurs saisies textes, je souhaiterais que l'utilisateur puisse récupérer ses données dans un fichier texte contenu dans la tablette ou autre solution, ou bien les envoyer pourquoi pas dans un fichier sur internet ou éventuellement par mail.
Toutes les infos et possibilités sur le sujet sont les bienvenues.
Merci.

#2 pol2095

  • Members
  • PipPipPipPipPipPipPipPip
  • 1797 messages

Posté 17 December 2018 - 22:56 PM

Il est possible d'enregistrer un fichier avec la classe File sur la tablette, ou envoyer des données avec URLLoader et la méthode POST vers PHP par exemple (puis avec PHP, tu peux créer un fichier texte sur le serveur, email)

#3 cortoh

    Ceinture Noire

  • Members
  • PipPipPipPipPipPipPip
  • 485 messages

Posté 18 December 2018 - 19:03 PM

Salut pol2095,
Merci pour les infos mais à moins de trouver un bon exemple concret ce que je n'es pas encore trouvé, ça reste complex, bien que la méthode du php me paraissait pas mal et la mieux adaptée à mon projet, je vais toutefois continuer à plancher dessus.

#4 pol2095

  • Members
  • PipPipPipPipPipPipPipPip
  • 1797 messages

Posté 18 December 2018 - 20:34 PM

regarde ce tuto http://as3adventure....lash-using.html

#5 cortoh

    Ceinture Noire

  • Members
  • PipPipPipPipPipPipPip
  • 485 messages

Posté 19 December 2018 - 07:09 AM

Bonjour pol2095,
Dans le tuto il précise " le fichier SWF et PHP doivent être hébergés sur un serveur Web doté de fonctionnalités PHP" mais dans mon cas il s'agit d'une application Air pour smartphone, ça reste toujours possible ?

#6 pol2095

  • Members
  • PipPipPipPipPipPipPipPip
  • 1797 messages

Posté 19 December 2018 - 08:43 AM

Le fichier php doit être sur un serveur Web doté de fonctionnalités PHP, c'est le principe.
En utilisant Air, le swf est en local sur ta tablette (c'est le fichier principal d'une application Air).

#7 cortoh

    Ceinture Noire

  • Members
  • PipPipPipPipPipPipPip
  • 485 messages

Posté 19 December 2018 - 22:26 PM

j'ai publié mon appli Air sur mon smartphone avec ce script:

var enveloppe:URLLoader = new URLLoader;
var variablesLocales:URLVariables = new URLVariables();
var adresseMail:URLRequest = new URLRequest("http://monsite.free.fr/MailAir.php");

   btEnvoyer.buttonMode = true;
   btEnvoyer.addEventListener(MouseEvent.MOUSE_DOWN,envoyerMail);
   function envoyerMail(evt:MouseEvent) {
           variablesLocales.nom = nomExpediteur.text.toUpperCase();
           variablesLocales.prenom = prenomExpediteur.text;
           variablesLocales.adressemail = adressemailExpediteur.text;
           variablesLocales.messagemail = messageExpediteur.text;
 
           adresseMail.data = variablesLocales;
           enveloppe.load(adresseMail);
   
           messageExpediteur.text = "Message envoyé"
   }
 

et j'ai crée un php que j'ai mis dans mon ftp avec ce code:

<?php
   mail(" \n monmail@free.fr ", "Mail de mon Smartphone", $messagemail, "From:$prenom  $nom  ($adressemail)");
   ?>
 

Mais je ne reçois aucun mail, tu à une idée ?

#8 pol2095

  • Members
  • PipPipPipPipPipPipPipPip
  • 1797 messages

Posté 20 December 2018 - 06:46 AM

J'ai testé ce code, il fonctionne chez OVH (chez Free ?)

var enveloppe:URLLoader = new URLLoader;
var variablesLocales:URLVariables = new URLVariables();
var adresseMail:URLRequest = new URLRequest("http://monsite.free.fr/MailAir.php");
variablesLocales.nom = nomExpediteur.text.toUpperCase();
variablesLocales.prenom = prenomExpediteur.text;
variablesLocales.adressemail = adressemailExpediteur.text;
variablesLocales.messagemail = messageExpediteur.text;

adresseMail.data = variablesLocales;
adresseMail.method = URLRequestMethod.POST;
enveloppe.addEventListener(IOErrorEvent.IO_ERROR, ioErrorHandler);
enveloppe.addEventListener(Event.COMPLETE, completeHandler );
enveloppe.load(adresseMail);

function ioErrorHandler(event:IOErrorEvent):void
{
        event.target.removeEventListener(IOErrorEvent.IO_ERROR, ioErrorHandler);
        event.target.removeEventListener(Event.COMPLETE, completeHandler );
        trace("ioErrorHandler: " + event);
        response.text = "pas de connection !";
}

function completeHandler( event:Event ) : void
{
        event.target.removeEventListener(IOErrorEvent.IO_ERROR, ioErrorHandler);
        event.target.removeEventListener(Event.COMPLETE, completeHandler );
        response.text = (event.target as URLLoader).data.toString();
}

<?php
if( ! isset($_POST["prenom"]) || ! isset($_POST["nom"]) || ! isset($_POST["adressemail"]) || ! isset($_POST["messagemail"]) )
{
        echo "error";
        exit;
}
$success = mail("monmail@free.fr", "Mail de mon Smartphone", $messagemail, "From:$prenom  $nom  <$adressemail>");
if($success)
{
        echo "success";
}
else
{
        echo "not success";
}
?>


#9 cortoh

    Ceinture Noire

  • Members
  • PipPipPipPipPipPipPip
  • 485 messages

Posté 20 December 2018 - 19:19 PM

Salut pol2095,
J'ai fait 1 millions d'essais et aucun message n'arrive dans ma boite mail, je pense avoir tout réalisé et vérifié correctement, je ne comprend pas ou ça cloche, surtout que tu me dit que ça fonctrionne pour toi.

#10 pol2095

  • Members
  • PipPipPipPipPipPipPipPip
  • 1797 messages

Posté 20 December 2018 - 20:16 PM

essaie directement dans le navigateur d'accéder à la page PHP

<?php
$prenom = "prenom";
$nom = "nom";
$adressemail = "adressemail@free.fr";
$messagemail = "messagemail";
$success = mail("monmail@free.fr", "Mail de mon Smartphone", $messagemail, "From:$prenom  $nom  <$adressemail>");
if($success)
{
                echo "success";
}
else
{
                echo "not success";
}
?>

est-ce que tu reçois l'email ?

#11 cortoh

    Ceinture Noire

  • Members
  • PipPipPipPipPipPipPip
  • 485 messages

Posté 20 December 2018 - 20:34 PM

La page PHP indique success mais je ne reçoit pas de mail

#12 pol2095

  • Members
  • PipPipPipPipPipPipPipPip
  • 1797 messages

Posté 20 December 2018 - 20:36 PM

Tu es chez Free ?

#13 cortoh

    Ceinture Noire

  • Members
  • PipPipPipPipPipPipPip
  • 485 messages

Posté 20 December 2018 - 20:39 PM

oui, absoluement

#14 pol2095

  • Members
  • PipPipPipPipPipPipPipPip
  • 1797 messages

Posté 20 December 2018 - 20:58 PM

Ils ont désactivé la fonction mail() de php.

#15 cortoh

    Ceinture Noire

  • Members
  • PipPipPipPipPipPipPip
  • 485 messages

Posté 20 December 2018 - 21:08 PM

Certainement, je vais me renseigner, deplus j'ai vérifié un de mes site j'ai un système de mail similaire et effectivement il ne me renvoi pus de mail.
Merci d'être là pol2095 c'est très appréciable.

#16 cortoh

    Ceinture Noire

  • Members
  • PipPipPipPipPipPipPip
  • 485 messages

Posté 20 December 2018 - 21:43 PM

Alors sur mon compte Free c'est une vrai usine à gaz, j'ai la possibilité de désactiver le blocage du protocole SMTP sortant mais ça na rien donnée, après je ne vois pas ?!

#17 cortoh

    Ceinture Noire

  • Members
  • PipPipPipPipPipPipPip
  • 485 messages

Posté 22 December 2018 - 18:29 PM

Bonjour,
Le problème venait de mon logiciel de messagerie Thunderbird, j'utilise désormais une messageire en ligne où je reçois bien les mails maintenant, cela dit ils sont vides, les données entrées dans les textes de saisi n'apparaisent pas ??? j'ai mème testé avec d'autre code source les mails arrivent bien mais il n'y aucun message qui apparait, si vous avez une idée du problème ?

AS3

import flash.net.URLRequest;
import flash.net.URLLoader;
import flash.net.URLVariables;
import flash.events.MouseEvent;
function envoyer(e:MouseEvent):void
{
//Création des variables à passer dans l'URL
var vars:URLVariables = new URLVariables();
vars.nom = data_nom.text;
vars.prenom = data_prenom.text;
vars.email = data_email.text;
vars.sujet = data_sujet.text;
vars.txt_message = data_message.text;
//Fichier PHP qui va envoyer l'email
var url:URLRequest = new URLRequest("envoi.php"); //URL du fichier PHP
url.method = URLRequestMethod.POST; //Définit la méthode d'envoi des variables dans l'URL (POST ou GET)
url.data = vars; //On intégre les variables dans l'URL (en POST)
navigateToURL(url,"_self"); //Envoi des données du formulaire au fichier envoi.php
}
btn_envoyer.addEventListener(MouseEvent.CLICK, envoyer);
 

PHP

<?php
//Récupération des données envoyé par Flash (en POST)
$nom = $_POST["nom"];
$prenom = $_POST["prenom"];
$email = $_POST["email"];
$subject = $_POST["sujet"];
$texte = $_POST["txt_message"];
//Destinataire du mail
$destinataire = "votre_email@fai.fr";
//Entête du mail
$headers = "MIME-Version: 1.0\n";
$headers .= "From: \"".$nom." ".$prenom."\" <".$email.">\n";
$headers .= "X-Sender: <".$email.">\n";
$headers .= "X-Mailer: ".phpversion()."\n";
$headers .= "Content-type: text/html; charset=utf-8 \n";
$headers .= "\n";
//Création du message
$message = "<b>Auteur :</b> ".$nom." ".$prenom."<br>";
$message .= "<b>Email :</b> ".$email."<br>";
$message .= "<b>Objet :</b> ".$subject."<br>";
$message .= "<br>";
$message .= "<b>Message :</b> <br>";
$message .= $texte;
//Envoi
mail($destinataire,$subject,$message,$headers,"-f".$email);
?>
 


#18 cortoh

    Ceinture Noire

  • Members
  • PipPipPipPipPipPipPip
  • 485 messages

Posté 23 December 2018 - 19:47 PM

Bonjour,
je me suis encore pris la tête tout le week-end à tenter de faire fonctionner cet envoi de mail par php, j'ai fait une tonne d'essais rien ne fonctionne, de mon smartphone je saisis les infos dans les saisies texte puis je les envois, ensuite je reçois bien les mails mais sans aucun renseignements à l'intérieur, je suis sur le point d'abandonner je trouve pas le problème, si quelqu'un à le courage et le temps de me présenter une source (testée) la plus simple possible, une simple saisie texte à remplir puis à expédier, ça serait sympa, là je n'en peux plus, merci d'avance.

#19 pol2095

  • Members
  • PipPipPipPipPipPipPipPip
  • 1797 messages

Posté 24 December 2018 - 00:17 AM

Le problème ne vient du code, mais de ton hébergeur qui gère mal la fonction mail() de php.
Prend un mutualisé chez OVH par exemple, et tu verras que ça marche.
J'utilise Outlook et mes mails apparaissent entièrement.

#20 cortoh

    Ceinture Noire

  • Members
  • PipPipPipPipPipPipPip
  • 485 messages

Posté 24 December 2018 - 09:17 AM

Oui effectivement c'est ce que je vais faire, Free c'est vraiment catastrophique, je les es appelé hier et mon interlocuteur ma demandé "c'est quoi du PHP ? voilà quoi ! , j'ai testé mon fichier PHP sur un autre serveur et ça fonctionne, galérer autand à cause d'un FAI ça me bouffe

#21 cortoh

    Ceinture Noire

  • Members
  • PipPipPipPipPipPipPip
  • 485 messages

Posté 24 December 2018 - 11:33 AM

Salut pol2095,
Précédement tu as dans ton script:

function ioErrorHandler(event:IOErrorEvent):void
{
            event.target.removeEventListener(IOErrorEvent.IO_ERROR, ioErrorHandler);
            event.target.removeEventListener(Event.COMPLETE, completeHandler );
            trace("ioErrorHandler: " + event);
            response.text = "pas de connection !";
}
 

La réponse en cas d'erreur est "noter pas de connection !" en faite il s'agit plus d'une "Erreur d’ouverture de l’URL" donc pour que l'utilisateur soit informé de façon précise comment faire dans ce cas la différence entre une URL non trouvée ou une réelle absence de connection ?

#22 pol2095

  • Members
  • PipPipPipPipPipPipPipPip
  • 1797 messages

Posté 24 December 2018 - 13:34 PM

Si tu veux

var status:int;
var enveloppe:URLLoader = new URLLoader;
var variablesLocales:URLVariables = new URLVariables();
var adresseMail:URLRequest = new URLRequest("http://monsite.free.fr/MailAir.php");
variablesLocales.nom = nomExpediteur.text.toUpperCase();
variablesLocales.prenom = prenomExpediteur.text;
variablesLocales.adressemail = adressemailExpediteur.text;
variablesLocales.messagemail = messageExpediteur.text;

adresseMail.data = variablesLocales;
adresseMail.method = URLRequestMethod.POST;
enveloppe.addEventListener(IOErrorEvent.IO_ERROR, ioErrorHandler);
enveloppe.addEventListener(HTTPStatusEvent.HTTP_STATUS, httpStatusHandler);
enveloppe.addEventListener(Event.COMPLETE, completeHandler );
enveloppe.load(adresseMail);

function ioErrorHandler(event:IOErrorEvent):void
{
        event.target.removeEventListener(IOErrorEvent.IO_ERROR, ioErrorHandler);
        event.target.removeEventListener(HTTPStatusEvent.HTTP_STATUS, httpStatusHandler);  
        event.target.removeEventListener(Event.COMPLETE, completeHandler );
        trace("ioErrorHandler: " + event);
        if( status == 404 )
        {
                response.text = "La page n'existe pas";
        }
        else
        {
                response.text = "pas de connection !";
        }
}

function httpStatusHandler(event:HTTPStatusEvent):void
{
        status = event.status;
}

function completeHandler( event:Event ) : void
{
        event.target.removeEventListener(IOErrorEvent.IO_ERROR, ioErrorHandler);
        event.target.removeEventListener(HTTPStatusEvent.HTTP_STATUS, httpStatusHandler);  
        event.target.removeEventListener(Event.COMPLETE, completeHandler );
        response.text = (event.target as URLLoader).data.toString();
}


#23 cortoh

    Ceinture Noire

  • Members
  • PipPipPipPipPipPipPip
  • 485 messages

Posté 24 December 2018 - 16:25 PM

Salut pol2095,
Tu as tout à fait raison mais pas dans le cas présent, je t'explique, dans mon projet l'utilisateur pourra préalablement entrer et enregistrer sa propre URL d'ou l'importance de lui signaler lors de ses envois qu'il s'agit alors d'une erreur dans son URL ou d'une absence de connection.



2 utilisateur(s) li(sen)t ce sujet

0 membre(s), 2 invité(s), 0 utilisateur(s) anonyme(s)

authorised training centre

Centre de Formation Mediabox - Adobe et Apple Authorised Training Center.

Déclaré auprès de la Direction du Travail et de la Formation Professionnelle

Mediabox : SARL au capital de 62.000€ - Numéro d'activité : 11 75 44555 75 - SIRET : 49371646800035

MEDIABOX, 23, rue de Bruxelles, 75009 PARIS

FFP