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

JavaScript Discussion :

Utilisation sournoise de document.write (avec du...PHP)


Sujet :

JavaScript

  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Octobre 2008
    Messages
    26
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2008
    Messages : 26
    Par d�faut Utilisation sournoise de document.write (avec du...PHP)
    Bonjour � tous!

    J'ai un petit probl�me de curiosit�.
    Avant tout, je sais et je n'oublie pas que Javascript concerne le c�t� client et PHP le c�t� serveur.
    MAIS voici mon soucis:
    Le but: cr�er sur une page un b�te bouton qui arr�te le chargement(mais de fa�on propre, bien s�r, pas comme le bouton du navigateur)

    Pour simplifier on va dire que le traitement que j'effectue est une grande boucle...
    Dedans, j'ai une fonction JS qui teste si un flag de demande d'arr�t est lev�.
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    <?php
          for(int $i=0;$i<100000000000000;$i++){
                //Je teste si l'utilisateur a demandé le stop
                echo"<script type='text/javascript'>teststop();</script>";
     
                //Je fais mon traitement avec des affichages dedans
                ma_fonction_A();
                ma_fonction_B();
                etc...
          }
    ?>
    Pour cela, j'ai d�fini au pr�alable les fonctions suivantes:

    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    <script type="text/javascript">
    	//Variable stop : c'est un flag pour savoir si l'utilisateur a 
             //voulu interrompre la page
    	var stop= '1';
    
    	//Fonction d�clench�e par le bouton "interrompre"
    	function stopper(){
    		stop = '0';
    		}			
    	var arreter_execution="<?php echo('Hello DVPZ!'); ?>";
    			
            //Fonction execut�e pendant la boucle de traitement si 
            //le flag d'interruption est lev�
    	function teststop(){
    		if (stop=='0'){ document.write(arreter_execution); }
    		}
    </script>
    Voil�, alors tout cela me permet (et �a marche) d'afficher, d�s le moment o� l'utilisateur � cliqu�, d'afficher mon message, � chaque d�but de boucle.

    L� o� je ne comprends plus, c'est lorsque je remplace mon
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    var arreter_execution="<?php echo('Hello DVPZ!'); ?>";
    par un
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    var arreter_execution="<?php exit('Interruption!'); ?>";
    Dans ce cas l�, la page ne se charge m�me pas, elle reste blanche.
    Je me dis que c'est comme si le document.write avait �t� d�clench� � la fin du traitement et du coup aurait remplac� tout le contenu.

    Mais alors, pourquoi? Car le traitement n'a pas encore eu lieu?
    Et m�me s'il avait eu lieu, pourquoi le message "Interruption!" n'apparait-il pas? Parcequ'aucun script PHP n'a pu �tre interrompu?

    Voil�, j'esp�re que ce n'est pas trop tordu...
    Et si vous avez d'autres solutions � mon but, n'h�sitez pas
    Merci d'avance!

  2. #2
    R�dacteur/Mod�rateur

    Avatar de SpaceFrog
    Homme Profil pro
    D�veloppeur Web Php Mysql Html Javascript CSS Apache - Int�grateur - Bidouilleur SharePoint
    Inscrit en
    Mars 2002
    Messages
    39 659
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 75
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activit� : D�veloppeur Web Php Mysql Html Javascript CSS Apache - Int�grateur - Bidouilleur SharePoint
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2002
    Messages : 39 659
    Billets dans le blog
    1
    Par d�faut
    Avant tout, je sais et je n'oublie pas que Javascript concerne le c�t� client et PHP le c�t� serveur.
    Tu donnes toi m�me la cause du probl�me
    Ma page Developpez - Mon Blog Developpez
    Pr�sident du CCMPTP (Comit� Contre le Mot "Probl�me" dans les Titres de Posts)
    Deux r�gles du succ�s: 1) Ne communiquez jamais � quelqu'un tout votre savoir...
    Votre post est r�solu ? Alors n'oubliez pas le Tag

    Venez sur le Chat de D�veloppez !

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Octobre 2008
    Messages
    26
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2008
    Messages : 26
    Par d�faut
    Peut-�tre mais je ne vois pas en quoi...
    Pourquoi est-ce qu'une instruction php s'executerait depuis un appel par JS et pas une autre? C'est l� que je suis choqu�.

  4. #4
    R�dacteur/Mod�rateur

    Avatar de SpaceFrog
    Homme Profil pro
    D�veloppeur Web Php Mysql Html Javascript CSS Apache - Int�grateur - Bidouilleur SharePoint
    Inscrit en
    Mars 2002
    Messages
    39 659
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 75
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activit� : D�veloppeur Web Php Mysql Html Javascript CSS Apache - Int�grateur - Bidouilleur SharePoint
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2002
    Messages : 39 659
    Billets dans le blog
    1
    Par d�faut
    heu le php ne serait il pas du coup ex�cut� AVANT le js ....

    et que fait exit en php ???
    il termine le script courant donc php �tant interrompu � ton avis que va recevoir ton browser � interpr�ter en html ????
    Ma page Developpez - Mon Blog Developpez
    Pr�sident du CCMPTP (Comit� Contre le Mot "Probl�me" dans les Titres de Posts)
    Deux r�gles du succ�s: 1) Ne communiquez jamais � quelqu'un tout votre savoir...
    Votre post est r�solu ? Alors n'oubliez pas le Tag

    Venez sur le Chat de D�veloppez !

  5. #5
    Membre averti
    Profil pro
    Inscrit en
    Octobre 2008
    Messages
    26
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2008
    Messages : 26
    Par d�faut
    Ha... d'accord.
    Comme je fais exit, mon browser ne re�oit rien, sauf le message d'erreur normalement, non? (or je ne le vois pas)
    Mais si le PHP est ex�cut� avant, pourquoi est-ce que le bouton (et sa fonction JS) instanci� au d�but me permet d�j� d'int�ragir avec le PHP encore en cours d'execution?
    Parce que , m�me si le php est ex�cut� d'abord, je peux afficher quand m�me mon message dans mon traitement avec document.write, si je clique sur le bouton pendant l'execution du script PHP...

    D�sol� si je suis pedant mais je ne comprends pas la subtilit� encore...

  6. #6
    R�dacteur/Mod�rateur

    Avatar de SpaceFrog
    Homme Profil pro
    D�veloppeur Web Php Mysql Html Javascript CSS Apache - Int�grateur - Bidouilleur SharePoint
    Inscrit en
    Mars 2002
    Messages
    39 659
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 75
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activit� : D�veloppeur Web Php Mysql Html Javascript CSS Apache - Int�grateur - Bidouilleur SharePoint
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2002
    Messages : 39 659
    Billets dans le blog
    1
    Par d�faut
    affiche la source g�n�r�e du html ...
    Ma page Developpez - Mon Blog Developpez
    Pr�sident du CCMPTP (Comit� Contre le Mot "Probl�me" dans les Titres de Posts)
    Deux r�gles du succ�s: 1) Ne communiquez jamais � quelqu'un tout votre savoir...
    Votre post est r�solu ? Alors n'oubliez pas le Tag

    Venez sur le Chat de D�veloppez !

  7. #7
    R�dacteur

    Avatar de Bovino
    Homme Profil pro
    D�veloppeur Web
    Inscrit en
    Juin 2008
    Messages
    23 647
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 55
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activit� : D�veloppeur Web
    Secteur : High Tech - �diteur de logiciels

    Informations forums :
    Inscription : Juin 2008
    Messages : 23 647
    Billets dans le blog
    20
    Par d�faut
    Il est temps de te livrer un secret : ton navigateur est un menteur ! Quand il te dit qu'il t'affiche une page PHP, il t'affiche en r�alit� le code HTML g�n�r� par une page PHP ! Mais le script PHP a d�j� fini de s'ex�cuter, d'o� la premi�re r�ponse de Spaffy :
    Citation Envoy� par SpaceFrog
    Citation Envoy� par LePueblo
    Avant tout, je sais et je n'oublie pas que Javascript concerne le c�t� client et PHP le c�t� serveur.
    Tu donnes toi m�me la cause du probl�me
    Pas de question technique par MP !
    Tout le monde peut participer � developpez.com, vous avez une id�e, contactez-moi !
    Mes formations video2brain : La formation compl�te sur JavaScriptJavaScript et le DOM par la pratiquePHP 5 et MySQL : les fondamentaux
    Mon livre sur jQuery
    Module Firefox / Chrome d'int�gration de JSFiddle et CodePen sur le forum

  8. #8
    Membre Expert
    Avatar de Thes32
    Homme Profil pro
    D�veloppeur PHP, .Net, T-SQL
    Inscrit en
    D�cembre 2006
    Messages
    2 379
    D�tails du profil
    Informations personnelles :
    Sexe : Homme

    Informations professionnelles :
    Activit� : D�veloppeur PHP, .Net, T-SQL

    Informations forums :
    Inscription : D�cembre 2006
    Messages : 2 379
    Par d�faut
    Citation Envoy� par Bovino
    Il est temps de te livrer un secret : ton navigateur est un menteur !
    mdr

    ce navigateur m�rite une bonne fess�e

  9. #9
    Membre averti
    Profil pro
    Inscrit en
    Octobre 2008
    Messages
    26
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2008
    Messages : 26
    Par d�faut
    Okay, je crois que j'ai saisi
    Mais du coup (et je redoute cette r�ponse) comment est-il possible , c�t� client d'interrompre la g�n�ration de ce code HTML par PHP et d'en afficher le contenu g�n�r�...(+ un pti message, tant qu'� faire)

    J'ai entendu parl� d'AJAX, mais je ne connais pas encore cet outil l�. Il y a peut-�tre une solution plus facile..?

    En tous cas merci pour vos explication, et votre patience.

  10. #10
    R�dacteur/Mod�rateur

    Avatar de SpaceFrog
    Homme Profil pro
    D�veloppeur Web Php Mysql Html Javascript CSS Apache - Int�grateur - Bidouilleur SharePoint
    Inscrit en
    Mars 2002
    Messages
    39 659
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 75
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activit� : D�veloppeur Web Php Mysql Html Javascript CSS Apache - Int�grateur - Bidouilleur SharePoint
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2002
    Messages : 39 659
    Billets dans le blog
    1
    Par d�faut
    heu non visiblement tu n'as pas compris ...

    php gen�re le code html ...
    je ne vois pas commetn html pourrait interrompre la generation du cdo par php vu que la page n'est as encore arriv�e chez le client ...
    Penche toi sur la chronologie des ev�nements !
    Ma page Developpez - Mon Blog Developpez
    Pr�sident du CCMPTP (Comit� Contre le Mot "Probl�me" dans les Titres de Posts)
    Deux r�gles du succ�s: 1) Ne communiquez jamais � quelqu'un tout votre savoir...
    Votre post est r�solu ? Alors n'oubliez pas le Tag

    Venez sur le Chat de D�veloppez !

  11. #11
    Membre Expert Avatar de DoubleU
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    1 106
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2006
    Messages : 1 106
    Par d�faut
    php gen�re le code html ...
    je ne vois pas commetn html pourrait interrompre la generation du cdo par php vu que la page n'est as encore arriv�e chez le client ...
    Penche toi sur la chronologie des ev�nements !
    Tu ne re�ois pas la page une fois compl�tement g�n�r�e, mais bien � mesure de sa g�n�ration. Ceci �tant, ca ne change rien, tu ne peux pas arreter la g�n�ration comme ca.

  12. #12
    Membre averti
    Profil pro
    Inscrit en
    Octobre 2008
    Messages
    26
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2008
    Messages : 26
    Par d�faut
    Je vais me pencher l� dessus.

    Dit comme �a, �a me semble impossible aussi du coup, mais alors pourquoi �a marche? Je me trompe peut-�tre en pensant que �a marche en fait

    J'insiste, si je fais un echo 'hello world' via le document.write li� � mon bouton, il s'affiche dans mon html g�n�r�. Pourtant je clique une fois que la page est � moiti�e affich�e seulement, et non une fois le chargement termin�. Comment est-ce possible?
    Je pensais que justement le JS m'avait permis d'influencer la g�n�ration de la suite du HTML �tant donn� que le chargement est tr�s long et que la page s'affiche petit � petit... Apparement c'est pas �a, mais alors qu'est-ce?

    Je pars me documenter sur la chronologie des �v�nements. Back to basics, �a ne me fera pas de mal...

  13. #13
    R�dacteur/Mod�rateur

    Avatar de SpaceFrog
    Homme Profil pro
    D�veloppeur Web Php Mysql Html Javascript CSS Apache - Int�grateur - Bidouilleur SharePoint
    Inscrit en
    Mars 2002
    Messages
    39 659
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 75
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activit� : D�veloppeur Web Php Mysql Html Javascript CSS Apache - Int�grateur - Bidouilleur SharePoint
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2002
    Messages : 39 659
    Billets dans le blog
    1
    Par d�faut
    parceque php redige ton code js ...

    et hop le client re�oit une page redig�e mais statique ... une fois la page partie du serveur il n'y a plus de communication

    imgine l'impirmeur qui imprime un livre et te l'envoie
    une fois le livre mis au courrier son contenu n'en sera pas modifi� ..
    Ma page Developpez - Mon Blog Developpez
    Pr�sident du CCMPTP (Comit� Contre le Mot "Probl�me" dans les Titres de Posts)
    Deux r�gles du succ�s: 1) Ne communiquez jamais � quelqu'un tout votre savoir...
    Votre post est r�solu ? Alors n'oubliez pas le Tag

    Venez sur le Chat de D�veloppez !

Discussions similaires

  1. document.write avec Google Chrome + script js
    Par homer3018 dans le forum G�n�ral JavaScript
    R�ponses: 2
    Dernier message: 18/04/2011, 14h01
  2. [PHP-JS] probl�me avec mon document.write
    Par kevinf dans le forum Langage
    R�ponses: 18
    Dernier message: 06/10/2006, 06h27
  3. Probl�me avec document.write()
    Par d.w.d dans le forum G�n�ral JavaScript
    R�ponses: 7
    Dernier message: 19/01/2006, 12h06
  4. [DOM XML][XSLT] Cr�ation d'un document XML avec PHP
    Par ToxiZz dans le forum Biblioth�ques et frameworks
    R�ponses: 21
    Dernier message: 16/01/2006, 17h44
  5. Probleme avec document.write()
    Par bins dans le forum G�n�ral JavaScript
    R�ponses: 11
    Dernier message: 11/11/2005, 18h27

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