IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

AJAX Discussion :

Modification de cookies dans PHP avec AJAX


Sujet :

AJAX

  1. #1
    Membre régulier
    Homme Profil pro
    Fabricant de ressorts - programmeur amateur
    Inscrit en
    Janvier 2003
    Messages
    70
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine et Marne (Île de France)

    Informations professionnelles :
    Activité : Fabricant de ressorts - programmeur amateur
    Secteur : Industrie

    Informations forums :
    Inscription : Janvier 2003
    Messages : 70
    Points : 79
    Points
    79
    Par défaut Modification de cookies dans PHP avec AJAX
    Bonjour,

    Je m'explique.

    Je suis en train d'écrire un programme de gestion en HTML/Javascript/AJAX/PHP et Mysql.
    Actuellement en cours de rédaction de certificats de conformité à la commande (merci à fpdf), je bute sur un sujet simple (d'apparence)

    Lorsque que je demande l'ouverture d'une nouvelle fenetre pour la création du dit certificat, je lance une routine PHP.
    Juste avant, j'ai lancé une routine AJAX d'attente

    Je m'étais dit que d'utiliser les cookies étaient une bonne idée plutôt que d'écrire une donnée en base de donnée et de la scanner régulièrement pour en vérifier la modification
    fichier attente.php : ( http://gestion1.ressorts.org/attente.php )
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    setCookie("attente","1");
    echo ("cookie ['attente']=".$_COOKIE["attente"]."<---");
    $i=0;
    for ($i=0;$i<10;$i++) {
    	echo ("attente ".$i."s<br>");
    	sleep(1);
    	if ($_COOKIE["attente"]=="0") break;
    }
    lancé à la main, le retour s'effectue 10s plus tard (parce que rien ne vient faire changer la valeur du cookie) donc en utilisation normale

    Lancé par une routine AJAX, il n'y a aucun retour !!!

    pire même... la modification du cookie dans le second fichier php n'a aucun effet

    extrait en fin du fichier pour libérer la boucle d'attente
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    echo ("cookie['attente'=".$_COOKIE['attente']."]   --   ");
     
     
    setCookie("attente","0"); // permet de libérer un script qui attend cet élément pour se terminer, puis mettre à jour les différentes listes
     
    echo ("cookie['attente'=".$_COOKIE['attente']."]   --   ");
    donne le résultat suivant
    cookie['attente']=1 -- cookie['attente']=1 --

    Je ne suis pas buté sur l'utilisation d'un cookie, ou de toute autre méthode... mais si la seule solution est de passer par la base de données, je m'y résoudrais, mais autant éviter de surcharger cette dernière pour quelque chose de pas vraiment utile.

    Je peux aussi, au pire définir une durée fixe et lancer mes routines de fin de création de certificat au bout de 10-15-20s, mais c'est moins top que de le faire aussitôt que le certificat est affiché à l'écran.

    Pour contourner, je pourrais aussi créer mon fichier sur le serveur avec une routine AJAX, et recevoir en retour le chemin d'accès pour afficher le certificat (et donc savoir aussi qu'à ce moment là, le fichier a été créé et que je peux réafficher toutes mes listes à l'écran en les mettant à jour)

    A noter que ce que j'écris ne fonctionne pas avec IE PC (puisque c'est le seul à ne pas fonctionner, j'ai décidé que c'est à eux de se mettre à jour et pas à moi de créer des suites d'instructions qui ralentissent l'utilisation du navigateur pour les autres) d'autant plus qu'étant sur mac, je n'ai aucun moyen de tester avec IE PC.

    merci d'avance de l'aide que vous pourrez m'apporter
    mac pro bi-quad néhalem (2009) (16 proc et 8Go me MeV)
    Programmation : HTML - Javascript - PHP - AJAX - CSS : niveau amateur pour l'ensemble.

  2. #2
    Modérateur
    Avatar de BakSh0
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Août 2014
    Messages
    276
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 33
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Août 2014
    Messages : 276
    Points : 1 271
    Points
    1 271
    Par défaut
    Bonjour,

    setCookie permet juste d'initialiser le cookie.

    Une info supplémentaire :
    http://php.net/manual/fr/function.setcookie.php
    Comme pour les autres en-têtes, les cookies doivent être envoyés avant toute autre sortie
    BakSh0, Modérateur .Net & Web

    Affichez la colorisation syntaxique dans votre code en ajoutant dans votre balise : [CODE=xxx] en remplaçant xxx par le nom du langage.


    N'oubliez pas de consulter les FAQs : .Net / Web et les cours et tutoriels .Net / Web

  3. #3
    Membre régulier
    Homme Profil pro
    Fabricant de ressorts - programmeur amateur
    Inscrit en
    Janvier 2003
    Messages
    70
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine et Marne (Île de France)

    Informations professionnelles :
    Activité : Fabricant de ressorts - programmeur amateur
    Secteur : Industrie

    Informations forums :
    Inscription : Janvier 2003
    Messages : 70
    Points : 79
    Points
    79
    Par défaut
    Merci de cette réponse rapide...

    Ce qui veut dire que dans mon cas, l'utilisation des cookies n'est pas la solution (puisque j'en change la valeur à la fin de ma routine php, et qu'elle n'affiche pas de code HTML (à proprement parler puisque les seuls affichages sont des affichages de débogage qui sont supprimés par la suite)
    De ce qui est écrit ci-dessus, j'en déduis que les cookies sont mis en œuvre lors du début de l'affichage de la page, ce qui ne fait pas mon bonheur.

    Je crois que je vais abandonner cette idée de variable qui change de valeur (d'ailleurs en y réfléchissant bien, le principe n'est pas correct)

    j'ai une page HTML à l'écran avec des données dessus
    j'appelle une routine en PHP (qui doit attendre une réponse d'une autre routine en PHP)
    j'appelle une seconde routine en php qui elle-même ouvre un fichier .pdf dans une nouvelle fenêtre à l'écran...

    Comment ai-je pu imaginer que ces deux routines en php indépendantes puissent, un jour, communiquer entre elles, en cours d'utilisation, certes à partir de la même page HTML et sur le même serveur, pour le même client..

    Je vais devoir me résoudre à lancer la création de ma page de certificat par l’intermédiaire d'une routine AJAX qui me retournera une URL que je n'aurais alors qu'à ouvrir, en y réfléchissant, cela me parait même être la meilleure solution pour résoudre mon problème de tempo.

    merci de l'aide apportée, et désolé du dérangement.
    mac pro bi-quad néhalem (2009) (16 proc et 8Go me MeV)
    Programmation : HTML - Javascript - PHP - AJAX - CSS : niveau amateur pour l'ensemble.

  4. #4
    Modérateur
    Avatar de BakSh0
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Août 2014
    Messages
    276
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 33
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Août 2014
    Messages : 276
    Points : 1 271
    Points
    1 271
    Par défaut
    Je ne pense pas que le cookie soit une bonne idée dans ce cas c'est vrai, ce que je voulais dire c'est que tu initialise ton cookie, tu peux le modifier dans ton code avec la variable $_COOKIE, mais ton cookie lui (le fichier) ne sera pas modifié en soit ! Il faudra réinitialiser un cookie avec la nouvelle valeur dedans, ce qui je pense dans ton cas est peut être pas le plus approprié.
    BakSh0, Modérateur .Net & Web

    Affichez la colorisation syntaxique dans votre code en ajoutant dans votre balise : [CODE=xxx] en remplaçant xxx par le nom du langage.


    N'oubliez pas de consulter les FAQs : .Net / Web et les cours et tutoriels .Net / Web

  5. #5
    Membre régulier
    Homme Profil pro
    Fabricant de ressorts - programmeur amateur
    Inscrit en
    Janvier 2003
    Messages
    70
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine et Marne (Île de France)

    Informations professionnelles :
    Activité : Fabricant de ressorts - programmeur amateur
    Secteur : Industrie

    Informations forums :
    Inscription : Janvier 2003
    Messages : 70
    Points : 79
    Points
    79
    Par défaut
    Citation Envoyé par nektarfl Voir le message
    Je vais devoir me résoudre à lancer la création de ma page de certificat par l’intermédiaire d'une routine AJAX qui me retournera une URL que je n'aurais alors qu'à ouvrir, en y réfléchissant, cela me parait même être la meilleure solution pour résoudre mon problème de tempo.
    .
    Je confirme que de cette manière, on gère sans aucun soucis le tempo... je viens de mettre au point et ça a fonctionné du premier coup... (des fois, faut pas s'entéter quand l'idée est mauvaise)
    mac pro bi-quad néhalem (2009) (16 proc et 8Go me MeV)
    Programmation : HTML - Javascript - PHP - AJAX - CSS : niveau amateur pour l'ensemble.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [AJAX] Appel de fonction php avec ajax
    Par simoinfonet dans le forum Général JavaScript
    Réponses: 6
    Dernier message: 16/05/2008, 11h39
  2. [AJAX] Rafraichir variable php avec ajax
    Par sff dans le forum Général JavaScript
    Réponses: 0
    Dernier message: 02/04/2008, 15h01
  3. [AJAX] Réafficher d'une page php avec ajax
    Par red_nour dans le forum Général JavaScript
    Réponses: 1
    Dernier message: 20/06/2007, 08h21
  4. [Cookies] PB cookie dans un script AJAX/PHP
    Par cassy dans le forum Langage
    Réponses: 1
    Dernier message: 04/09/2006, 11h35
  5. [AJAX] PHP avec ajax(makerequest)
    Par Benjiijneb dans le forum Général JavaScript
    Réponses: 7
    Dernier message: 11/04/2006, 16h53

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo