Я новичок здесь и на php.
Я запускаю простой php-код для ssh на удаленном сервере и выполняю длинную команду:
ldapsearch -b o=Devices -h 24.33.42.43 -D "uid=aaa_user,ou=AppUsers,o=services" -w "authAuthAcc01" rrWiFiDeviceMAC="A4-F1-E8-24-6B-28"
для определенного MAC-адреса A4-F1-E8-24-6B-28 .Я использовал форму для ввода MAC-адреса, а затем отправил команду ssh на сервер linux перед выполнением команды выше.echo $CMD
отобразит полную команду на странице, указывающую, что $var=$_POST[]
работает.Однако код не будет работать с функцией ssh2.Это как $var
становится пустым или что-то.Но если я жестко кодирую $var
и запускаю из командной строки PHP, это работает.Пожалуйста, что я делаю не так!
Спасибо за вашу помощь.
<form action="MAC_search.php" method="post">
Enter MAC Address to Search:<input type="text" name="mac">
<input type="submit" name='submit' value ='Search' />
</form>
<?php
if ($_POST["submit"] ){
$MACD=$_POST['mac'];
//$MACD='F8-62-14-E9-F7-51'; *****Hardcoding here works*****
$CMD = "ldapsearch -b o=Devices -h 24.33.33.5 -D \"uid=a .
aa_user,ou=AppUsers,o=services\" -w \"authAuthAcc01\"
rrWiFiDeviceMAC=\"$MACD\"";
echo $CMD; **** Here echos on the page also *******
$connection = ssh2_connect("x.x.x.x", 22);
ssh2_auth_password($connection, $username, $password);
$stream = ssh2_exec($connection, "$CMD");
stream_set_blocking($stream, true);
$output = stream_get_contents($stream);
$resultfile = fopen("data.txt", "w") or die("unable to open
file");
fwrite($resultfile, $output);
fclose($myfile);
}
?>