[英]Cannot post the var to another php file successfully
我有一個php文件A.php
包含一個名為formA
的表單。
formA
獲取結果,然后通過php & SQL & traditional HTML form posting
方法發布並存儲到MYSQL中。
在該領域的一個formA
,我想這個值后$amount
到另一個PHP文件B.php
。正是因為在一個隱藏的表單B.php
。我試圖與發布此php-curl
進一步行動的方法。
在B.php
,我嘗試測試是否可以成功獲取$amount
。
兩者都是
print_r($_POST); print_r($_GET);
print_r($_POST); print_r($_GET);
showArray ( ) Array ( )
,這意味着無法獲取amount
這是我的代碼:
A.php:
if ($_SERVER["REQUEST_METHOD"] == "POST") {
// Validate amount
$input_amount = trim($_POST["amount"]);
if (empty($input_amount)) {
$amount_err = "Please enter the amount.";
} elseif (!ctype_digit($input_amount)) {
$amount_err = 'Please enter a positive integer value.';
} else {
$amount = $input_amount;
}
//storing to db
if (empty($CName_err) && empty($Address_err) && empty($amount_err) && empty($Phone_err)) {
// Prepare an insert statement
$pdo = Database::connect();
$pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
$sql = "INSERT INTO donation (CName, Address, Phone, Amount ,Ticket, Purpose) VALUES (?, ?, ?, ? ,?, ?)";
$q = $pdo->prepare($sql);
$q->execute(array($CName, $Address, $Phone, $amount ,$Ticket ,$Purpose));
Database::disconnect();
//curl part start: post the `amount`
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL,"B.php");
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS,
"amount=amount,input_amount=input_amount");
// receive server response ...
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
$server_output = curl_exec ($ch);
curl_close ($ch);
header("Location: B.php");
}
}
?>
//Form A -the field that get the `amount` value
<div class="form-group <?php echo (!empty($amount_err)) ? 'has-error' : ''; ?>">
<label>* Donation amount</label>
<input list="amount" name="amount" multiple class="form-control">
<datalist id="amount" >
<option value="100">
<option value="300">
<option value="500">
<option value="1000">
</datalist>
<span class="help-block"><?php echo $amount_err; ?></span>
</div>
....other fields. ....
B.php:
<?php
print_r($_POST);
print_r($_GET);
$amount = null;
if ( !empty($_GET['amount'])) {
$amount = $_REQUEST['amount'];
}
...later action....
?>
您的CURLOPT_POSTFIELDS
值格式錯誤,並且不包含您期望的值。 值的編碼必須使用所謂的application/x-www-form-urlencoded
。 本質上,用&
分隔的變量。
戴維•沃爾什(David Walsh) 在這里有一個非常好的例子。
您的字符串應如下所示。 "amount=".$amount."&input_amount=".$input_amount
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.