begin process at 2012 05 30 17:24:56
  Trouver un code source :
 
dans
 
Accueil > Forum > 

Archive PHP

 > 

Archives

 > 

AU SECOURS !!!

 > 

pas besoin de recharger la page pour exécuter un script php??


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

pas besoin de recharger la page pour exécuter un script php??

mardi 1 novembre 2005 à 18:57:22 | pas besoin de recharger la page pour exécuter un script php??

Linuss

Bonjour à tous,

J'ai parfois vu quelques sites qui n'avaient pas besoin de recharger une page web pour exécuter un script php...
quelqu'un sait-il comment faire svp?? ca me parait très pratique
(ex: un text area me demande un pseudo a entrer, je change de text area, puis la page vérifie si le pseudo est valide, etc. mais sans recharger la page )

merci beaucoup,

++
mardi 1 novembre 2005 à 19:06:42 | Re : pas besoin de recharger la page pour exécuter un script php??

J_G

Salut,

Effectivement, c'est la grande mode en ce moment... Et j'en suis une des victimes. Faut dire que c'est bien :)

Qu'est-ce qiu est bien ? Ben l'utilisation conjointe du javascript (objet XmHTTPRequest) et de l'XML !!!

En anglais, ça donne AJAX (Asynchronous Javascript And Xml).

Le principe :
Javascript, via l'objet xmlhttprequest, envoi une requète HTTP toute bète en arrière plan. La réponse de ton script sera lue par une fonction Javascript (et non par ton navigateur). C'est ici que réside la difficulté! D'où la nécessité d'être précis sur le format de la réponse. XML est une bonne base pour ce faire...


Je te laisse aller voir quelques tutoriaux à ce sujet.
Bonne lecture,

A+

mardi 1 novembre 2005 à 19:21:02 | Re : pas besoin de recharger la page pour exécuter un script php??

coucou747

Administrateur CodeS-SourceS
Réponse acceptée !
salut, un exemple :

<script type="text/javascript">
    var MSIE=(navigator.appName=="Microsoft Internet Explorer")?true:false;
    var load=false;
    function css_change_1(){
        reponse=R.responseText;
        document.getElementById("css_style").innerHTML=reponse;
    }
    function css_change(theme){
        var reponse;
        if(MSIE){
            R = new ActiveXObject("Microsoft.XMLHTTP") ;
        }else{
            R = new XMLHttpRequest();
        }
        R.open("POST", "style.php", true);
        R.setRequestHeader("Content-Type","application/x-www-form-urlencoded");
        R.onreadystatechange = css_change_1;
        R.send("theme="+theme);
    }
</script>


bon, ici, il faut dire que j'ai fait :

<style type="text/css" media="screen" id="css_style">

et que ça aide un peu...

Bon, pour le reste, on se revoi sur le forum javascript ^^


In a dream, I saw me, drop dead... U was here, U cried... It was just a deam, if I die, U won't cry, maybe, U'll be happy

[ Lien ]
mardi 1 novembre 2005 à 19:27:06 | Re : pas besoin de recharger la page pour exécuter un script php??

Linuss

merci c'est cool :)
par contre, vous n'auriez pas de bons tutoriaux sur ajax ou le xmlhttprequest svp??
merci beaucoup
ps : ca me donne tout plein d'idées ce pitit truc ajax ^^

mardi 1 novembre 2005 à 20:45:17 | Re : pas besoin de recharger la page pour exécuter un script php??

J_G

Réponse acceptée !
Re-...

Oui, je peux te diriger vers les tutoriaus qui m'ont fait apprendre le truc nommé aujourd'hui "AJAX", mais qui existe en fait depuis 1996... ! (pourquoi tant d'attente pour utiliser une méthode aussi simple, belle et pratique ?)

Dans l'ordre où il faut les aborder :
1.http://www.framasoft.net/article3991.html
2.http://www.toutjavascript.com/savoir/xmlhttprequest.php3

Puis, avant que tu n'essaye de te faire des moteurs AJAX, sache qu'il en existe déjà plein qui te tendent les bras :
* sajax (très simple, peut-être trop... car du coup, usage limité)
* xajax (chercher sur sourceforge => j'ai adapté ce moteur pour me créer le mien "jgajax" :) )
* ajaxAC (super complet, voir super complex !!! (voir trop). Le moteur Ajax le plus puissant que j'ai trouvé... développé par www.apache.org)

Peut-être coucou747 en à trouvé d'autres, plus intéressant. Et du coup, ça m'intéresse aussi...

A+

(quand deux yeux se rencontrent...)
mardi 1 novembre 2005 à 21:52:35 | Re : pas besoin de recharger la page pour exécuter un script php??

Linuss

merci J_G et coucou :)
je vais voir de quoi ca parle, ca a l'air bien intéressant ;)

++ et encore merci

jeudi 17 janvier 2008 à 18:25:35 | Re : pas besoin de recharger la page pour exécuter un script php??

verdy_p

Pour finalement comprendre pourquoi un clic n'est pas nécessaire, il faut comprendre que cela nécessite un complément de support du côté du navigateur; tout est dans le support du composant XmlHttpRequest, qui est un composant actif (donc soumis à des restrictions de sécurité).Il faut déjà parvenir à le charger dans une page du navigateur, et l'activer, ce qui n'est pas garanti.
Mais une fois qu'il est activé, on peut l'instancier, ce qui crée un thread dans le navigateur, prêt à s'exécuter quand on lui aura fourni une requête à effectuer.
La requête n'est pas forcément une requête XML (quoi qu'en dise son nom), mais n'importe quelle requête HTTP; on fournit l'URL à charger, les paramètres (pour les requêtes de type GET, il faut les passer dans l'URL au format URLencodé, mais attention aux contraintes de taille maxi d'URL, éviter GET si les données à fournir sont volumineuses, par exemple si elles viennent d'un formulaire de saisie de texte comme un message à envoyer ou des commentaires en ligne, dans ce cas il faut utiliser la méthode POST et passer les paramètres séparément de l'URL, via les méthodes de l'objet XmlHttpRequest.

Une fois les paramètres et l'URL codés correctement et fournis, on demande à l'objet de s'exécuter: le thread sera lancé dans le navigateur qui se chargera d'effectuer la requête en se connectant au serveur (attention: si l'URL indiquée va vers un autre serveur que la page, votre requête peut être bloquée par le navigateur qui cherchera à bloquer les scripts méchants et invisibles cherchant à détourner des données: il y a des virus qui cherchent à contaminer les pages chargées depuis certains sites, en y ajoutant un bout de javascript qui va vouloir exécuter des requêtes via XmlHttpRequest, pour détourner les données que vous saisissez sur le site que vous visiter pour les envoyer à un autre site). Des restrictions imposent donc d'effectuer la requête dynamique XmlHttpRequest vers le même domaine que la page HTML affichée dans la frame courante du navigateur (et des restrictions pour accéder aux données de formulaires ou schéma DOM affiché dans les autres frames si elles ne sont pas dans le même domaine que la frame courante, car sinon le risque d'hameçonnage sera trop facile via un site faisant exécuter sa requête XmlHttpRequest depuis une frame invisible cherchant à accéder aux données que vous saisissez dans une frame principale affichant votre site sensible préféré).

La requête XmlHttpRequest ne peut pas se terminer tout de suite: votre javascript se termine, mais la requête continue en arrière-plan dans un thread du navigateur. Quand la réponse est parvenue, le composant XmlHttpRequest va générer un évènement Javascript vers l'élément de la page que vous lui avez indiqué. C'est dans ce nouveau javascript présent dans la page que vous récupérez la réponse obtenue, stockée dans la variable contenant votre objet XmlHttpRequest; il ne reste plus qu'à afficher ou traiter la réponse obtenue pour l'insérer dans la page actuelle avec les fonctions Javascript du DOM.

Ceci dit, pour maitriser tout ça, la programmation est assez complexe car il faut programmer simulatanément des pages PHP sur le serveur pour intercepter et traiter les requêtes AJAX, mettre dans les pages PHP le code HTML des pages, programmer le javascript qui va s'exécuter sur le navigateur, maitriser le DOM de la page HTML elle-même, jongler avec les codages de paramètres (et s'assurer aussi du codage du text que vous lui soumettez, et s'assurer que le serveur utilise aussi le bon codage pour décoder vos paramètres.

Mais rien de tout ça ne fonctionnera, si le navigateur ne supporte pas XmlHttpRequest (ou si le composant ActiveX qui le supporte est désactivé dans un navigateur IE), ou si Javascript est désactivé (car alors pas moyen même de déclencher les évènements de mise à jour dynamique. Penser donc à garder votre site opérationnel sans Javascript, via des formulaires plus classiques accessibles avec un clic normal sur un bouton d'envoi de formulaire.

Et AJAX ne dispense pas, même s'il fonctionne de faire des contrôles de validité des paramètres et de synchronisation des requêtes entre elles afin de s'assurer qu'elles proviennent de la bonne session (éviter les attaques par reproduction de requête.) il peut être donc nécessaire de fournir dans la requête XmlHttpRequest un paramètre donnant la valeur d'une variable de session unique et de son état (que le serveur va vérifier), et surtout vérifier à chaque fois sur le serveur la validité de tous les paramètres que vous allez prendre en compte (ne pas croire que les contrôles faits du coté client en Javascript vont suffire, même s'ils peuvent être utiles pour réduire la charge sur le serveur en lui évitant d'avoir à traiter trop de requêtes inutiles tant qu'un formulaire n'est pas complet et dans un format acceptable): votre script PHP sur le serveur doit toujours tous les revérifier si le serveur va générer des données critiques ou accéder et renvoyer à des infos personnelles sur votre utilisateur, car il ne doit pas les renvoyer à n'importe qui!

Note: XmlHttpRequest supporte aussi les requêtes via HTTPS pour les transactions sécurisées, mais c'est plus compliqué à faire si la page HTML principale n'est pas aussi en HTTPS sur le même domaine. On évitera de méler HTTP et HTTPS, et de mélanger les noms de domaines entre la page principale les les requêtes AJAX.



Cette discussion est classée dans : script, page, php, exécuter, recharger


Répondre à ce message

Sujets en rapport avec ce message

vbs & php [ par Claiyah ] bsr tout le monde svp quelqu'un peut me montré comment integrer un script vb (vbs) à une page php ? je veut bien exécuter mon script quand uelqu'un ou Appel direct script php avec bouton dans joomla [ par chpeller ] Bonjour à tous,je suis débutant en PHP et je construis un site web avec joomla.J'ai besoin d'exporter des données générées par una page php de joomla une page php [ par ikramta ] bonjour tout le monde. bon j'utilise dreamweaver pour construire mes pages web.dons ma page tout en hot j'inserre un script qui contient mes parametre Rafraichissement d'une variable php sans recharger la page [ par chiktika ] Bonjour,je réalise un jeu en flash :La page du site se compose comme ceci : - Un include de la page infos.php dans laquelle je j'affiche les informati Créer un site php en remplaçant une iframe sans recharger toute la page [ par Justkill ] Bonjour à vous, j'ai hésité avant de venir ici mais pour la première fois (ou deuxième) je viens vous voir pour un problème assez important.voici mon fermmer une page php avec codes php [ par sbsouba ] slut  a tous je veux savoir s'il ya un code ou script php qui fermmer une page  en php voila mon code sources<? $rep8=mysql_query("select * from archi Comment lancer un script PHP qui ne décharge pas la page courante ? [ par bluemandfr ] Bonjour,   Je fais appel à la communauté pour savoir si, depuis une page HTML classique, nommée pour cette explication "A", il est possible de lan site multilangue avec cookies [ par martiallover ] Bonjour tout le monde je vous poste mon problème je suis entrain de chercher quelle sont les voie plus pratique pour un site multilingue je teste des Script de news [ par 0303 ] Bonjour ! je cherche un script de news en PHP/MYSQL avec ce script on peut poster les différents champs tels que : la page inserer.php Titre de la Script php, fonction multiple [ par scrodofus ] Bonjour, Voila je vous contact parceque j'aimerai realisser une page php qui je sais pas si c'est simple et ne connait pas comment faire le code. J'


Nos sponsors


Sondage...

CalendriCode

Mai 2012
LMMJVSD
 123456
78910111213
14151617181920
21222324252627
28293031   

Consulter la suite du CalendriCode

A découvrir



 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 1,950 sec (4)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales