将后期数据表单作为数组值

时间:2016-03-24 04:23:50

标签: php arrays post

我尝试通过表单或帖子数据将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的新手,但请提前感谢你。

2 个答案:

答案 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();
    }
}