我正在使用下面的代码,但问题是当我点击提交页面时只刷新而没有登录功能处理,我没有收到任何错误消息。
<?
include("connection.php");
include("suction.php");//function file
session_start();
if(@$_POST['login'] == 'Login'){
$log = login($_POST['username'], $_POST['password']);
if($log == true){
//login good
header("Location: home.php");
}elseif($log == false){
//username/password invalid
die("error");
}
}
?>
<form action="login.php" method="post" enctype="multipart/form-data">
Username:<input name="username" type="text"/> <br />
Password:<input name="password" type="password"/>
<input name="Login" value="Login" type="submit"/>
</form>
答案 0 :(得分:2)
您应该检查$_POST['Login']
- 请注意大写字母L.理想情况下,您的表单应更改为在名称中使用小写l
,但无论哪种方式,您都需要更改其中一个。< / p>
附注:在设置exit
标题后,您应该始终die()
或Location
,除非是非常具体的情况。
答案 1 :(得分:2)
您正在检查$_POST['login']
是否存在。但是没有这样的领域。在表单中,您有一个名为Login
的字段 - 而不是login
。
如果您没有使用@
前缀$_POST['login']
来抑制错误消息,那么PHP会通知您。
只需将提交按钮的name
更改为login
。
答案 2 :(得分:1)
enctype="multipart/form-data"
这是做什么的?我认为你应该删除它。 。
答案 3 :(得分:0)
我会尝试使用:
if(isset($_POST['username']) && isset($_POST['password']))
在第一个论点中。如果这不起作用,请提供更多信息;就像你的login()
功能一样。