2016-03-24 22 views
2

フォームまたはデータを使用してコントロールパネルにAPIビルダを統合しようとしています。投稿のデータを配列の値としてどのように置くのか分かりません。フォームの投稿データを配列の値として

print_r($_POST['VALUE'])私は引用符の有無にかかわらず試してみました。

私はちょうど$_POST['VALUE']を引用符と一緒に使ってみました。

私はまたとし、引用符なしで$valueを使用して、その後$value = $_POST['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

''domain' => $ _POST ['domain'])は、動作するはずです。 – Sean

+0

これはエラーの主な理由ではありませんが、あなたが知っている限り、 'print_r($ _ POST ['domain']、TRUE)'でなければなりません。 '[manual](http://php.net/manual /en/function.print-r.php)。しかし実際には、 '$ _POST ['domain']'に 'print_r()'を実行する必要はありません。 '$ _POST ['domain']'それだけです。 – rmondesilva

+0

@Seanが正しいかもしれませんが、彼は ')'にタイプミスをしています。 '' 'を削除してみてください。このように '' domain '=> $ _POST [' domain ']' 'または本当に引用したい場合は、このように' ''を使うべきです。 '' domain '=> "$ _POST [' domain ']" '。 – rmondesilva

答えて

1

ここで他にどのようなロジックが実行されているか、サンプルコードが実行されているスクリプトに投稿変数がどのように送信されているか、その他の詳細についてはわかりませんが、トラブルシューティングに役立つ基本的なヒントです。

ポスト変数は次のようにフォーマットする必要があります。

$res = $api->remoteCall('requestLogin', array(
    'domain' => $_POST['domain'], 

あなたは

print_r($_POST); 

これを行うことによって、画面に全体post配列をダンプすることができます出力する必要があり、あなたの配列の画面にすることができますので、コード内の投稿データを受け取っていることを確認し、誤植や誤った名前の投稿変数を修正するのに役立ちます。配列に$ _POST ['domainName']というキーがあり、$ _POST ['domain']をエコーし​​ている場合

あなたが呼んでいるコード(フォームまたはポストデータ)には、彼らはあなたがどこにも保存されたり、サードに退場することになるだろう何かにそれらを追加する前に、あなたのポストのフィールドにいくつかの基本的な検証を実行する必要があるスクリプト

<input type="text" name="domain"> 

に送られるようにするために正しく場所と命名パーティー。最小限の場合、必須フィールド(必須フィールド)に値が設定されていることを確認したいと思います。値を渡すAPIの要件に一致しているかどうかを確認します。

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(); 
    } 
} 
関連する問題