salcamden Posté 4 Juin 2008 Posté 4 Juin 2008 Bonsoir, Mon sujet est à cheval entre flash et PHP. Dans une animation FLASH, je cherche à récupérer une liste d'images grâce à un loadVars. Le loadvars récupère les données au format URL généré par un Script PHP : nbimg=2&img1=pdt39.jpg&img2=pdt38.jpg Le problème est le suivant : - Lorsque je les mets en dur (directement dans le fichier PHP, en désactivant le script, ça fonctionne, toutes les données sont récupérées - Lorsque je les fait sortir par le script, ça ne marche plus. Voici le code // Inclusion du fichier de configurationinclude('admin/_includes/config_admin.inc.php');// Inclusion du fichier de connexion la base de donnesinclude('admin/_includes/bd_admin.inc.php');bd_connect();// initialisation des variables$str_image = "";$nb_image = 0;// Rcupration des donnes$sql = "SELECT `url_image` FROM `cr_image` WHERE `id_reference_image`='".$_GET['id_reference']."' ORDER BY `url_image` DESC; ";//echo $sql;$img = bd_query($sql);while($image=mysql_fetch_array($img)){ $nb_image ++; $str_image = $str_image."img".$nb_image."=".$image['url_image']."&";}$str_image = "?".$str_image."nbimg=".$nb_image;// généréprint($str_image."");// en dur//print("nbimg=2&img1=pdt39.jpg&img2=pdt38.jpg"); Merci d'avance.
iNCiTE Web Posté 5 Juin 2008 Posté 5 Juin 2008 Je sais pas si le script affiché est complet, mais en mode "généré" tu envoies un ? avant les variables, pas quand c'est en dur... Tu as comparé les 2 chaines de sortie ? Tu peux aussi coder les ampersand en & pour être sûr...
salcamden Posté 5 Juin 2008 Auteur Posté 5 Juin 2008 Salut, Merci pour ta réponse, Le ? est issu de mon dernier test. Sans, ça ne fonctionne pas mieux, J'ai bien comparé les deux sorties, elles sont rigoureusement identiques. Je teste avec les &
iNCiTE Web Posté 5 Juin 2008 Posté 5 Juin 2008 Quand tu dis "ça marche plus" tu entends quoi par là ? Je connais pas bien Flash, tu as la possibilité de tester les variables ? pour voir si elles sont initialisées
salcamden Posté 5 Juin 2008 Auteur Posté 5 Juin 2008 (modifié) Bon, Ben les & ne changent rien, Les url retournées sont rigoureusement les mêmes (j'ai fait un copier/coller de l'url générée dans le print() pour plus de sûreté) Toujours pareil : l'url générée ne fonctionne pas, celle affichée en dur si. J'ai esayé de virer le BOM, modifier l'encodage, faire un utf8_encode sur la chaine générée ($str_image). Rien. Je ne vois pas d'où cela peut venir. Pour tester dans le flash, oui, je peux récupérer les variables passées en URL (le format URL est juste un moyen de passer des paramètre à l'animation flash). Avec l'URL en dur, les paramètre sont bien récupérés dans l'animation, et les images sont affichées. Avec l'url générée, non, rien, les paramètres ne sont pas récupérés par flash et, par voie de conséquence, pas d'affichage des images. Modifié 5 Juin 2008 par salcamden
rdd Posté 5 Juin 2008 Posté 5 Juin 2008 Salut, Une petite piste, tu peux essayer de transmettre ton url avec la fonction urlencode de php ou rawurlencode et la recuperer dans ton flash avec urldecode ou rawurldecode. Autre chose egalement, dans ta boucle while (mysql_fetch_array), tu ecrase ta variable $str_image a chaque passage dans ta boucle et je pense que ce n'est pas ce que tu cherches a faire. Essaye en premier lieu de mettre plutot : while($image=mysql_fetch_array($img)){ $nb_image ++; $str_image .= $str_image."img".$nb_image."=".$image['url_image']."&";} Parce que avec le code que tu as colle, je doute que tes sorties soient identiques (a moins que tu les test dans le while). Voila, si cette solution ne marche pas test ensuite les urlencode. Bon courage.
salcamden Posté 5 Juin 2008 Auteur Posté 5 Juin 2008 Salut, Pour ce qui est de l'écrasement de la variable $str_image, je la concatène avant avec la nouvelle portion d'URL : $str_image = [b]$str_image.[/b]"img".$nb_image."=".$image['url_image']."&"; Le rawurlencode() ne fonctionne pas, pas plus que le urlencode() (que j'ai déjà essayé). J'ai également tenté de faire un echo au lieu du print. j'ai tenter de mettre l'output en buffer et de le flusher (avec ob_start() et ob_flush()), mais rien n'y fait.
salcamden Posté 5 Juin 2008 Auteur Posté 5 Juin 2008 Bon, Je reviens pour fermer le post. J'ai recodé la partie Flash, puisque ça semblait venir de là : Les paramètres passés en GET depuis mon anim sont désormais passé à l'aide d'un sendAndLoad() en GET. Ça marche. Merci à tous ! Bonne fin de journée.
rdd Posté 5 Juin 2008 Posté 5 Juin 2008 OK, Est ce que l'ordre de tes variables influe sur ton flash ? Sinon tu peux essayer ca : // Inclusion du fichier de configurationinclude('admin/_includes/config_admin.inc.php');// Inclusion du fichier de connexion la base de donnesinclude('admin/_includes/bd_admin.inc.php');bd_connect();// initialisation des variables$str_image = "";$nb_image = 0;// Rcupration des donnes$sql = "SELECT `url_image` FROM `cr_image` WHERE `id_reference_image`='".$_GET['id_reference']."' ORDER BY `url_image` DESC; ";//echo $sql;$img = bd_query($sql);for ($nb_image = 0, $buff=""; $image=mysql_fetch_array($img);$nb_image++){ $buff .= "&img".$nb_image+1."=".$image['url_image'];}$str_image = "nbimg=".$nb_image.$buff;// généréprint($str_image);// en dur//print("nbimg=2&img1=pdt39.jpg&img2=pdt38.jpg"); Je ne suis pas expert en flash, c'est pour ca que je porpose ca a tout hasard.
salcamden Posté 10 Juin 2008 Auteur Posté 10 Juin 2008 Bonjour, Non, l'ordre n'y est pour rien (j'ai déjà testé). J'ai refondu le code FLASH, et ça fonctionne, le problème ne venait donc pas du PHP. Désolé pour le dérangement. Bonne soirée.
Sujets conseillés
Veuillez vous connecter pour commenter
Vous pourrez laisser un commentaire après vous êtes connecté.
Connectez-vous maintenant