在php中将get转换为post


convert get to post in php

如何将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'