Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/274.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 以相同的形式获取和发布方法_Php_Mysql - Fatal编程技术网

Php 以相同的形式获取和发布方法

Php 以相同的形式获取和发布方法,php,mysql,Php,Mysql,所以我想在同一个表单上使用GET方法和POST方法。GET将表单中的详细信息发送到url栏,并发布isset if语句以检查表单是否已提交。我希望能够做到这一点。但是如果你能找到另一种方法,请告诉我 HTML 改变 到 但是使用GET发送密码是一个非常糟糕的主意。有点糟糕,但是您可以通过在URL中发送参数来强制执行此操作: 设置像action=“index.php?data=123”应该可以完成以下工作: <form method="post" action="index.php?name

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

改变


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

有点糟糕,但是您可以通过在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>
//开始了
用户名:

密码:

职位:



在您的表单中,您可以更改它的操作——因此操作=“?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>

$(文档).ready(函数(){
$('form')。提交(函数(){
$('form').attr('action','?Username='+$('input[name=Username]')。val()+'&Password='+$('input[name=Password]')。val()+'&Post='+$('input[name=Post]')。val());
返回true;
});
});
用户名:

密码:

帖子:



就我个人而言,我会将表单发布到my formprocess.php页面,并将您的

if(isset($_POST['submitted']){
//代码放在这里,进行检查/验证等
}

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

因此,value=和action=可能就是要在URL中传回的值。您还可以在.htaccess中添加一些RewriteRule,以使这些重定向URL更美观,更好地进行搜索引擎优化等。此外,如果您确实这样做,请确保设置/定义重定向状态,即301,请参见以下内容:

header("HTTP/1.1 301 Moved Permanently"); 

我想每个人都想知道的是,如果他们使用$POST,为什么任何人都需要使用$GET。 i、 e:

。。。如果你想在开发过程中检查你的参数,请坚持

print_r($_POST)

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

通过url参数传递密码确实不是一个好主意。“我希望能够做到这一点”-请解释原因。你不能,因为这些代表了请求的HTTP方法,所以你可以想象,你会谈论发送两个请求,这两个请求必须分别处理。你应该用POST,你不能。表格可以是POST或GET。您可以使用javascript来实现这一点,但真正的原因是什么?正如您现在的代码一样,将$\u GET更改为$\u帖子将使其工作。@Matt Whipple:“您不能”——实际上您可以。只需将
操作设置为
post
,并将参数指定为表单操作。在服务器上,数据将被相应地解析为
\u GET
\u POST
。使用
POST
发送表单。更好的做法,甚至在语义上更好(例如,你的
发布
数据)…但是,如果你想发送
get
params,只需将它们放在动作url的形式中,比如:
action=“/post.php?get=param”
ok为什么?目前不担心安全问题。我只是在测试。但是,你能告诉我,这将传输明文可见的密码。它将显示在浏览器历史记录、服务器日志等中。同样如上所述,请不要在插入和/或查询任何信息时使用GET方法,就像您在示例中所做的那样,例如,根据外观查看登录表单!不这样做的一个主要原因(上面已经提到,但值得重复)是这是对SQL注入和黑客的完美邀请,更不用说这是多么不安全了!
<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>
<!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>
header('Location:http://www.mysite.com/index.php?value=formsubmitted&action=success');
header("HTTP/1.1 301 Moved Permanently"); 
if (isset($_POST['submited'])){
    $Username=$_POST["Username"]; 
    $Password=$_POST["Password"]; 
    $Post=$_POST["Post"]; 
    $Password=md5($Password);

    if(blah=blah){
        echo "blah";
    }
}
print_r($_POST)