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

Langage PHP Discussion :

xterm.js et PHP pour émuler un Shell


Sujet :

Langage PHP

  1. #1
    Membre éclairé
    Profil pro
    Inscrit en
    Avril 2009
    Messages
    347
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2009
    Messages : 347
    Par défaut xterm.js et PHP pour émuler un Shell
    Bonjour,

    je cherche à utiliser xterm.js mais au lieu d'utiliser Node.js comme dans leur démo, je souhaiterai utiliser PHP, mais je ne parviens pas à convertir ce code :
    https://github.com/sourcelair/xterm....er/demo/app.js

    en PHP

    J'ai plusieurs problème lié
    1. au nombre de ligne/colonnes qu'impose un Shell (et xterm.js)
    2. proc_open qui envoi des données à un processus /bin/sh ou bash (je ne parviens pas à lui envoyer)

    Auriez vous une idée de la faisabilité ?

    Actuellement, je me base sur le code de démo de xterm.js => https://github.com/sourcelair/xterm.js/tree/master/demo
    Et je chreche juste à remplacer app.js par app.php

  2. #2
    Membre expérimenté
    Inscrit en
    Août 2006
    Messages
    191
    Détails du profil
    Informations forums :
    Inscription : Août 2006
    Messages : 191
    Par défaut
    Bonjour,

    Tu souhaites traduire le fichiers app de javascript en php?
    c'est bien ça ton idée ?

    Si oui Pourquoi ? Autant définir ton besoin et réécrire l'application qui correspond à ton besoin.
    A la limite si tu décris bien ton souhait on peux peut être t orienter vers un framework te simplifiant le boulot.

    Il faudrait que tu formule plus précisément ton besoin ?

  3. #3
    Membre éclairé
    Profil pro
    Inscrit en
    Avril 2009
    Messages
    347
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2009
    Messages : 347
    Par défaut
    Merci pour votre réponse,

    Je n'ai qu'un environnement PHP, pas Node.JS et j'aimerai pouvoir avoir un Shell (à travers xterm.js) qui permet de jouer gérer les entrées/sorties, afin de taper des commandes du genre ls ou vi

    Actuellement, l'application Node.JS fourni en démo fait le travers de traitement des entrées/sorties Bash, je me demande surtout si il est possible de faire pareil avec PHP,

    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
    19
     
        $descriptorspec = array(
            0=>array("pipe", "r"),
            1=>array("pipe", "w"),
            2=>array("pipe", "w")
        );
     
        unset($_SERVER['argv']);
        $env = array_merge(
            array('COLUMNS'=>130, 'LINES'=> 50), $_SERVER
        );
        $connection->process = proc_open("bash", $descriptorspec, $pipes, null, $env);
        $connection->pipes = $pipes;
        stream_set_blocking($pipes[0], 0);
    ...
            fwrite($connection->pipes[0], $cmd);
    ...
            $output = fread($pipes[1], 1024);
    ...
    Et le tout renvoyé à xterm.js à travers un websocket

  4. #4
    Membre expérimenté
    Inscrit en
    Août 2006
    Messages
    191
    Détails du profil
    Informations forums :
    Inscription : Août 2006
    Messages : 191
    Par défaut
    Re,

    Bon en gros remplacer l’utilisation de Node.js par PHP en 2 temps, 3 mouvements ...ce n'est pas possible.

    Tu as plusieurs choix suivant ce que tu souhaites:

    Un template WordPress

    La commande SHELL_EXEC

    Sinon si vraiment tu veux garder la base Xterm.js voici un sujet sur les WebSockets en PHP mais par contre j'ai regardé rapidement Xterm.js et j'y vois une dépendance forte à Node.js donc il te faudra réécrire une grosse partie de Xterm.js, presque tout en faite.


    Par contre, d'où vient ta limitation pour Node.js car c'est peut être le point le plus simple à régler ?

  5. #5
    Membre éclairé
    Profil pro
    Inscrit en
    Avril 2009
    Messages
    347
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2009
    Messages : 347
    Par défaut
    Pas mal le coup du template WordPress Non, ce genre de shell c'est bon pour les mecs qui veulent resté discret
    php-reverse-shell.php j'avais vu, mais impossible avec un navigateur web de communiquer ensuite...

    Je n'ai rien contre Node.JS, c'est un défis, réussi à faire un véritable terminal depuis un navigateur et ceux avec un websocket en PHP et en utilisant xterm ou un autre pour l'aspect client. Pouvoir utiliser vi, top et d'autre commande bi-directionnel.

    Je sais que c'est possible (en tout cas, j'ai une piste) https://github.com/walkor/phptty

Discussions similaires

  1. Réponses: 1
    Dernier message: 22/09/2005, 15h46
  2. [SGBD] requête sql en php pour mysql
    Par Thierry8 dans le forum Requêtes
    Réponses: 1
    Dernier message: 20/09/2005, 22h31
  3. aides pour script en shell
    Par komatek dans le forum Langages de programmation
    Réponses: 2
    Dernier message: 12/08/2003, 15h36
  4. [Kylix] probleme pour lancer le shell
    Par miky dans le forum EDI
    Réponses: 5
    Dernier message: 13/08/2002, 09h39

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