我正在创建一个用户填写的表单,并且使用curl将信息存储在另一个站点上。通过提供一个硬编码的字典,我已经开始工作了。但是,当我尝试使用表单中收集的变量时,它们只是打印出变量名而不是值。
我相信这是由于我拥有多层报价,但我不知道该怎么做才能更改它。我已经尝试过将引号转义,然后取消引号,但我认为我要么是1)做得不正确,要么是2)处理错误的方式。
这是我的HTML表单的一部分:
<form method="POST" name="email_form" action="<?php echo htmlspecialchars($_SERVER["PHP_SELF"]);?>" enctype="multipart/form-data">
<div class="row">
<div class="col-25">
<label for="subject"><span class="error">* <?php echo $nameErr;?></span> Subject <i class="glyphicon glyphicon-align-center"></i></label>
</div>
<div class="col-75">
<textarea id="subject" name="name" placeholder="Please input your name" style="height:46px"><?php echo $subject;?></textarea>
</div>
</div>
我确认输入后:
$name = $_POST["name"];
但是,当我尝试如下使用curl时,我遇到了问题:
exec('curl -u name:pwd -X POST -H "Content-Type: application/json" -d \'{"type": "page", "title": "Hello World", "ancestors": [{"id":1234}], "space": {"key": "KEY"},"body": {"storage": {"value": "<h2>Your Name: </h2><p>$name</p>", "representation": "storage"}}, "version": {"number": 1}}\' https://example.com');
我的问题是,curl打印的内容是“ $ name”,我希望它打印“ Bob”或“ Suzy”或用户输入的任何名称。