簡體   English   中英

無法將var成功發布到另一個php文件

[英]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); show Array ( ) 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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM