2012-02-06 78 views
0

我使用下面的代码,但问题是当我点击提交页面刷新没有登录函数处理,我没有得到任何错误消息。PHP登录函数不工作

<? 

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

如果您删除$ _POST ['登录']的@,你会得到一些错误? – 2012-02-06 19:58:33

+0

@sergiomichels我删除它,但就像其他时间它显示我相同的页面,但空白! – 2012-02-06 20:25:38

回答

2

你应该检查$_POST['Login'] - 注意大写字母L.理想的情况下你的表单应该改变在名称中使用小写l,但你需要任何一种方式来改变其中的一个。

备注:设置Location标题后,除非特殊情况,否则应始终在exitdie()之后。

+0

嘿,我按照你的建议,并作为克里斯蒂安建议,但它没有工作......当我点击提交按钮同一页“login.php”刷新为表单设置为server_self,然后空白页出现.. – 2012-02-06 20:24:49

+0

可能不相关,但删除'enctype' - 没有理由使用'multipart'。 – 2012-02-06 21:02:34

2

您正在检查$_POST['login']是否存在。但是没有这样的领域。在您的表单中,您有一个名为Login的字段 - 不是login

如果您没有使用@前缀$_POST['login']抑制错误消息,PHP会通知您这一点。

只需将您的提交按钮的name更改为login即可。

+0

嘿!谢谢。我做到了。但它仍然给我同样的问题,无论错误或正确的凭据,当我登录它只是给了我相同的页面,但空白... – 2012-02-06 20:16:37

+0

它给你同一页,但空白?它显示表单还是空白页? – kba 2012-02-06 20:22:52

+0

同一页面“login.php”,但表单不再存在。 – 2012-02-06 20:23:43

1
enctype="multipart/form-data" 

这是怎么回事? ithink你应该删除它。 。在第一个参数

if(isset($_POST['username']) && isset($_POST['password'])) 

+0

我删除它,但仍然没有帮助的情况! – 2012-02-07 02:51:42

+0

login.php在哪里?表单位于此页面吗?如果是这样,请尝试使用action =“<?php echo $ _SERVER [”PHP_SELF“]?>” – tomexsans 2012-02-07 05:55:59

0

我会尝试使用。如果这不起作用,请提供更多信息;像你的login()功能。