Недопустимый аргумент Ajax для Foreach () - PullRequest
0 голосов
/ 19 декабря 2018

У меня есть эта проблема, но все остальные функции после этого кода выполняются нормально.

проблема в журнале консоли отображается как «Недопустимый аргумент для строки Foreach () 170»

{"readyState": 4, "responseText": "\ n Предупреждение : указан неверный аргумент для foreach () в / home / public_html / fetch.php в строке 170 \ n\ n Предупреждение : указан неверный аргумент для foreach () в / home / public_html / fetch.php в строке 170 \ n\ n Предупреждение : указан неверный аргумент для foreach () в / home / public_html / fetch.php в строке 170 \ n {\ "status \":\ "1 \", \ "text \": \ "<\ / i> Успешная оплата. Пожалуйста, подождите ... \"} "," status ": 200," statusText ":" parsererror "}

Я использую ajax для загрузки этого page.php с кодом

$passphrases = [ strToHex('alpha1'), strToHex('alpha1alpha2'), strToHex('alpha1alpha2alpha3'), strToHex('alpha1alpha2alpha3alpha4') ];
$keys = [ $block_io->initKey()->fromPassphrase($passphrases[0]), $block_io->initKey()->fromPassphrase($passphrases[1]), $block_io->initKey()->fromPassphrase($passphrases[2]), $block_io->initKey()->fromPassphrase($passphrases[3]) ];

$pubKeyStr = $keys[0]->getPublicKey() . "," . $keys[1]->getPublicKey() . "," . $keys[2]->getPublicKey() . "," . $keys[3]->getPublicKey();


foreach ($keys as &$key) {
    foreach ($getWd['data']['inputs'] as &$input) {
        // iterate over all the inputs

        $dataToSign = $input['data_to_sign']; 
        foreach ($input['signers'] as &$signer) {
            // iterate over all the signers for this input
            // find the key that can sign for the signer_public_key
            if ($key->getPublicKey() == $signer['signer_public_key'])
            { // we found the key, let's sign the data

              $signer['signed_data'] = $key->signHash($dataToSign);
            }
        }
    }
    // all the data's signed for this public key, let's give it to Block.io
    $json_string = json_encode($getWd['data']);

$curl_handle=curl_init();
curl_setopt($curl_handle, CURLOPT_URL,'https://block.io/api/v2/sign_transaction/?api_key='.$apiKey.'&signature_data='.$json_string.'');
curl_setopt($curl_handle, CURLOPT_CONNECTTIMEOUT, 2);
curl_setopt($curl_handle, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($curl_handle, CURLOPT_USERAGENT, ''.SITENAME.' API PURCHASE');
$query = curl_exec($curl_handle);
curl_close($curl_handle);
$r1 = json_decode($query, true);

    $counter += 1; 

    if ($counter == 3) { break; }
}

, после того как этот код обновит базу данных и отправлю электронное письмо своему участнику. Если я попробую этот код в xampp localhost,он прекрасно работает без каких-либо ошибок в console.log, но после загрузки на хостинг выдает ошибку типа

Кто-нибудь знает, как это исправить? Пожалуйста, помогите

1 Ответ

0 голосов
/ 19 декабря 2018

Я не понимаю, почему вы используете "as & $ key" и "as & $ input" в скобках foreach

Вместо этого используйте "as $ key" и "as $ input" в скобках foreach

так же, как (удалить & символ):

foreach ($keys as $key) {
    foreach ($getWd['data']['inputs'] as $input) {
      ....
      ....
    }
}

и попробуйте ..

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...