我有一个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
被捕获在表单提交中,然后作为变量$cardnumber
、$expiry
和$cvv
输入到php函数securePayPost
中。
我们只需将这些值传递给函数-
<?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);
}
无需为post值声明变量,只需执行以下操作,即可使用更少的代码获得相同的结果
<?php
if(isset($_POST['submit']))
{
securePayPost($_POST['creditcard'], $_POST['ExpYear'], $_POST['CVV']);
}
表单使用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"];}
}
然后,您可以根据需要使用这些变量。请记住,您必须将$ExpYear和$ExpMon传递给函数securePayPost()。否则,您必须在$expiry中连接$ExpYear和$ExpMon,只需执行以下操作:
$expiry=$ExpYear.$ExpMon;
你知道前两个字符是到期年,下一个是到期月。
否则,您不需要为$_POST数组声明变量。您也可以直接从$_POST[]传递到您的函数,执行以下操作:
securePayPost($_POST['creditcard'], $_POST['ExpYear'], $_POST['CVV']);
但请记住,您还需要传递$ExpMon,否则在表单中是无用的。