如何将PHP代码从使用$_GET方法转换为$_POST
<?php
if (isset($_GET['submit'])) {
if (checkCreditCard ($_GET['CardNumber'], $_GET['CardType'], $ccerror, $ccerrortext)) {
$ccerrortext = 'This card has a valid format';
} else {
echo 'not working';
}
}
?>
这是在表单端处理的。与其将'method'属性设置为GET,不如将其设置为POST。
这将告诉它将其作为POST变量传递,从而消除GET给您的限制。
对于PHP来说,它不关心它是GET还是POST,除了它需要知道在哪个数组中查找映射。即使这样,$_REQUEST[]关联数组也会同时查找GET和POST数组。
如果您好奇的GET不仅使数据在URL中易于读取,而且还限制了您可以传递的数据的大小(最大URL长度)
修改你的PHP代码如下(将$_GET的所有实例更改为$_POST):
<?php
if (isset($_POST['submit'])) {
if (checkCreditCard ($_POST['CardNumber'], $_POST['CardType'], $ccerror, $ccerrortext)) {
$ccerrortext = 'This card has a valid format';
} else {
echo 'not working';
}
}
?>
将HTML表单的开始标签从<form method="GET" ... >
更改为<form method="POST" ... >
("…"表示标签中可能包含的其他属性)
你只是指?
<?php
if (isset($_POST['submit'])) {
if (checkCreditCard($_POST['CardNumber'], $_POST['CardType'], $ccerror, $ccerrortext)) {
$ccerrortext = 'This card has a valid format';
} else {
echo 'not working';
}
}
?>
虽然您可能像其他人提到的那样在提交表单时遇到客户端问题…
数据如何到达不是PHP的问题。您可能希望使用表单或隐藏表单来处理POST方法请求:
<form method="POST">
<input type="hidden" name="CardNumber" value="value">
</form>
您可以简单地将脚本中的$_GET更改为$_POST。主要的变化是数据的输入方式。这应该在将数据发送到此脚本的源页面中处理。
让我们考虑一个简单的例子:
<!-- Login.html -->
<form method='POST' action='yourscript.php'>
Email<input type='text' name='email'></input>
Password<input type='password' name='password'></input>
</form>
这里唯一的变化是method属性的'POST'参数取代了'GET'