2010-10-25 19 views
1

J'ai un système de téléchargement basé sur SWFUpload qui appelle le script PHP. Le problème est qu'en cas de problème avec le fichier téléchargé (dimmensions d'image trop petites, fichier mp3 trop court etc) le système est censé lancer une erreur, en mettant le cookie avec un message d'erreur (c'est ainsi que tout le CMS gère les erreurs). Le problème est que le cookie défini par le script qui est appelé par SWFUpload ne semble pas être visible dans le navigateur ...PHP + SWFUpload - problème d'ensemble de cookies

Y at-il une solution pour cela, ou dois-je passer les messages d'erreur dans la base de données?

+0

Vérifiez et voyez si vous pouvez voir la demande de téléchargement dans firebug – rojoca

Répondre

0

Chaque fois que quelqu'un rencontre des problèmes avec le flash et les cookies, je pense immédiatement à this long running flash bug. Vous devriez pouvoir vérifier s'il s'agit de celui-ci en imprimant l'identifiant de session côté serveur (lorsque vous recevez la demande de téléchargement) et en le comparant avec l'identifiant de session dans le navigateur (en utilisant firebug ou équivalent). Si c'est différent, je pense qu'il est prudent de dire que c'est la faute de ce bug. La manière habituelle de contourner le problème est d'ajouter une variable GET avec la session à l'url de téléchargement, puis de la prendre et de la définir manuellement comme étant la session côté serveur.

Here's un autre SO thread sur ce problème qui a une bonne réponse (malheureusement pas spécifique à php, mais pourrait vous donner une bonne idée).

En outre, j'ai vu une bonne quantité de solutions php sur google (flash + upload + cookie), mais je n'ai pas résolu ce problème en php spécifiquement, donc je ne peux pas recommander une source sur une autre.

Si vous en avez le temps, inscrivez-vous à l'outil de suivi des bogues d'adobe pour éliminer le bogue afin que nous sachions très clairement que cela affecte beaucoup de gens.

Espérons que ce soit assez de détails pour vous permettre de bien démarrer.