Я пытаюсь отправить строку на php-сервер, но по какой-то причине Im не смог прочитать строку на сервере ... Я пробовал много способов набрать ее, но это похоже, я никогда не получал правильный синтаксис. У кого есть подсказки?Отправьте строку на php-сервер и используйте его
var command="";
if(document.getElementById("Text_1").value != "" && document.getElementById("Text_2").value != "")
{
command += " " + document.getElementById("Text_1").value + " " + document.getElementById("Text_2").value;
}
alert(command);
xmlhttp.open("POST", "server.php", false);
xmlhttp.setRequestHeader('info', command)
//TRIED xmlhttp.setRequestHeader("info, command")
//TRIED xmlhttp.setRequestHeader('info', 'command')
//TRIED many others sketchy things...
xmlhttp.send();
//TRIED xmlhttp.send(command);
var output = xmlhttp.responseText;
на PHP сервере:
<?php
$parameter = $_POST['command'];
$output = exec("someexecutable.exe $parameter");
echo json_encode($parameter);
?>
Для них интересно, если я жёстко $ параметр с правой строки, она работает, так что исполняемый файл не является проблемой. Сервер просто не может получить значение строки в $ _POST.
Что значение команды перед отправкой? Тогда каково значение массива $ _POST? –
Вы * можете * использовать ['escapeshellarg'] (http://php.net/escapeshellarg) в своем' $ parameter'. Я могу сделать довольно неприятные вещи (хуже, чем просто SQL-инъекции), если я могу запускать на вашем сервере произвольные команды! –
Пока значение команды является конкатенацией text_1 и text_2, поэтому я действительно подтвердил, что строка, которую я отправляю, хороша. Для $ _POST я не знаю, поскольку с его серверной стороны я понятия не имел, как проверить это, потому что я не могу использовать такие вещи, как alertbox, чтобы всплывать содержимое. Я попытался просто поймать его на сервере и бросить обратно, чтобы прочитать его на стороне клиента javascript, но он не работает. Он бросил меня назад. Но я получил эту ошибку: Undefined error index: command. – MacGruber