我有一个PHP函数,它接受3个变量并使用它们。
<?php
function securePayPost($cardnumber, $expiry, $cvv) {
//do stuff with $cardnumber, $expiry and $cvv
?>
我有一个表单,用户可以输入卡号,有效期,cvv和其他一些内容:
<form action="" method="post" class="form-signin">
<h2 class="form-signin-heading">Processing Payment</h2>
<table width="491" border="0">
<tr>
<td width="154">Name on card:</td>
<td width="206"><input type="text" name="cardname" class="input-block-level" placeholder="Name on Card" /></td>
</tr>
<tr>
<td>Card Number:</td>
<td><input type="text" name="creditcard" class="input-block-level" placeholder="Credit Card" /></td>
</tr>
<tr>
<td>Expiry Date:</td>
<td>
<select class="form-control" name="ExpMon" title="select a month">
<option value="1">Jan</option>
<option value="2">Feb</option>
<option value="3">Mar</option>
<option value="4">Apr</option>
<option value="5">May</option>
<option value="6">June</option>
<option value="7">July</option>
<option value="8">Aug</option>
<option value="9">Sept</option>
<option value="10">Oct</option>
<option value="11">Nov</option>
<option value="12">Dec</option>
</select>
<select class="form-control" name="ExpYear" title="select a year">
<option value="2015">2015</option>
<option value="2016">2016</option>
<option value="2017">2017</option>
<option value="2018">2018</option>
<option value="2019">2019</option>
<option value="2020">2020</option>
</select>
</td>
</tr>
<td> </td>
<tr>
<td>CVV:</td>
<td><input type="text" name="CVV" class="input-block-level" placeholder="CVV" /></td>
</tr>
<tr>
<td><button class="btn btn-large btn-primary" type="submit" name="submit">Submit Payment</button></td>
<td> </td>
<td width="129"><button class="btn btn-large btn-primary" type="submit" formaction="deliveryDetails.html">Review Details</button></td>
</tr>
</table>
</form>
我对如何执行此操作的唯一知识使用以下代码:
<?php
if(isset($_POST['submit']))
{
securePayPost(creditcard, ExpYear, CVV);
}
但问题是,它不知道什么是信用卡,ExpYear
和CVV
。我做我想做的最好的方式是什么?
简而言之,我希望信用卡号,到期日和cvv
被困在表单提交上,然后作为变量securePayPost
输入php函数$cardnumber
, $expiry
和$cvv
。
答案 0 :(得分:4)
好吧,只需将这些值传递给函数 -
<?php
if(isset($_POST['submit']))
{
//get values from form
$creditcard = $_POST['creditcard'];
$ExpYear = $_POST['ExpYear'];
$CVV = $_POST['CVV'];
//pass to the function
securePayPost($creditcard, $ExpYear, $CVV);
}
答案 1 :(得分:0)
不需要为post值声明变量只需执行以下操作,您将获得相同的结果和更少的代码
<?php
if(isset($_POST['submit']))
{
securePayPost($_POST['creditcard'], $_POST['ExpYear'], $_POST['CVV']);
}
答案 2 :(得分:0)
您的表单使用方法POST,因此您可以在$ _POST数组中检索值。 所以你可以做这样的事情:
<?php
if(isset($_POST["submit"])
{
if(isset($_POST["cardname"])) {$cardname=$_POST["cardname"];}
if(isset($_POST["creditcard"])) {$cardnumber=$_POST["creditcard"];}
if(isset($_POST["cardname"])) {$ExpMon=$_POST["ExpMon"];}
if(isset($_POST["cardname"])) {$ExpYear=$_POST["ExpYear"];}
if(isset($_POST["CVV"])) {$CVV=$_POST["CVV"];}
}
然后您可以根据需要使用这些变量。 请记住,您必须传递给函数securePayPost()$ ExpYear和$ ExpMon。否则你必须在$ expiry中连接$ ExpYear和$ ExpMon,只需这样做:
$expiry=$ExpYear.$ExpMon;
您知道前两个字符是到期年,下一个是到期月。
否则,您不需要为$ _POST数组声明变量。 您也可以直接从$ _POST []传递给您的函数:
securePayPost($_POST['creditcard'], $_POST['ExpYear'], $_POST['CVV']);
但请记住,您还需要传递$ ExpMon或在您的表单中无用。