Programme interactif via SSH depuis PHP

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : Programme interactif via SSH depuis PHP

Re: Programme interactif via SSH depuis PHP

par Hywan » 05 nov. 2009, 15:47

Le système de flux de PHP est une vraie merveille :-). Si tu mets le nez dedans, tu as du mal à en sortir ;-).

Re: Programme interactif via SSH depuis PHP

par Ranzal » 05 nov. 2009, 15:27

Effectivement, je viens de résoudre mon problème. Il suffit de lire dans le flux avec fread() ou fgets(), et d'y écrire avec fwrite().

Je m'y intéressait car on m'a dit d'aller voir du côté des flux, et dans la doc des flux, je suis tombé sur des méthodes comme streamRead() qui me paraissaient adaptés.
Mais en fait, fgets() et fwrite() font très bien l'affaire.

Merci pour ces précisions sur les stream wrappers !

Re: Programme interactif via SSH depuis PHP

par Hywan » 05 nov. 2009, 11:09

Hey :-),

C'est normal d'avoir une erreur car streamWrapper n'existe pas, c'est un prototype. Ça aurait pu être une interface remarque …
En fait, c'est juste un mémo qui rassemble toutes les méthodes qui sont susceptibles d'être appelées sur un objet qui est enregistré comme stream wrapper.
Tu n'es pas obligé de tout implémenter (mais c'est préférable si tu veux éviter des erreurs, ça dépend de ton implémentation).

La documentation le précise bien d'ailleurs :
Note: This is NOT a real class, only a prototype of how a class defining its own protocol should be.
Édition : d'ailleurs, les stream wrappers n'ont pas de rapport avec ton problème. Pourquoi t'y intéresses-tu ?

Re: Programme interactif via SSH depuis PHP

par Ranzal » 04 nov. 2009, 23:01

En fait, je ne comprends pas bien comment utiliser un streamWrapper...
D'après la doc, la classe est définie de base dans PHP, donc il n'y a rien à installer en plus.
Pourtant, quand j'appelle streamWrapper::stream_read(32), j'obtiens une erreur "Fatal error: Class 'streamWrapper' not found". J'obtiens la même erreur lorsque j'essaye de créer une instance de streamWrapper.
Il y a donc une pièce manquante au puzzle... faut-il inclure (ou importer) la classe dans mon fichier .php avant de pouvoir l'utiliser ? Y a-t-il autre chose qui m'échappe ?

Toute aide serait la bienvenue.

Re: Programme interactif via SSH depuis PHP

par Ranzal » 30 oct. 2009, 17:57

Merci d'avoir répondu rapidement, je vais y jeter un oeil !

Re: Programme interactif via SSH depuis PHP

par mojorisin » 30 oct. 2009, 15:55

Il te faut regarder du coté des fonctions stream Flux avec php

Programme interactif via SSH depuis PHP

par Ranzal » 29 oct. 2009, 22:51

Bonjour !

Je dois exécuter un programme interactif en mode texte sur un serveur distant depuis un autre serveur (web). Je me connecte à partir du serveur web au serveur distant à l'aide des fonctions de la bibliothèque PHP: SSH2.
J'arrive à exécuter le programme après m'être authentifié, mais le problème, c'est que ce programme est interactif : il attend mes réponses à ses questions (avec des scanf). D'où mon problème : comment lui envoyer mes réponses (il lit sur l'entrée standard) ?

Note : Les deux serveurs (cible avec le programme en question, et web) sont sous Linux.

Merci de m'éclairer...