За последние 24 часа нас посетили 20633 программиста и 1012 роботов. Сейчас ищут 362 программиста ...

Вывод массива из Post

Тема в разделе "PHP для новичков", создана пользователем dem321, 14 май 2021.

  1. dem321

    dem321 Новичок

    С нами с:
    14 май 2021
    Сообщения:
    1
    Симпатии:
    0
    Здравствуйте! Настраиваю форму оплаты Payeer. Дополнительные параметры $m_params с формы передаются на обработчик после оплаты.
    Форма:
    Код (Text):
    1. $arParams = array(
    2.     'success_url' => 'http://donateask.ru/new_success_url',
    3.     //'fail_url' => 'http://donateask.ru/new_fail_url',
    4.     //'status_url' => 'http://donateask.ru/new_status_url',
    5.     'reference' => array(
    6.         'var1' => '1',
    7.         'var2' => '2',
    8.         'var3' => '3',
    9.         //'var4' => '4',
    10.         //'var5' => '5',
    11.     ),
    12.     //'submerchant' => 'mail.com',
    13. );
    14.  
    15. $key = md5('Ключ для шифрования дополнительных параметров'.$m_orderid);
    16.  
    17. $m_params = @urlencode(base64_encode(openssl_encrypt(json_encode($arParams), 'AES-256-CBC', $key, OPENSSL_RAW_DATA)));
    18.  
    19. $arHash[] = $m_params;
    20.  
    21. $arHash[] = $m_key;
    22.  
    23. $sign = strtoupper(hash('sha256', implode(':', $arHash)));
    24. ?>
    25. <form method="post" action="https://payeer.com/merchant/">
    26. <input type="hidden" name="m_shop" value="<?=$m_shop?>">
    27. <input type="hidden" name="m_orderid" value="<?=$m_orderid?>">
    28. <input type="hidden" name="m_amount" value="<?=$m_amount?>">
    29. <input type="hidden" name="m_curr" value="<?=$m_curr?>">
    30. <input type="hidden" name="m_desc" value="<?=$m_desc?>">
    31. <input type="hidden" name="m_sign" value="<?=$sign?>">
    32. <?php /*
    33. <input type="hidden" name="form[ps]" value="2609">
    34. <input type="hidden" name="form[curr[2609]]" value="USD">
    35. */ ?>
    36. <?php
    37. <input type="hidden" name="m_params" value="<?=$m_params?>">
    38. <input type="hidden" name="m_cipher_method" value="AES-256-CBC">
    39. ?>
    40. <input type="submit" name="m_process" value="send" />
    41. </form>
    Обработчик:

    Код (Text):
    1. <?php
    2. if (!in_array($_SERVER['REMOTE_ADDR'], array('185.71.65.92', '185.71.65.189', '149.202.17.210'))) return;
    3.  
    4. if (isset($_POST['m_operation_id']) && isset($_POST['m_sign']))
    5. {
    6.     $m_key = 'Ваш секретный ключ';
    7.  
    8.     $arHash = array(
    9.         $_POST['m_operation_id'],
    10.         $_POST['m_operation_ps'],
    11.         $_POST['m_operation_date'],
    12.         $_POST['m_operation_pay_date'],
    13.         $_POST['m_shop'],
    14.         $_POST['m_orderid'],
    15.         $_POST['m_amount'],
    16.         $_POST['m_curr'],
    17.         $_POST['m_desc'],
    18.         $_POST['m_status']
    19.     );
    20.  
    21.     if (isset($_POST['m_params']))
    22.     {
    23.         $arHash[] = $_POST['m_params'];
    24.     }
    25.  
    26.     $arHash[] = $m_key;
    27.  
    28.     $sign_hash = strtoupper(hash('sha256', implode(':', $arHash)));
    29.  
    30.     if ($_POST['m_sign'] == $sign_hash && $_POST['m_status'] == 'success')
    31.     {
    32.         ob_end_clean(); exit($_POST['m_orderid'].'|success');
    33.     }
    34.  
    35.     ob_end_clean(); exit($_POST['m_orderid'].'|error');
    36. }
    37. ?>
    "var1" и "var2" мне нужно присвоить переменным в случае успешного платежа, а каким образом вывести значения массива m_params из массива POST для меня является загадкой. Буду очень признателен если кто подскажет!
     
  2. Drunkenmunky

    Drunkenmunky Активный пользователь

    С нами с:
    12 авг 2020
    Сообщения:
    1.476
    Симпатии:
    281
    PHP:
    1. <?php
    2. function func_name($param)
    3. {
    4. if($param == 1)
    5.   {
    6.    return TRUE;
    7.   }
    8.   else
    9.   {
    10.    return FALSE;
    11.   }
    12. }
    13.  
    14. $action = 1;
    15.  
    16. if(func_name($action))
    17. {
    18. $var1 = 'one';
    19. $var2 = 'two';
    20. }
    21. else
    22. {
    23. $var1 = 'zero';
    24. $var2 = 'zero';
    25. }
    26. ?>
    PHP:
    1. print_r($_POST);