Accueil > Forum > > > > pas besoin de recharger la page pour exécuter un script php??
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
|
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??
|
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'
Livres en rapport
|
Derniers Blogs
POUR RAPPEL ! LES SPéCIFICATIONS DES PROTOCOLES OFFICE ET SHAREPOINT SONT DISPONIBLES SUR MSDNPOUR RAPPEL ! LES SPéCIFICATIONS DES PROTOCOLES OFFICE ET SHAREPOINT SONT DISPONIBLES SUR MSDN par neodante
Quelle est le point commun entre : Microsoft il y a 10 ans et Apple aujourd'hui ? Réponse: avoir une politique de protocoles propriétaires et fermés :) Car pour rappel (si si je vous assure c'est important de le rappeler), la majorité des spécifications e...
Cliquez pour lire la suite de l'article par neodante JOYEUX ANNIVERSAIRE NIXJOYEUX ANNIVERSAIRE NIX par ebartsoft
Souhaitons un bon et joyeux anniversaire à notre hôte à tous, Nix.
Je ne le répéterais jamais assez mais sans lui rien ne serait possible. Il défit en permanence les lois de la gravité et comme il le dit si bien, si tu lui fais confiance ça devra...
Cliquez pour lire la suite de l'article par ebartsoft IMAGINE CUP 2012, MAKE A SIGN EN FINALEIMAGINE CUP 2012, MAKE A SIGN EN FINALE par junarnoalg
Voilà qui est fait, la nouvelle est officielle ! L'équipe belge "Make a Sign" va au pays des kangourous défendre son projet dans la catégorie Software Design. http://www.imaginecup.com/CompetitionsContent/Competition/WorldwideFinalists.aspx V...
Cliquez pour lire la suite de l'article par junarnoalg KINECT 1.5 IS OUT !KINECT 1.5 IS OUT ! par Vko
La version 1.5 du Kinect For Microsoft vient tout juste de sortir ! Plein de nouveautés: Tracking de squelette en Near Mode Détection en position assise Détection faciale avec un SDK dédié Documentation et des guideline (enfin) Un out...
Cliquez pour lire la suite de l'article par Vko LES ACTUALITéS DE LA SEMAINE SUR C2I.FR (14 MAI - 20 MAI) LES ACTUALITéS DE LA SEMAINE SUR C2I.FR (14 MAI - 20 MAI) par richardc
Mise à jour des Web API du 14 Mai
Réservez dès maintenant votre journée du 20 juin pour le Windows Azure Dev Camp 2012 à Paris
Mise à jour de Team Foundation Service
MechCommander 2 sur Windows 8
Entity Framework 5 Release Candidate e...
Cliquez pour lire la suite de l'article par richardc
Forum
BALISE D'ANCREBALISE D'ANCRE par FADEST
Cliquez pour lire la suite par FADEST
Logiciels
sDEVIS-FACTURES vlPRO (8.1.0.3)SDEVIS-FACTURES VLPRO (8.1.0.3)sDEVIS-FACTURES vlPRO a été mis au point pour les particuliers, créateurs, entrepreneurs, artisa... Cliquez pour télécharger sDEVIS-FACTURES vlPRO 974 Application Server (12.2.4.6)974 APPLICATION SERVER (12.2.4.6)Développez de puissantes applications dans un environnement de 'cloud computing', clusterisé, séc... Cliquez pour télécharger 974 Application Server vPicture (1.4.2.1)VPICTURE (1.4.2.1)Avec vPicture, hébergez vos images facilement et rapidement.
vPicture est un utilitaire simple, ... Cliquez pour télécharger vPicture Easy-Planning (2.2.1.6)EASY-PLANNING (2.2.1.6)Easy-Planning permet de créer des plannings sous la représentation de diagrammes et est adapté au... Cliquez pour télécharger Easy-Planning COM-BACKUP (2.0)COM-BACKUP (2.0)
COM-BACKUP est un logiciel de sauvegarde qui permet de planifier les sauvegardes de vos dossiers ...
Cliquez pour télécharger COM-BACKUP
|