Accueil > > > PETIT CLIENT + AJAX + PHP
PETIT CLIENT + AJAX + PHP
Information sur la source
Description
Permet d'executer des commandes via la commande shell_exec(), Les requettes qui sont envoyer via la page html au script php. Pour le fonctionnement, deux fichiers. shell.php qui execute $_GET['shell']; et affiche le resultat. et le fichier shell.html qui permet d'envoyer la requette au script php qui permet l'affiche du resultat de la commande, via XMLHttpRequest.
Source
- shell.html :
-
- <html>
- <head>
- <meta http-equiv="content-type" content="text/html; charset=utf-8" />
- <style type="text/css">
- body { background-color:black; color:white; font-size:10px; }
- pre { padding-top:2px; }
- #input_ { border:1px solid black; width:70%; background-color:black; color:white; }
- #status { display:block; position:fixed; right:1px; bottom:1px; background-color:red; }
- </style>
- <script type="text/javascript">
- //AJAX
- var FILE_SCRIPT="shell.php"
-
- function status_write(txt)
- {
- document.getElementById('status').innerHTML=txt;
- }
-
- function getXhr()
- {
- var xhr = null;
- if(window.XMLHttpRequest) // Firefox et autres
- xhr = new XMLHttpRequest();
- else if(window.ActiveXObject){ // Internet Explorer
- try {
- xhr = new ActiveXObject("Msxml2.XMLHTTP");
- } catch (e) {
- xhr = new ActiveXObject("Microsoft.XMLHTTP");
- }
- }
- else {
- status_write("Votre navigateur ne supporte pas les objets XMLHTTPRequest...");
- xhr = false;
- }
- return xhr;
- }
-
- function ajax_load() //quand ca charge
- {
- status_write("Chargement en cours ...");
- }
- function ajax_end(){ // quand ca a fini
- status_write("Chargement terminé");
- }
- function wget(get)
- {
- var xhr_object=getXhr();
- ajax_load();
- xhr_object.open("GET", get, false);
- xhr_object.setRequestHeader("Content-type","text/html ; charset=utf-8");
- xhr_object.send(null);
- ajax_end();
- if(xhr_object.readyState == 4)
- return (xhr_object.responseText);
- }
-
- //FIN AJAX
-
- function submit_f()
- {
- document.getElementById('txt').innerHTML=root+input+"\n"+wget(FILE_SCRIPT+"?shell="+encodeURIComponent(document.getElementById("input_").value)+"");
- document.getElementById('input_').focus();
-
- return false;
- }
-
- var root="<span style='color:red'>root@kiki67100</span>:<span style='color:blue'>~</span># ";
- var input="<input name='s' type='text' id='input_'>";
-
- window.onload=function()
- {
- document.getElementById("txt").innerHTML=root+input;
- document.getElementById("input_").focus();
- }
-
- </script>
- </head>
- <body>
- <div id="status"></div>
- <form name="form" onsubmit="return submit_f()" >
- <pre id="txt"></pre>
- </form>
- </body>
- </html>
-
- shell.php :
-
- <?php
- if(isset($_GET['shell']))
- echo shell_exec($_GET['shell']);
- ?>
shell.html :
<html>
<head>
<meta http-equiv="content-type" content="text/html; charset=utf-8" />
<style type="text/css">
body { background-color:black; color:white; font-size:10px; }
pre { padding-top:2px; }
#input_ { border:1px solid black; width:70%; background-color:black; color:white; }
#status { display:block; position:fixed; right:1px; bottom:1px; background-color:red; }
</style>
<script type="text/javascript">
//AJAX
var FILE_SCRIPT="shell.php"
function status_write(txt)
{
document.getElementById('status').innerHTML=txt;
}
function getXhr()
{
var xhr = null;
if(window.XMLHttpRequest) // Firefox et autres
xhr = new XMLHttpRequest();
else if(window.ActiveXObject){ // Internet Explorer
try {
xhr = new ActiveXObject("Msxml2.XMLHTTP");
} catch (e) {
xhr = new ActiveXObject("Microsoft.XMLHTTP");
}
}
else {
status_write("Votre navigateur ne supporte pas les objets XMLHTTPRequest...");
xhr = false;
}
return xhr;
}
function ajax_load() //quand ca charge
{
status_write("Chargement en cours ...");
}
function ajax_end(){ // quand ca a fini
status_write("Chargement terminé");
}
function wget(get)
{
var xhr_object=getXhr();
ajax_load();
xhr_object.open("GET", get, false);
xhr_object.setRequestHeader("Content-type","text/html ; charset=utf-8");
xhr_object.send(null);
ajax_end();
if(xhr_object.readyState == 4)
return (xhr_object.responseText);
}
//FIN AJAX
function submit_f()
{
document.getElementById('txt').innerHTML=root+input+"\n"+wget(FILE_SCRIPT+"?shell="+encodeURIComponent(document.getElementById("input_").value)+"");
document.getElementById('input_').focus();
return false;
}
var root="<span style='color:red'>root@kiki67100</span>:<span style='color:blue'>~</span># ";
var input="<input name='s' type='text' id='input_'>";
window.onload=function()
{
document.getElementById("txt").innerHTML=root+input;
document.getElementById("input_").focus();
}
</script>
</head>
<body>
<div id="status"></div>
<form name="form" onsubmit="return submit_f()" >
<pre id="txt"></pre>
</form>
</body>
</html>
shell.php :
<?php
if(isset($_GET['shell']))
echo shell_exec($_GET['shell']);
?>
Conclusion
Le script ne gère pas tous ce qui est "intéractif" ( nano, vi, dialog ...).
Si vous voulez changer le nom du script php changer juste la variable "FILE_SCRIPT" par ce que vous voulez.
À vos clavier.
Sources du même auteur
Sources de la même categorie
Commentaires et avis
Discussions en rapport avec ce code source dans le forum
Select box + php + ajax [ par geek1983 ]
Bonjour, j'ai une petite question.J'utilise php/mysql pour populer un select box de ce type:<select name="client" id="client"> <option>
Pb Ajax-PhP [ par Zakki49 ]
Bonjour à tous,Alors il se trouve que j'ai un petit souci.J'ai deux liste déroulante la première chargé au démarrage de ma page, et la deuxième qui se
erreur ,ysal [ par programmeuse19 ]
Bonjour je suis ravie de vous joindrebien , j'ai un probleme au niveau de Mysql ,j'arrive pas le resoudre voici l'erreur
amelioration d'affichage [ par programmeuse19 ]
Bonsoirje suis contente de vous joindre bien,j'ai un probleme au niveau d'affichage ,j'ai une moitie de tableau qui s'affiche l'autre nonvoici le code
Clef etrangere [ par dykafr ]
Bonjour a tous!Au fait j'ai un probleme qui me fatique depuis plus d'une semaine,et la j'ai decider de faire appel a vous.Donc il se trouve que je su
Blocage sur conception facture... [ par VicTeams ]
Bonjour à tous,je réclame votre aide car j'ai un souci sur mon script php/mysql..Enfaite j'ai 2 formulaires, un pour la création des produits, avec id
Problème d'affichage typographique sous IE [ par L42RY ]
Bonsoir à tous, Tout d'abord, merci d'avoir pris le temps de lire mon post. Mon problème actuel n'est pas extrêmement grave, mais visuellement gênant.
création d'un espace client avec PHP [ par quimix ]
bonjour a tous voila, je désirerai réaliser un espace clients avec login mot de passe et une confirmation par email lors de l'inscription .. avec bien
module gestion des client d'une application de gestion commerciale [ par tarekov ]
slt tout le monde.je souhaite bien sur recevoir de l'aide que j'attend de vous pour terminer mon applcation web qui a pour sujet gestion des clients a
Gestion membre d'une console admin [ par DemoncorpDev ]
Bonjour, je cherche à créer une console admin pour un site web et ainsi gérer ses membres (exercice). -> Dreamweaver et EasyPHP J'ai 2 tables :
|
Derniers Blogs
UNE JOLIE-HORLOGE ET PAS QU'UN PEU !UNE JOLIE-HORLOGE ET PAS QU'UN PEU ! par neodante
Pour les possesseurs d'iPhone, ça y est Bijin Tokei - qui se traduit littéralement en Français par " Jolie Horloge " - est arrivé et GRATUITEMENT s'il vous plaît ! Après la version Tokyo, Hokkaido, night club, racing, Gal, "pour les mademoiselles'", . voi...
Cliquez pour lire la suite de l'article par neodante TECHDAYS PARIS 2010 : CONNECTEZ VOS DONNéES à SHAREPOINT 2010 AVEC LES BUSINESS CONNECTIVITY SERVICESTECHDAYS PARIS 2010 : CONNECTEZ VOS DONNéES à SHAREPOINT 2010 AVEC LES BUSINESS CONNECTIVITY SERVICES par ROMELARD Fabrice
Animé par: Gaetan Bouveret et Julien Chomarat Business Connectivity Services (BCS) est dans SharePoint 2010 la version 2 de Business Data Catalog (BDC dans SharePoint 2007). Il s'agit de la solution permettant de visualiser des données provenan...
Cliquez pour lire la suite de l'article par ROMELARD Fabrice [DIVERS] SUIVRE VOS SéRIES PRéFéRéS SUR LA TOILE[DIVERS] SUIVRE VOS SéRIES PRéFéRéS SUR LA TOILE par orion
Comme de nombreux geek, je suis un grand amateur de série TV et je rate régulièrement des épisodes de mes séries préférés. Une solution s'offre à vous avec ce merveilleux site : Tv Gorge - www.tvgorge.com Moteur de recherche à l'appui, vous pouvez ...
Cliquez pour lire la suite de l'article par orion TECHDAYS PARIS 2010 : LA BI DANS SHAREPOINT 2010TECHDAYS PARIS 2010 : LA BI DANS SHAREPOINT 2010 par ROMELARD Fabrice
Animé par: Vincent Bellet et Baptiste Giraudier La BI dans SharePoint 2010, Les nouveaux services d'application dans SP2010 et SQL Server Reporting services 2008 R2. La BI dans SharePoint est généralisée pour tous afin de permettre à tous les coll...
Cliquez pour lire la suite de l'article par ROMELARD Fabrice
Forum
HTML VERS PDFHTML VERS PDF par spike911
Cliquez pour lire la suite par spike911
Logiciels
DB-MAIN (9.1.0)DB-MAIN (9.1.0)DB-MAIN is a data-modeling and data-architecture tool. It is designed to help developers and anal... Cliquez pour télécharger DB-MAIN Xilisoft DPG Convertisseur (5.1.37.0120)XILISOFT DPG CONVERTISSEUR (5.1.37.0120)Xilisoft DPG Convertisseur offre aux fans de Nintendo DS une bonne solution leur permettant de dé... Cliquez pour télécharger Xilisoft DPG Convertisseur GraphicsGale (2.01.01)GRAPHICSGALE (2.01.01)GraphicsGale est un logiciel de PixelArt avec de nombreuse fonctionnalités permettant de réalisé ... Cliquez pour télécharger GraphicsGale Architecte 3D (Platinum 2010)ARCHITECTE 3D (PLATINUM 2010)Architecte 3D Platinium vous permet de concevoir facilement les plans votre future maison, de l'é... Cliquez pour télécharger Architecte 3D TeamViewer 5 (TeamViewer 5)TEAMVIEWER 5 (TEAMVIEWER 5)Dépanner un ami,expliquer une manipulation devient un jeu d'enfant.
Prise en main d'un autre ord... Cliquez pour télécharger TeamViewer 5
|