Contenu | Rechercher | Menus

Annonce

Si vous rencontrez des soucis à rester connecté sur le forum (ou si vous avez perdu votre mot de passe) déconnectez-vous et reconnectez-vous depuis cette page, en cochant la case "Me connecter automatiquement lors de mes prochaines visites".

#1 Le 06/01/2013, à 23:36

temps

[résolu]Lancer un shell en html

Bonjour,
Je voudrai lancer une commande linux sur un serveur en utilisant un lien.
Est-ce que quelqu'un sait comment je peux faire ?
C'est pour cette page http://www.letime.net/abadie_jo/index.html

J'avais réalisé cela il y a quelque années quand j'avais créé Gkri, une application qui permettait de créer des cours en ligne avec des questions ouvertes et les réponses étaient analysées par le serveur. Mais bien que j'ai finalisé le projet, sans succès de celui-ci je n'ai pas continué à payer l'hébergement, le nom a été récupéré et les codes sont perdue.
Je ne me souviens plus de comment j'avais fait.
Cordialement

Dernière modification par temps (Le 13/01/2013, à 12:27)


Parce que l'USB bootable est le support des systèmes experts,
Parce que l'USB bootable contient sa propre image au démarrage.
L'USB bootable permet de créer un monde à la dimension de son imagination

Hors ligne

#2 Le 07/01/2013, à 03:17

Maisondouf

Re : [résolu]Lancer un shell en html

En html, c'est impossible.
En PHP, il existe plusieurs fonctions pour lancer des commandes sur le serveur.
Mais si tu ne veux qu'analyser le résultat de la saisie, il vaut mieux tout faire en PHP (ou en javascript) plutôt que lancer un batch sur le serveur.


ASUS M5A88-v EVO avec AMD FX(tm)-8120 Eight-Core Processor,  OS principal Precise 12.04.1 LTS 63bits½
Bricoleur, menteur, inculte, inadapté social et mythomane, enfin d'après certains....
"the secret of my form is summed up in two words, no sport" (Winston Churchill)

Hors ligne

#3 Le 07/01/2013, à 06:01

tiramiseb

Re : [résolu]Lancer un shell en html

temps a écrit :

Je voudrai lancer une commande linux sur un serveur en utilisant un lien.

Documente-toi sur les CGI, ça peut répondre à ton besoin.


Mais bon, de nos jours les CGI sont de moins en moins utilisés au profit d'applications web, plus performants et plus pratiques à programmer.


Sébastien Maccagnoni-Munch - administrateur Linux depuis le XXème siècle
Consultant informatique indépendant - http://www.smm-informatique.fr
Geek et tout plein d'autres choses - http://www.tiramiseb.fr

En ligne

#4 Le 07/01/2013, à 14:01

temps

Re : [résolu]Lancer un shell en html

Merci pour les réponses, avant de posté, j'avais commencé à regarder du coté php, j'ai bien donné les droits d’exécution à l'appli , mais j'ai du rater un passage, je vais y retourner.
En regardant la page, on voit bien que toute la gestion est déja faite, il ne me reste plus qu'à créer un lien qui lance l'application (le code est donnée dans l'onglet juste à coté). Je doute qu'un jour les appli des navigateurs soient adaptées à l'appli que j'ai créé, à moins que mon appli soit intégrée tel quel, mais alors il y a pas mal de cartes audio à changer.
Cordialement


Parce que l'USB bootable est le support des systèmes experts,
Parce que l'USB bootable contient sa propre image au démarrage.
L'USB bootable permet de créer un monde à la dimension de son imagination

Hors ligne

#5 Le 07/01/2013, à 14:21

tiramiseb

Re : [résolu]Lancer un shell en html

Cartes audio !? C'est quoi cette application ?


Sébastien Maccagnoni-Munch - administrateur Linux depuis le XXème siècle
Consultant informatique indépendant - http://www.smm-informatique.fr
Geek et tout plein d'autres choses - http://www.tiramiseb.fr

En ligne

#6 Le 07/01/2013, à 20:32

temps

Re : [résolu]Lancer un shell en html

Bonjour,
Cette précision est hors sujet, et n'est la que pour répondre à la question, dès que j'ai un code qui marche je poste la solution.
C'est un format audio répondant aux lois physiques, de la modélisation. J'ai entrepris ce projet il y a un peu plus de trois ans quand je me suis aperçu que tous les formats audio imitaient, puis expérimentaient différentes formes de compression.
Le format audio a repris la tradition du libre sur le hard, il y a un peu plus d'un an quand je me suis aperçu que la technologie d'aujourd'hui des cartes audio déformaient les sons. Ceci pour trois raisons, la principale provenant des filtres actuels.
Il reste les traces sur ce forum des premiers bash que je concaténait pour obtenir les premières phrases en aiff et déja le format audio était beaucoup plus léger, jusqu'à aujourd'hui.
L'application que j'ai mis en ligne sert à faire connaître le principe car nous venons de lancer la demande de devis de fabrication de la carte version 3.02 et comme en 3 ans nous avons trouvé que des portes financières closes, j'ai bien compris que les cartes ne profiterons qu'à une élite du libre. Une élite du libre qui va pouvoir avoir toutes les musiques d'une grande qualité, extrêmement léger, sur des appareil consommant très peu d’énergie. Surtout que j'ai bloqué toute utilisation commerciale.
Il s'entend que le vrai format audio jo est bien différent de ce que je suis obligé d'écrire pour être compatible avec la technologie d'aujourd'hui.
Cordialement


Parce que l'USB bootable est le support des systèmes experts,
Parce que l'USB bootable contient sa propre image au démarrage.
L'USB bootable permet de créer un monde à la dimension de son imagination

Hors ligne

#7 Le 12/01/2013, à 12:05

temps

Re : [résolu]Lancer un shell en html

Un petit up, car ça veut pas faire
J'arrive a faire afficher la version de php, à la changer.
j'arrive à faire afficher le chemin absolue.
Mais ça s'arrête la, je n'arrive pas à exécuter la moindre commande.
J'ai testé toutes celles que j'ai trouvées.
Si quelqu'un a une piste, je suis preneur.
Cordialement


Parce que l'USB bootable est le support des systèmes experts,
Parce que l'USB bootable contient sa propre image au démarrage.
L'USB bootable permet de créer un monde à la dimension de son imagination

Hors ligne

#8 Le 12/01/2013, à 12:14

tiramiseb

Re : [résolu]Lancer un shell en html

Peux tu nous montrer ce que tu essaies de faire (code que tu as écrit,  configuration,  etc), le résultat que tu attends et le résultat que tu obtiens (y compris contenu des logs) ?


Sébastien Maccagnoni-Munch - administrateur Linux depuis le XXème siècle
Consultant informatique indépendant - http://www.smm-informatique.fr
Geek et tout plein d'autres choses - http://www.tiramiseb.fr

En ligne

#9 Le 12/01/2013, à 14:15

temps

Re : [résolu]Lancer un shell en html

Bonjour,
merci pour la réponse.
Les codes de l'appli sont déja donnés en ligne et les droits sont indiqués.
Les codes php qui permettent de remplir les fichiers qui vont être traité par l'application, sont standart, ne posent pas de problème en php4, je peux les donner si quelqu'un est intérésé.
Le problème c'est le php qui lance l'appli que je n'arrive pas à faire fonctionner, voici son code

<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr-fr" lang="fr-fr" >
    <head>
        <meta charset="utf-8">
  <meta name="keywords" content="Exercice sur les sons">
  <meta name="description" content="Exercice sur les sons">
  <meta name="GENERATOR" content="Abadie joris">
<title>Exercice sur les sons</title>
	<meta name="author" content="Abadie joris">
<META NAME="dcterms.rights" CONTENT="Licence Creative Commons ">



    </head>
<body>

<? 

$joris1 = "/monchemindur/joris.wav";
$joris2 = "/monchemindur/entetebase.wav";
$joris3 = "/monchemindur/entete.txt";
$joris4 = "/monchemindur/montage.joa";
$commande = "/monchemindur/ImagineVoix";



   if (is_file($joris1)){
     unlink($joris1);  
}
 
   if (is_file($joris2)){
     unlink($joris2);  
}
   if (is_file($joris3)){
     unlink($joris3);  
}
   if (is_file($joris4)){
     unlink($joris4);  
}

$CR_exec = system($commande);






?>
</body>
</html>

L'application est conçue pour créer 4 fichiers, facilement récupérable par

wget -c

pour que chacun puisse analyser le cheminement de ce qui se passe
Codialement

Dernière modification par temps (Le 12/01/2013, à 14:20)


Parce que l'USB bootable est le support des systèmes experts,
Parce que l'USB bootable contient sa propre image au démarrage.
L'USB bootable permet de créer un monde à la dimension de son imagination

Hors ligne

#10 Le 13/01/2013, à 03:31

Maisondouf

Re : [résolu]Lancer un shell en html

Alors, premièrement, lorsque le php est exécuté par Apache, il est considéré comme l'utilisateur "www-data" du groupe "www-data".
Dans une configuration de base d'Apache, il ne peut normalement pas sortir de son répertoire de base /var/www.
Étant donné que tu fais des "wget" dans ton ImagineVoix et qu'il est lancé par ton PHP, il va aussi s'exécuter en tant que "www-data" et il faudra qu'il ait les droits d'écriture dans le répertoire où il est censé écrire.
Ce que je te conseille pour plus de sécurité, c'est de créer un sous répertoire de "monchemindur" (par exemple : monchemindur/data ), de lui coller les attributs rw pour tout le monde et de faire tes wget dedans.
Mais tu pourrais faire les "wget" directement depuis le PHP, il existe des fonction pour ça.


ASUS M5A88-v EVO avec AMD FX(tm)-8120 Eight-Core Processor,  OS principal Precise 12.04.1 LTS 63bits½
Bricoleur, menteur, inculte, inadapté social et mythomane, enfin d'après certains....
"the secret of my form is summed up in two words, no sport" (Winston Churchill)

Hors ligne

#11 Le 13/01/2013, à 08:53

temps

Re : [résolu]Lancer un shell en html

Merci pour la réponse et les explications.

Au sujet des droits, en regardant l'appli et le code, on voit très bien que le php écrit dans 10 fichiers avant la partie qui pose problème (celle que j'ai postée au dessus), soit lancée. Donc je ne pense pas que ce soit un problème de droits, mais je n'ai pas les clefs du serveur, juste l'administration de mon espace disque.
Je ne sais pas ou est l'erreur, j'envisage que peut-être il y a des règles spéciales chez mon hebergeur (OVH), que peut être il y a un langage php aux termes spécifiques chez mon hébergeur, je pense que mon code fonctionne si je monte un lamp,
J'ai contacté le support OVH qui m'a répondu que c'est moi qui codait mal, donc lancer l'appli sur le serveur est possible mais je ne sais toujours pas comment.
Cordialement


Parce que l'USB bootable est le support des systèmes experts,
Parce que l'USB bootable contient sa propre image au démarrage.
L'USB bootable permet de créer un monde à la dimension de son imagination

Hors ligne

#12 Le 13/01/2013, à 11:05

tiramiseb

Re : [résolu]Lancer un shell en html

Désolé, ce que tu veux mettre en place me semble particulièrement complexe.
Je n'ai pas envie (et pas le temps) de me plonger dans tout ça pour essayer de commencer à pouvoir peut-être comprendre où éventuellement je pourrais à la limite trouver ce qui pourrait ou ne pourrait pas planter.

Je te suggère de faire un script  PHP simple qui fait un minimum d'opérations et avec lequel tu rencontres la même erreur. D'une part ça te permettrait peut-être de résoudre ton problème seul, d'autre part ça nous permettrait de t'aider sans avoir à passer des heures à essayer de tout comprendre.

Merci !



PS: en réponse à ma demande "peux tu nous montrer ce que tu essaies de faire, le résultat que tu attends et le résultat que tu obtiens ?" tu  n'as indiqué ni le résultat précis que tu attends ni le résultat précis que tu obtiens.

Dernière modification par tiramiseb (Le 13/01/2013, à 11:06)


Sébastien Maccagnoni-Munch - administrateur Linux depuis le XXème siècle
Consultant informatique indépendant - http://www.smm-informatique.fr
Geek et tout plein d'autres choses - http://www.tiramiseb.fr

En ligne

#13 Le 13/01/2013, à 11:58

temps

Re : [résolu]Lancer un shell en html

Merci,
C'est ce que j'ai fat dès le début, en me contentant de demander l'effacement d'un simple fichier en php, voici le code

<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr-fr" lang="fr-fr" >
    <head>
        <meta charset="utf-8">
  <meta name="keywords" content="Exercice sur les sons">
  <meta name="description" content="Exercice sur les sons">
  <meta name="GENERATOR" content="Abadie joris">
<title>Exercice sur les sons</title>
	<meta name="author" content="Abadie joris">
<META NAME="dcterms.rights" CONTENT="Licence Creative Commons ">



    </head>
<body>

<? 

$joris1 = "/ovhendur/www/abadie_jo/traitements/a/joris.wav";

?>

<form action="<?$PHP_SELF;?>">

</form>


</body>
</html>

<?
if(file_exists($joris1))
{
   unlink($joris1); 
 }

?>

Dernière modification par temps (Le 13/01/2013, à 12:02)


Parce que l'USB bootable est le support des systèmes experts,
Parce que l'USB bootable contient sa propre image au démarrage.
L'USB bootable permet de créer un monde à la dimension de son imagination

Hors ligne

#14 Le 13/01/2013, à 12:33

temps

Re : [résolu]Lancer un shell en html

Merci pour ceux qui se sont pencher sur le problème.
A force d'envoyer et tester des lignes php, toutes celles trouvées sur la toile et d'autre que j'ai essayé des doc.
Après plusieurs jours, j'ai pensé à essayer du tux, en direct, et voila pour effacer les fichiers ça marche, enfin je commence à espérer une solution,
je poste le code en dessous.
et reviendrai plus tard si j'arrive à tout faire pour donner le code.

    </head>
<body>

<? 

$joris1 = "monidentifiantOVH/www/abadie_jo/traitements/a/joris.wav";
if(file_exists($joris1))
{
$suprime1=rm $joris1; 
 }

?>

</body>
</html>

Cordialement


Parce que l'USB bootable est le support des systèmes experts,
Parce que l'USB bootable contient sa propre image au démarrage.
L'USB bootable permet de créer un monde à la dimension de son imagination

Hors ligne

#15 Le 13/01/2013, à 19:22

Maisondouf

Re : [résolu]Lancer un shell en html

Si tu veux tu peux charger un émulateur MS-DOS et faire "del joris" aussi..
La fonction 'unlink' de PHP est la même sur tous les PHP de la terre et OVH n'a pas un PHP "espécial de course" pour lui.
Le soucis vient à coup sur du path que tu donnes:

$joris1 = "/ovhendur/www/abadie_jo/traitements/a/joris.wav";

Ton "ovhendur" n'est pas forcément ce que toi tu vois depuis le ftp ou le ssh.
Il faut demander à PHP l'endroit où il est en train de s'exécuter et en déduire "ovhendur" pour constituer ensuite ta variable "$joris1".
Pour cela il y a realpath() à utiliser comme ça pour connaître le path réel d'exécution.

$real=realpath('.');

Ensuite tu as plein de solution simple pour découper tout ça en rondelle et retrouver tes petits

$path=realpath(".");
echo '<br>real_path : '.realpath(".");
echo '<br/><br/>';
$path_parts = pathinfo($path);
echo $path_parts['dirname'], "<br>";
echo $path_parts['basename'], "<br>";
echo $path_parts['extension'], "<br>";
echo $path_parts['filename'], "<br>"; // since PHP 5.2.0

$p=explode('/',$path);
echo '<pre>';
var_dump($p);
echo '</pre>';

ASUS M5A88-v EVO avec AMD FX(tm)-8120 Eight-Core Processor,  OS principal Precise 12.04.1 LTS 63bits½
Bricoleur, menteur, inculte, inadapté social et mythomane, enfin d'après certains....
"the secret of my form is summed up in two words, no sport" (Winston Churchill)

Hors ligne

#16 Le 13/01/2013, à 21:20

temps

Re : [résolu]Lancer un shell en html

Bonjour, merci pour les infos mais la commande

unlink

ne marche pas sur mon serveur chez OVH, je l'ai marié à toutes les sauces sans succès.
Le chemin en dur est bon, puisque j'arrive à utiliser la commande rm, d'ailleurs dès le début, il y a presque une semaine j'ai créé deux fichiers php

le premier ou.php contenant

  <HTML><BODY>
  <?php
    phpinfo();
  ?>
  </BODY></HTML>

et le second ou1.php

  <HTML><BODY>
<? echo realpath('ou1.php'); ?> 
  <HTML><BODY>

Pour la condition, j'ai testé les deux formes

is_file

et

if (file_exists(

sans succès

Dernière modification par temps (Le 13/01/2013, à 21:24)


Parce que l'USB bootable est le support des systèmes experts,
Parce que l'USB bootable contient sa propre image au démarrage.
L'USB bootable permet de créer un monde à la dimension de son imagination

Hors ligne

#17 Le 13/01/2013, à 22:15

Maisondouf

Re : [résolu]Lancer un shell en html

Je ne vois pas pourquoi cette fonction PHP de base ne marcherait pas sur un serveur OVH.
J'en ai 5 à gérer et je te certifie qu'il y a des "unlink" dans le code et que ça marche.
Mets ce petit bout de php dans un répertoire vide de ton serveur et lances le pour voir la config.

<?php
$old=error_reporting(E_ALL);

$fh = fopen('test.txt', 'a');
if ( !$fh ) {
   echo "ouverture impossible<br>";
   print_r(error_get_last());
   exit;
}
   
fwrite($fh, 'je suis le contenu');
fclose($fh);

$dd=scandir(".");
echo "<pre>";
var_dump($dd);
echo "<br><br><br>";
$fh=unlink('test.txt');
if ( !$fh ) {
   echo "effacement impossible<br>";
   print_r(error_get_last());
   exit;
}

$dd2=scandir(".");
var_dump($dd2);
echo "</pre>";

error_reporting($old);
?>

ASUS M5A88-v EVO avec AMD FX(tm)-8120 Eight-Core Processor,  OS principal Precise 12.04.1 LTS 63bits½
Bricoleur, menteur, inculte, inadapté social et mythomane, enfin d'après certains....
"the secret of my form is summed up in two words, no sport" (Winston Churchill)

Hors ligne

#18 Le 13/01/2013, à 23:54

temps

Re : [résolu]Lancer un shell en html

Je sais que fopen fonctionne puisque je crée tous les fichiers de données comme ça.
Je viens de mettre le fichier et de le lancer, la page web affiche

Fatal error: Call to undefined function: scandir() in /endur/monlogin//www/test/test.php on line 14

je retourne sur le serveur récupérer le reste

Un fichier txt est apparu contenant

je suis le contenu

En reflechissant, j'ai pensé que peut-être le code est prévu pour du php5,
aussi j'ai renommé test.php en test.php5 et cette fois ci en lançant la page j'ai obtenue

array(4) {
  [0]=>
  string(1) "."
  [1]=>
  string(2) ".."
  [2]=>
  string(9) "test.php5"
  [3]=>
  string(8) "test.txt"
}



array(3) {
  [0]=>
  string(1) "."
  [1]=>
  string(2) ".."
  [2]=>
  string(9) "test.php5"
}

Dernière modification par temps (Le 14/01/2013, à 00:40)


Parce que l'USB bootable est le support des systèmes experts,
Parce que l'USB bootable contient sa propre image au démarrage.
L'USB bootable permet de créer un monde à la dimension de son imagination

Hors ligne

#19 Le 14/01/2013, à 00:56

temps

Re : [résolu]Lancer un shell en html

J'avance encore, je me suis aperçu qu'en changeant l'extension .php  par .php5 unlink fonctionnait.

j'avais changé au debut php4 en php5 en utilisant .htaccess, mais la fonction fopen ne marchait plus aussi je suis retourné sous php4


Parce que l'USB bootable est le support des systèmes experts,
Parce que l'USB bootable contient sa propre image au démarrage.
L'USB bootable permet de créer un monde à la dimension de son imagination

Hors ligne

#20 Le 20/01/2013, à 03:17

temps

Re : [résolu]Lancer un shell en html

Et voila, l'application fonctionne maintenant.
Pour pouvoir la faire fonctionner, j'ai compilé l'application sur le serveur, et ensuite j'ai corrigé l'erreur dans mes codes qui lançait l'application en plaçant un point devant le slash

./

, alors qu'en fait quand nous lançons une application sans être dans le répertoire il faut écrire le chemin complet sans mettre de point devant comme je le faisais, en d'autres mots, il faut écrire

/var/www/appli/lance.bin

Cordialement

Dernière modification par temps (Le 20/01/2013, à 03:18)


Parce que l'USB bootable est le support des systèmes experts,
Parce que l'USB bootable contient sa propre image au démarrage.
L'USB bootable permet de créer un monde à la dimension de son imagination

Hors ligne

#21 Le 20/01/2013, à 04:33

Maisondouf

Re : [résolu]Lancer un shell en html

Si tu as un accès ssh, tu devrais désinstaller php4 complètement, php5 est retro-compatible.


ASUS M5A88-v EVO avec AMD FX(tm)-8120 Eight-Core Processor,  OS principal Precise 12.04.1 LTS 63bits½
Bricoleur, menteur, inculte, inadapté social et mythomane, enfin d'après certains....
"the secret of my form is summed up in two words, no sport" (Winston Churchill)

Hors ligne

#22 Le 20/01/2013, à 11:22

temps

Re : [résolu]Lancer un shell en html

Bonjour,
chez ovh, il suffit d'indiquer la version de php5 dans le fichier htaccess

pour PHP 5.2 :

    SetEnv PHP_VER 5


pour PHP 5.3 :

    SetEnv PHP_VER 5_3


pour PHP 5.4 :

    SetEnv PHP_VER 5_4

pour passer en php5, mais malheusement ce n'est pas rétro-compatible.
Quand j'ai rencontré des problèmes, c'est une des premières choses que j'avais faite, mais je me suis aperçu que ma technique pour écrire avec des règles dans les fichiers de valeurs numériques fondatrice ne fonctionnait pas.
En d'autres mots, ma technique php pour écrire les données n'est pas compatible php5, mais fonctionne très bien en php4

Par contre, il semble qu'il y ai un dysfonctionnement dans l'écriture du temps se trouvant dans l'entete des fichiers audio. Il faut que je regarde plus, car sur mes PC le code fonctionne très bien quand je lance l'appli sur le serveur en ssh, il fonctionne très bien, mais quand je lance l'appli en php il me semble qu'il y a une déformation. Je vérifierai la semaine prochaine. De toutes façon, le concept est détaillé et rien n'empèche chacun de découvrir en attendant que je puisse produire les cartes audio linux, qui vont permettre vraiment de donner la puissance à la technique et faire naitre un nouveau monde de l'audio incomparable aux systèmes archaïques du moment destinés au monde commercial.

Cordialement

Dernière modification par temps (Le 20/01/2013, à 11:24)


Parce que l'USB bootable est le support des systèmes experts,
Parce que l'USB bootable contient sa propre image au démarrage.
L'USB bootable permet de créer un monde à la dimension de son imagination

Hors ligne

Haut de page ↑