Phpseclib NET/SSH2 извлекает переменную из формы сообщения

Я пытаюсь получить переменные 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

Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Symfony Station Communiqué - 7 июля 2023 г
Symfony Station Communiqué - 7 июля 2023 г
Это коммюнике первоначально появилось на Symfony Station .
Оживление вашего приложения Laravel: Понимание режима обслуживания
Оживление вашего приложения Laravel: Понимание режима обслуживания
Здравствуйте, разработчики! В сегодняшней статье мы рассмотрим важный аспект управления приложениями, который часто упускается из виду в суете...
Установка и настройка Nginx и PHP на Ubuntu-сервере
Установка и настройка Nginx и PHP на Ubuntu-сервере
В этот раз я сделаю руководство по установке и настройке nginx и php на Ubuntu OS.
Коллекции в Laravel более простым способом
Коллекции в Laravel более простым способом
Привет, читатели, сегодня мы узнаем о коллекциях. В Laravel коллекции - это способ манипулировать массивами и играть с массивами данных. Благодаря...
Как установить PHP на Mac
Как установить PHP на Mac
PHP - это популярный язык программирования, который используется для разработки веб-приложений. Если вы используете Mac и хотите разрабатывать...
0
0
160
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий
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. :)

James 23.05.2019 05:27

Другие вопросы по теме