【问题标题】:Write a text file from user input on a website to populate variables从网站上的用户输入写入文本文件以填充变量
【发布时间】:2015-09-01 14:14:06
【问题描述】:

我正在尝试创建一个带有用户输入对话框的简单网站,以填充将在 shell 命令 中使用的变量。

我知道最简单的方法可能是使用 HTML 表单,然后调用 php 文件写入文件。我找到了一些类似的代码,但是如何使用输入来填充变量?示例如下。

我希望最终结果如下所示。

testapp -d -p -e MySQL_dbname=$variable1 -e MySQL_dbuser=$variable2 -e MySQL_server=$variable3 -e MySQL_pass=$variable3

这是我已经找到的代码

<form action="myprocessingscript.php" method="POST">
    <input name="field1" type="text" />
    <input name="field2" type="text" />
    <input type="submit" name="submit" value="Save Data">
</form>

<?php
    if(isset($_POST['field1']) && isset($_POST['field2'])) {
        $data = $_POST['field1'] . '-' . $_POST['field2'] . "\n";
        $ret = file_put_contents('/tmp/mydata.txt', $data, FILE_APPEND | LOCK_EX);
        if($ret === false) {
     die('There was an error writing this file');
}
else {
    echo "$ret bytes written to file";
}
}
else {
die('no post data to process');
}

【问题讨论】:

  • 它有什么问题?
  • 请不要让我测试这个并叫水壶黑色。
  • 它确实写入了一个文件,但我无法弄清楚如何将它们填充到 shell 命令中的变量中。
  • 好吧好吧……那是完全不同的动物和球赛。您应该在您的问题中立即包含的信息,并为其添加/使用适当的标签。
  • 抱歉,第一次发帖。合适的标签是什么?

标签: php file shell


【解决方案1】:

虽然每个变量都打印到新行,但我能够通过使用连接获得我想要的输出。有什么想法可以让它在同一行输出吗?

<?php
if(isset($_POST['field1']) && isset($_POST['field2']) && isset($_POST['field3']) && isset($_POST['field4']) && isset($_POST['field5'])) {
    $containername = $_POST['field1'] . "\n";
    $WPhost = $_POST['field2'] . "\n";
    $WPuser = $_POST['field3'] . "\n";
    $WPpass = $_POST['field4'] . "\n";
    $WPname = $_POST['field5'] . "\n";
    $WPapp = 'testapp run -d --name';
    $WPdbhost = '-e WORDPRESS_DB_HOST=';
    $WPdbuser = '-e WORDPRESS_DB_USER=';
    $WPdbpass = 'WORDPRESS_DB_PASSWORD=';
    $WPdbname = '-e WORDPRESS_DB_NAME=';
    $ret = file_put_contents('/tmp/mydata.txt', $WPapp . ' ' . $WPhost . $WPdbhost . $WPuser . $WPdbuser . $WPpass . $WPdbname . $WPname, FILE_APPEND | LOCK_EX);
    if($ret === false) {
 die('There was an error writing this file');
}
else {
echo "$ret bytes written to file";
}
}
else {
die('no post data to process');
}

【讨论】:

  • 只需要从每个中删除“\n”。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-11-18
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多