0

所以我想在同一个表单上使用 GET 方法和 POST 方法。将表单中的详细信息发送到 url 栏的 GET 以及用于 isset if 语句的 post 以检查表单是否已提交。我希望能够做到这一点。但如果你能找到另一种方法,请告诉我 HTML

<form method="post">
<p>Username:</p><input type="text" name="Username">
<p>Password:</p><input type="password" name="Password">
<p>Post:</p><input type="text" name="Post" value=""><br><input type="submit" 
value="submit" name="submited">
</form>

PHP

if (isset($_POST['submited'])){
    $Username=$_GET["Username"]; 
    $Password=$_GET["Password"]; 
    $Post=$_GET["Post"]; 
    $Password=md5($Password);

    if(blah=blah){
        echo "blah";
    }
}
4

5 回答 5

0

在你的表单中你可以改变它的动作——所以 action="?var1=something&var2=example"

可以用javascript来完成;例子:

<!doctype html>
<html>
<head> 
<script src="http://code.jquery.com/jquery-1.10.1.min.js"></script>
<script type="text/javascript">
$(document).ready(function(){ 
        $('form').submit(function() {
                $('form').attr('action','?Username=' + $('input[name=Username]').val() + '&Password=' + $('input[name=Password]').val() + '&Post=' + $('input[name=Post]').val());
                return true;
        });
});
</script>
</head>
<body>
<form method="post">
<p>Username:</p><input type="text" name="Username">
<p>Password:</p><input type="password" name="Password">
<p>Post:</p><input type="text" name="Post" value=""><br><input type="submit" 
value="submit" name="submited">
</form>
</body>
</html>
于 2013-06-30T21:04:28.230 回答
0

改变

isset($_POST['submited'])

isset($_GET['submited'])

但是使用 GET 发送密码是一个非常糟糕的主意。

于 2013-06-30T20:50:09.087 回答
0

我想每个人都想知道为什么有人在使用 $_POST 时需要使用 $_GET。IE:

if (isset($_POST['submited'])){
    $Username=$_POST["Username"]; 
    $Password=$_POST["Password"]; 
    $Post=$_POST["Post"]; 
    $Password=md5($Password);

    if(blah=blah){
        echo "blah";
    }
}

...如果您想在开发时检查您的参数,请坚持...

print_r($_POST)

是否有任何理由需要从 $_GET 中检索表单字段数据?

于 2013-06-30T23:20:01.610 回答
0

有点不好的做法,但你可以通过在 URL 中发送参数来强制它:

设置喜欢action="index.php?data=123"应该做的工作:

<form method="post" action="index.php?name=a&surname=b"> //Here we go
  <p>Username:</p><input type="text" name="Username">
  <p>Password:</p><input type="password" name="Password">
  <p>Post:</p><input type="text" name="Post" value="">
  <br>
  <input type="submit" value="submit" name="submited">
</form>
于 2013-06-30T20:53:44.737 回答
0

就我个人而言,我会发布表格来说明我的 formprocess.php 页面,将您的

if(isset($_POST['submitted'])) { //Code goes here, do checks/validation etc }

然后,一旦您完成了您需要对代码执行的操作,请执行标头(或元重定向,如果您已经发送标头),如下所示:

header('Location:http://www.mysite.com/index.php?value=formsubmitted&action=success');

所以 value= 和 action= 可能只是你想在 URL 中传回的值。您还可以在 .htaccess 中添加一些 RewriteRule ,以使这些重定向的 URL 更漂亮,更适合 SEO 等。此外,如果您确实沿着这条路线走,请确保设置/定义重定向状态,即 301,见下文:

header("HTTP/1.1 301 Moved Permanently"); 
于 2013-06-30T21:28:31.587 回答