Reprendre la main après un appel avec window.open

Petit nouveau ! | 2 Messages

15 oct. 2010, 10:14

Bonjour;

je vais essayer d'expliquer mon problème.

J'ai 2 portails, hébergés sur des serveurs différents, dont l'un est la copie de secours de l'autre, éventuellement appelée par une redirection transparente pour le visiteur. Ces visiteurs sont des personnes peu familiarisées avec l'informatique qui s'étonnent de ne plus être identifiées en cas de changement,ne se souviennent plus comment faire, ont oublié leurs mdp, enfin c'est la galère.

Mon idée est donc de "dupliquer" le cookie d'identification,c'est-à-dire de créer 2 cookies lors de l'identification.

Pour se faire, sur le site B, j'ai créé une page php qui crée le cookie souhaité.

Sur le site A, en fin de procédure d'identification, j'ouvre dans une autre fenêtre (window.open) la page du site B créant le cookie (cette page se ferme automatiquement après 2 secondes).

Au niveau du résultat, j'ai bien ce que je souhaite : création de 2 cookies "utilisateurs" un pour le site A et un pour le site B.

Mon problème est que le script du site A ne continue pas de s'exécuter après l'appel par window.open.

Comment faire?

Merci d'avance pour votre aide

Bien cordialement.

Philippe

ViPHP
xTG
ViPHP | 7331 Messages

15 oct. 2010, 12:03

Le soucis vient du code alors, car le navigateur ne va pas attendre que la fenêtre se ferme pour exécuter la suite du code.
Dès que l'instruction window.open a été exécutée il continue.

Petit nouveau ! | 2 Messages

15 oct. 2010, 15:17

Merci de ton aide. C'est bien ce qu'il me semblait.

Pourtant, ce code est utilisé depuis des lustres puisque c'est celui d'un CMS (npds pour ne pas le nommer)

tu me confirmes donc bien qu'après avoir exécuté le window.open, le script doit bien continuer son travail. Est-ce que le fait que ce code soit dans une fonction a une influence? (la fonction n'a pas de valeur de retour)

Grossièrement résumé, voici le code

Code : Tout sélectionner

function docookie($mes_parametres) { setcookie(avec les bons parametres); echo"<script>window.open('http://mon_second_site/ma_page_docookie.php?param=$mes_parametres','secours','menubar=no, status=no, scrollbars=no, menubar=no, width=50, height=50');</script>"; echo"<script>alert('ok')</script>"; // marqueur pour tester }

Ainsi, je crée bien un second cookie et le marqueur test m'ouvre bien un message OK, mais ca s'arrête là. Si je ne laisse que le marqueur ... idem et si je commente les 2 "echo", le site fonctionne correctement.

Où est mon erreur?????? Je pourrais essayer en mettant le window.open APRES l'appel de la fonction (et non pas DANS la fonction), mais comme cette dernière est utilisée à plusieurs endroits, c'est un peu galère.
:?: