Bonjour, je contre un problème d'utilisation de variables php dans des pages sur un autre serveur.

Donc dans le cas présent, je souhaiterais d'une première page php, executer par ssh une seconde page php comprenant la variable de la première page.

page1.php

<?php
$identifiant = $_POST['identifiant'];
$ip = $_POST['ip'];
$port = $_POST['port'];

//Les variables sont visibles ici bien sur! , elle viennent d'une requete ajax jquery

$connection_string = ssh2_connect($ip, $port);

// $connection_string = ssh2_connect('127.0.0.1', 22);

if (@ssh2_auth_password($connection_string, 'root', 'MDP'))
{

}
else
{
    throw new Exception("Authentication failed!");
    echo'Connexion échouée, le serveur est surement down ! ';
}
$stream = ssh2_exec($connection_string, 'php /var/www/html/autre.php '.$identifiant);

stream_set_blocking($stream, true);

$stream_out = ssh2_fetch_stream($stream, SSH2_STREAM_STDIO);
echo stream_get_contents($stream_out);
?>

Dans le code ci dessus, cette page se connecte à un autre serveur et execute le script demandé correctement (testé), mais par contre il ne lui transmet pas la variable , enfin, au bout je n'arrive pas à la lire, donc c'est soit que je ne sais pas la récupéré sur la deuxième page soit ..

Voila la deuxième page qui n'arrive pas à lire la variable $identifiant :

script.php

<?php

$variable = shell_exec("sudo /usr/sbin/repquota /home|/bin/grep ^".$identifiant."|/usr/bin/awk '{printf \$4/1024/1024}'");

//Sert juste à tester si il arrive à lire ma variable $identifiant au final

file_put_contents("/root/connerie/test.txt", $variable, FILE_APPEND);
?>

J'ai tenté bétement d'ajouter juste au dessus

$identifiant = $_POST['identifiant'];

Alors que sa n'a aucun sens.. mais bon , sa ne marche quand même pas xD

Je pense que le problème est au niveau de l'export de la variable identifiant.

Dans un script bash j'aurais fait

export identifiant

mais la avec un fichier php je ne vois pas

Merci à l’âme charitable !

2 réponses


woozy
Réponse acceptée

Si je me base sur ça :

<?php
$stream = ssh2_exec($connection_string, 'php /var/www/html/autre.php '.$identifiant);
?>

Ton fichier script.php

<?php
$identifiant = $argv[1];
$variable = shell_exec("sudo /usr/sbin/repquota /home|/bin/grep ^".$identifiant."|/usr/bin/awk '{printf \$4/1024/1024}'");
//Sert juste à tester si il arrive à lire ma variable $identifiant au final

file_put_contents("/root/connerie/test.txt", $variable, FILE_APPEND);
?>

ton $argv[0] va etre le nom de ta page...
puis $argv[1] = 1er argument
$argv[2] = 2eme argument etc

donc si tu veut identifiant + password :

<?php
$stream = ssh2_exec($connection_string, "php /var/www/html/autre.php $identifiant $password");
?>
<?php
$identifiant = $argv[1];
$password = $argv[2];
$variable = shell_exec("sudo /usr/sbin/repquota /home|/bin/grep ^".$identifiant."|/usr/bin/awk '{printf \$4/1024/1024}'");
//Sert juste à tester si il arrive à lire ma variable $identifiant au final

file_put_contents("/root/connerie/test.txt", $variable, FILE_APPEND);
?>

Merci le sujet à été résolu hier soit 23H, avec exactement ton type de réponse ;)
Merci beaucoup d'avoir répondu , avec exemple en plus quoi de mieux ! :)