如何将此 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';
}
}
?>
如何将此 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';
}
}
?>
这是在表单端处理的。不要将“方法”属性设置为 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>
这里唯一的变化是方法属性的“POST”参数代替了“GET”