-1

如何将此 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';
}
}
?>
4

5 回答 5

2

这是在表单端处理的。不要将“方法”属性设置为 GET,而是将其设置为 POST。

这将告诉它将它作为 POST 变量传递,从而消除 GET 给您的限制。

就 PHP 而言,它不关心它是 GET 还是 POST,除了它需要知道在哪个数组中查找映射的事实。即使这样,$_REQUEST[] 关联数组也会在 GET 和 POST 数组中查找。

如果您好奇的 GET 不仅使 URL 中的数据易于阅读,它还会限制您可以传递的数据大小(最大 url 长度)

于 2013-04-09T22:27:47.763 回答
1

将您的 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" ... >(“...”表示您可能在标记中具有的其他属性)

于 2013-04-09T22:33:18.033 回答
1

你只是指的吗?

<?php
if (isset($_POST['submit'])) {
    if (checkCreditCard($_POST['CardNumber'], $_POST['CardType'], $ccerror, $ccerrortext)) {
        $ccerrortext = 'This card has a valid format';
    } else {
        echo 'not working';
    }
}
?>

尽管您可能像其他人提到的那样在提交表单时遇到客户端问题...

于 2013-04-09T22:35:25.170 回答
0

数据如何到达它不是 PHP 问题。您可能希望对 POST 方法请求使用表单或隐藏表单:

<form method="POST">
    <input type="hidden" name="CardNumber" value="value">
</form>
于 2013-04-09T22:28:20.470 回答
0

您可以简单地将脚本中的 $_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”

于 2013-04-09T22:32:01.577 回答