是否可以强制“获取”方法到“帖子”形式?

时间:2015-07-22 19:06:31

标签: php html

我的网站有一个帖子方法表格,如下所示:

<html>
<body>
<form action="login.php" method="post">
<input type="text" name="username">
<input type="text" name="password">
<input type="submit" value="Login">
</form>
</body>
</html>

如果有人调用login.php直接传递URL中的参数(如下所示)(强制使用get方法),这是否也能正常工作?

www.mysite.com/login.php?username=123456&password=123456

4 个答案:

答案 0 :(得分:3)

具体取决于login.php ...使用$_POST$_GET$_REQUEST的方式?

不推荐使用$_GET作为登录表单,这是非常糟糕的做法。

答案 1 :(得分:0)

您可以单独访问它们。

if(isset($_POST['username'])){
   $username = $_POST['username'];
}
else{
   $username = $_GET['username'];
}

答案 2 :(得分:0)

$ _ GET登录并不理想。此函数将从$ _GET或$ _POST获得值。

function get($name){
    if(isset($_POST[$name])){
         return $_POST[$name];
    }else if(isset($_GET[$name])){
         return $_GET[$name];
    }
    return null;

}

答案 3 :(得分:0)

使用带有密码的$ _GET是不理想的,因为任何人都可以在浏览器中看到它,无论如何它很容易做到。您所要做的就是将表单标记更改为以下内容:

<form action="login.php" method="get">

正如你所看到的,方法现在得到而不是发布。 在您的PHP中,只需使用$_GET而不是$_POST

如果您更喜欢使用POST或GET的PHP脚本选项,您可以随时检查是否设置了GET,如果是,请使用GET,否则检查是否有POST。因此,使用表单将使用POST(更安全),在URL中它将使用GET。 请尝试以下代码:

<?php

if(isset($_GET['username']) && isset($_GET['password'])){
    $username = $_GET['username'];
    $password = $_GET['password'];
    $submitted = true;
}
else if(isset($_POST['username']) && isset($_POST['password'])){
    $username = $_POST['username'];
    $password = $_POST['password'];
    $submitted = true;
}

if($submitted){
   // Do your code here..
   // $username will give the username and $password will give the password.
}

?>

希望它有所帮助!