2017-11-26 4 views
-1

PHPファイルは、値をハードコードすると正しく機能します。 HTMLフォームから投稿をすると、変数が正しく表示され、PHPファイルに渡していることがわかります。しかし、$ _POSTの値をハードコードされた値が動作する場所に使用すると、スクリプトでエラーが発生します。ここで

が動作し、ハードコードされた値である。ここでは

$accountID = "XXXXXXXX"; 
$secretKey = "XXXXXXXXXXXXX"; 
$mode = "TEST"; 

$payment = new BluePay(
    $accountID, 
    $secretKey, 
    $mode, 
); 

$payment->setCustomerInformation(array(
    'firstName' => 'Bob', 
    'lastName' => 'Tester', 
    'addr1' => '1234 Test St.', 
    'addr2' => 'Apt #500', 
    'city' => 'Testville', 
    'state' => 'IL', 
    'zip' =>'54321', 
    'country' => 'USA', 
    'phone' => '1231231234', 
    'email' => '[email protected]' 
)); 

は、$ _POSTと変更されたPHPのフォームです。私は得る;それに誤りがある。セットアップと配列で$ _POSTを正しく呼び出していますか?現在、NAMEエラーが発生していますが、その名前はプロセッサから戻ってきています。ここで

<?php 

include('BluePay.php'); 

$payment = new BluePay(
    $_POST['accountID'], 
    $_POST['secretKey'], 
    $_POST['mode'] 
); 

$arrayVar = array(
     $firstName => $_POST['firstName'], 
     $lastName => $_POST['lastName'], 
     $addr1 => $_POST['addr1'], 
     $addr2 => $_POST['addr2'], 
     $city => $_POST['city'], 
     $state => $_POST['state'], 
     $zip => $_POST['zip'], 
     $country => $_POST['country'], 
     $phone => $_POST['phone'], 
     $email => $_POST['email'] 
    ); 

$payment->setCustomerInformation($arrayVar); 

$payment->setCCInformation(array(
    'cardNumber' => '4111111111111111', // Card Number: 4111111111111111 
    'cardExpire' => '1217', // Card Expire: 12/15 
    'cvv2' => '123' // Card CVV2: 123 
)); 

/* $arrayVar2 = array(
    $cardNumber => $_POST['cardNumber'], 
    $cardExpire => $_POST['cardExpire'], 
    $cvv2 => $_POST['cvv2'] 
); 

$payment->setCCInformation($arrayVar2); */ 

$payment->sale('3.00'); // Sale Amount: $3.00 
//$payment['sale'] => $_POST['sale']; 

// Makes the API request with BluePay 
$payment->process(); 

// Reads the response from BluePay 
if($payment->isSuccessfulResponse()){ 
    echo 
    'Transaction Status: '. $payment->getStatus() . "\n" . 
    'Transaction Message: '. $payment->getMessage() . "\n" . 
    'Transaction ID: '. $payment->getTransID() . "\n" . 
    'AVS Response: ' . $payment->getAVSResponse() . "\n" . 
    'CVS Response: ' . $payment->getCVV2Response() . "\n" . 
    'Masked Account: ' . $payment->getMaskedAccount() . "\n" . 
    'Card Type: ' . $payment->getCardType() . "\n" . 
    'Authorization Code: ' . $payment->getAuthCode() . "\n"; 
} else{ 
    echo $payment->getMessage() . "\n"; 
} 
?> 

HTMLフォーム

<html> 
<body> 

<form action="ccpost.php" method="post"> 
<input type="hidden" name="accountID" value="XXXXXXXXXX" /> 
<input type="hidden" name="secretKey" value="XXXXXXXXXXX /> 
<input type="hidden" name="mode" value="TEST" /> 
First Name: <input type="text" name="firstName"><br> 
Last Name: <input type="text" name="lastName"><br> 
Address 1: <input type="text" name="addr1"><br> 
Address 2: <input type="text" name="addr2"><br> 
City: <input type="text" name="city"><br> 
State: <input type="text" name="state"><br> 
Zip Code: <input type="text" name="zip"><br> 
Country: <input type="text" name="country"><br> 
Phone: <input type="text" name="phone"><br> 
E-mail: <input type="text" name="email"><br> 
Card Number: <input type="text" name="cardNumber"><br> 
Card Expire: <input type="text" name="cardExpire"><br> 
Cvv: <input type="text" name="cvv2"><br> 
Sale: <input type="text" name="sale"><br> 
<input type="submit"> 
</form> 

</body> 
</html> 
+0

あなたにも、HTML形式のコードを貼り付けてくださいことはできますか? –

+1

配列関数を正しく使用していません。 array($ firstName = $ _ POST ['fistName'];)の代わりに配列($ firstName => $ _POST ['firstName']、$ lastName => $ _POST ['lastName'])を指定してください。 –

+0

それら? –

答えて

0

であるあなたのPHPにエラーがあるようです、以下の更新された:

$payment = new BluePay(
    $_POST['accountID'], // you don't need to $accountID = $_POST['accountID'] 
    $_POST['secretKey'], 
    $_POST['mode'] 
); 

$arrayVar = array(
     $firstName => $_POST['firstName'], 
     $lastName => $_POST['lastName'], 
     $addr1 => $_POST['addr1'], 
     $addr2 => $_POST['addr2'], 
     $city => $_POST['city'], 
     $state => $_POST['state'], 
     $zip => $_POST['zip'], 
     $country => $_POST['country'], 
     $phone => $_POST['phone'], 
     $email => $_POST['email'] 
    ); 

$payment->setCustomerInformation($arrayVar); 
+0

PHP構文解析エラー:予期しない構文エラーです。モードの後に​​置かれたカンマはなかった。 –

+0

私はあなたが変数に対して行ったいくつかの項目を繰り返してみました。 $ payment-> sale( '3.00'); //売り金額:$ 3.00 // $ payment => $ _POST ['sale'];最初のものはハードコーディングするときに動作します。 $ _POSTを –

+0

'$ payment => $ _POST ['sale']'に適用すると何が問題になるのですか?これは無効です。私はあなたが '$ payment ['sale'] => $ _POST ['sale']' ..のようなものを望んでいると信じています。 –