Я пытаюсь получить переменные POST в моем $ssh->exec. Переменные сообщения не используются в команде. Я хочу, чтобы $domain и $password использовались в adduser, как показано ниже.
Я запускаю это на сервере centos 7 php 7.3. Я могу вывести переменную, но я не могу использовать ее в команде.
Я могу вывести $domain, а также $password.
Пример поста был
имя пользователя: adada.com а также Пароль:passwordwe3
Эта команда с введенными строками работала нормально.
set_include_path(get_include_path() . PATH_SEPARATOR . '/var/www/html/phpsec');
include ('Net/SSH2.php');
$ssh = new Net_SSH2('hostname');
if (!$ssh->login('username', 'password')) {
exit('Login Failed');
}
$domain = $_POST['domain'];
$password = $_POST['password'];
echo $ssh->exec('adduser $domain -m -p $password -d /var/www/shared/$domain/public_html');
echo $ssh->exec('su $domain');
echo $ssh->exec('pwd');
die();
Ошибка формы следующая. adduser: неверное имя пользователя '/var/www/shared//public_html'/root






echo $ssh->exec('adduser $domain -m -p $password -d /var/www/shared/$domain/public_html');
echo $ssh->exec('su $domain');
Вы используете одинарные кавычки, когда вы должны использовать двойные кавычки. Попробуй это:
echo $ssh->exec("adduser $domain -m -p $password -d /var/www/shared/$domain/public_html");
echo $ssh->exec("su $domain");
Кроме того, передача этих переменных через побегшелларг, вероятно, является хорошей идеей.
Спасибо, что объяснили это. Это сработало! Я все еще очень многому учусь и пытаюсь бегать, прежде чем ходить! Еще раз спасибо за ваше время и помощь. Сейчас проверю escapeshellarg. :)