我的网站有一个帖子方法表格,如下所示:
<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
答案 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.
}
?>
希望它有所帮助!