2017-07-11 56 views
-1

我有一个包含数字和消息文本框的表单。表单提交后,我正在运行一个用于发送文本消息的可执行文件。我想获得用户输入,这是数字和消息以及exe文件。PHP执行Shell命令时传递参数

,这里是我的代码以我的形式:

<?php 
if($_POST['submit']){ 
    $to = $_POST['to']; 
    $msg = $_POST['message']; 
    exec('START C:\SMS\abc.exe -Compose $to $msg'); 
    echo "Message Sent"; 
} 
?> 

<form action="<?php echo $_SERVER['REQUEST_URI']?>" method="POST"> 
    <label class="control-label">To:</label> 
    <input type="text" class="form-control" name="to"> 
    <textarea class="inbox-editor form-control" name="message" rows="12"></textarea> 
    <input type="submit" class="btn blue" value="Send" id="submit" name="submit"/> 
</form> 

它读取“$ to”和“$消息”,而不是在文本框中输入的值。

+1

时间对一些基础知识:http://php.net/manual/en/language.types.string.php#language.types.string.parsing – CBroe

+0

可不可以给样本命令行中的语法? –

+0

而不是'exec',尝试输入'die'。它不会发送消息,而是输出字符串。这将允许你看到实际的命令。 – Martijn

回答

1

请尝试

$output = shell_exec('START C:\SMSCaster\smscaster.exe -Compose ' . $to . ' "' . $msg . '" -Queue 1'); 
+0

您好先生@Dolly,我转移我的代码在服务器计算机上,然后当我试着运行这些代码相同的代码它不会启动/运行exe文件,但它的命令提示符工作。对于这个跟进问题抱歉先生。 – Chris

+0

通常是串联字符串的问题。请看单引号''',dit'.'和'''双引号的用法 –

+0

字符串不是错误的先生。我认为它是因为apache运行在服务上,但我不知道如何解决它。它试图改变自动启动到手动。 – Chris