Plantage PHPMyAdmin par AS3

leroidelesprit Messages postés 2 Date d'inscription mercredi 14 mars 2007 Statut Membre Dernière intervention 18 mars 2009 - 18 mars 2009 à 13:40
faiblard Messages postés 337 Date d'inscription samedi 3 février 2007 Statut Membre Dernière intervention 4 janvier 2011 - 18 mars 2009 à 17:28
Bonjour,

J'ai quelques soucis persistants avec une interaction que j'essaie d'implanter dans une page html:
Il s'agit d'un site de généalogie...
Mon idée c'est d'avoir une saisie html d'un prénom qui déclenche sur l'événement onKeyUp un ajax qui remplit
dynamiquement une div, ensuite on clique sur le lien dans la div et l'id passe à un swf qui va lui même appeler par une
requête en post une page PHP qui renvoie les infos sur la personne, son époux(se), ses enfants --> et ensuite je gérerai
l'affichage dans des planes bien jolis jolis. Jusqu'ici pas de pb:
- ma BDD locale est implantée
- mon ajax marche
- je réussis à passer l'id par externalinterface
- ma requête PHP est éxécutée et affichée;
MAIS... car il y a un mais,
même lorsque je passe l'id dans le flash seul mon navigateur (firefox) affiche en bas:
"Transfert des données depuis localhost..." et on voit qu'il continue à ramer alors que depuis belle lurette
il m'a affiché les données au sein d'une fonction déclenchée par l'écoute de l'événement COMPLETE, donc
le chargement est terminé!
Mais là où ça devient lourd, c'est qu'après tout le reste se met à merder, comme si Apache était bloqué, même
mon Ajax dans une page à part échoue.
Donc je me doute qu'à un moment donné il faut fermer la connexion, mais où et comment? J'ai essayé douze mille
solutions et je tourne en rond donc je sollicite vos lumières .
Toute proposition est la bienvenue. Pour tester j'ai mis des textfields.
Voici le source de mon flash tout seul avec une valeur d'id interne pour test:
(amélioré depuis le tuto de thibault Imbert)

import flash.external.ExternalInterface;
import flash.net.URLVariables;
import flash.net.URLRequestMethod;
import flash.net.URLLoader;
import flash.events.Event;

var monChampTexte:TextField = new TextField(); monChampTexte.text "nom";
monChampTexte.width = 450;
addChild ( monChampTexte );

var infos:Object = loaderInfo.parameters;
btnjava.addEventListener ( MouseEvent.CLICK, envoiidentifiant );
function envoiidentifiant ( pEvt:MouseEvent ):void
{
var variables:URLVariables = new URLVariables();
var echanges:URLLoader;
echanges = new URLLoader();
echanges.addEventListener ( Event.COMPLETE, retourServeur );
function retourServeur ( pEvt:Event ):void
{
monChampTexte.text =  pEvt.target.data;
//et désactiver l'écoute!!!!!!!!
echanges.close();
echanges.removeEventListener( Event.COMPLETE, retourServeur );
}
// affectation des variables à envoyer coté serveur
variables.id_personne = "1";
var requete:URLRequest = new URLRequest ("http://localhost/actionscript/passer_donnees/test.php");
requete.method = URLRequestMethod.POST;
// nous associons les variables à l'objet URLRequest
requete.data = variables;
echanges.load ( requete );

}

D'avance merci!

3 réponses

faiblard Messages postés 337 Date d'inscription samedi 3 février 2007 Statut Membre Dernière intervention 4 janvier 2011
18 mars 2009 à 16:24
Bonjour,

J'ai pas tous regardé...

Mais théoriquement ton AS ne peut pas planter ton serveur php...

Si ça plante et que cela ne fini pas de charger c'est probablement que tu n'envoie pas la bonne chose et que tu ne test pas assez t'es variable reçu dans le php... Si tu tente de loader une page php avec juste :

<?php
?>

Ca plante? Je dirais non et que ton traitement php ne test pas les variables recus...
0
leroidelesprit Messages postés 2 Date d'inscription mercredi 14 mars 2007 Statut Membre Dernière intervention 18 mars 2009
18 mars 2009 à 17:17
Non désolé mon PHP est correct je pense.
D'une part lorsque je le teste par exemple en get (alors que là il est en post)
tout baigne, d'autre part j'ai essayé ce que tu dis j'ai vidé le php et j'obtiens quand même sur mon
clic bouton le message "En attente de localhost";
Par ailleurs je pense que c'est ptètre lié au close qui est mal placé parce que si je mets le close()
juste après le load ça n'affiche pas ça bien sûr.
A tout hasard voici mon php ci-après mais encore une fois les données se chargent dans le flash!
Donc le problème vient d'ailleurs, ce serait sympa que qqn me dépanne parce que j'avoue que j'ai trituré tout ça dans tous les sens et je ne vois pas.

<?php
if (isset($_POST['id_personne']))
{
$id = $_POST['id_personne'];
}

function remetdateenfrancais($madate)
{
$jour = substr($madate, 8, 2);
$mois = substr($madate, 5, 2);
$annee = substr($madate, 0, 4);
$datefr = $jour."-".$mois."-".$annee;
return $datefr;
}

if (isset ($id))
{
     $link = mysql_connect("localhost","root","");//connexion LOCAL
     mysql_select_db("girondin",$link);

//récupérer le nom, le prénom et la date de naissance de la personne:$sql " SELECT * FROM `personnes` WHERE id_personne '".$id."'";
$res = mysql_query($sql) or die('Erreur SQL !
'.$sql.'
'.mysql_error());
            while($row = mysql_fetch_array($res))
            {
if ( strlen($row['date_naiss']) >=10 )
        {                                   
$date_naiss = remetdateenfrancais($row['date_naiss']);
        }
else
        {
$date_naiss = $row['date_naiss'];
        }
$lesdonneesfamille = $row['id_personne'].";".$row['nom_personne'].";".$row['prenom_personne'].";".$date_naiss;   
        }                       

echo $lesdonneesfamille;
}
else
{
echo "rien";
}

?>
0
faiblard Messages postés 337 Date d'inscription samedi 3 février 2007 Statut Membre Dernière intervention 4 janvier 2011
18 mars 2009 à 17:28
Gère déjà tout les événements plutôt que juste le complète

Comme ça tu sera s'il bloque et ou :)

http://livedocs.adobe.com/flash/9.0_fr/ActionScriptLangRefV3/flash/net/URLLoader.html

Je regarde ça plus en profondeur ce soir
0
Rejoignez-nous