我尝试通过表单或帖子数据将API构建器集成到我的控制面板。我无法弄清楚如何将后期数据作为数组的值。
我尝试使用带有和不带引号的print_r($_POST['VALUE'])
。
我尝试使用带有和不带引号的$_POST['VALUE']
。
我还尝试设置$value = $_POST['VALUE']
然后使用带有和不带引号的$value
,但这会导致错误500.
以下是我尝试使用的代码:
$res = $api->remoteCall('requestLogin', array(
'type' => 'external',
'domain' => 'print_r($_POST['domain'])',
'lang' => 'en',
'username' => 'print_r($_POST['uname'])',
'password' => 'print_r($_POST['pass'])',
'apiUrl' => '127.0.0.1',
'uploadDir' => '/web/'.print_r($_POST['domain']).'/public_html',
我很抱歉,因为我是PHP的新手,但请提前感谢你。
答案 0 :(得分:1)
我不确定在那里做了什么其他逻辑,如何将post变量发送到运行示例代码的脚本,或者可能指向更完整解决方案的任何其他细节,但这里是一些帮助您排除故障的基本提示。
post变量的格式应如下:
$res = $api->remoteCall('requestLogin', array(
'domain' => $_POST['domain'],
您可以通过
将整个帖子阵列转储到屏幕上print_r($_POST);
这应该将您的数组输出到屏幕,这样您就可以验证您是否在代码中收到了帖子数据,并且可以帮助您修复任何拼写错误或错误命名的帖子变量。如果数组的键为$ _POST ['domainName']并且你正在回显$ _POST ['domain']
您正在调用代码(“表单或发布数据”)应该具有适当的帖子字段并正确命名,以便将它们发送到脚本
<input type="text" name="domain">
您应该在帖子字段上执行一些基本验证,然后再将它们添加到将要存储在任何地方或发送给第三方的内容中。在最小的情况下,您需要检查是否为基本字段(必填字段)设置了值,并且我希望确保这些值与您传递给它的API的要求相匹配。 / p>
答案 1 :(得分:0)
使用api时可能会出现一些问题。 POST值,输入值,API调用或连接或api响应。因此,不仅在实现和编码时,而且在将api调用脚本与应用程序集成时,应该进行某种测试和错误处理。一个简单的脚本可以像这样
$error = array();
$request = array();
$request['type'] = 'external';
if (isset($_POST['domain']) && !empty($_POST['domain'])) {
$request['domain'] = $_POST['domain'];
$request['uploadDir'] = "/web/{$_POST['domain']}/public_html";
} else {
$error[] = "Domain is empty";
}
if (isset($_POST['uname']) && !empty($_POST['uname'])) {
$request['username'] = $_POST['uname'];
} else {
$error[] = "Username is empty";
}
if (isset($_POST['pass']) && !empty($_POST['pass'])) {
$request['password'] = $_POST['pass'];
} else {
$error[] = "Username is empty";
}
$request['lang'] = 'en';
$request['apiUrl'] = '127.0.0.1';
if (count($error) > 0) {
echo implode( "<br>" , $error );
} else {
try{
$res = $api->remoteCall('requestLogin',$request);
} catch ( Exception $e ) {
print_r($e);
exit();
}
}