处理登录页面上的错误

时间:2013-03-23 16:33:05

标签: php

当我单击提交按钮而不输入任何字段时,我的错误处理似乎不起作用,我仍然可以登录我错过了什么?它似乎我的验证不起作用, 这是我的代码如下 的login.php

<?php
include 'core/init.php';
    if (empty($_post) === false) {
    $username = $_post['username'];
    $password = $_post['password'];

    if (empty($username) === true  || empty($password) === true) {
      $errors[] = 'You need to enter a username and password';

    } else if (user_exists($username) === false ) {

      $errors[] = 'Username not found';

    } else if (user_active($username) === false ){

       $errors[] = 'You haven\' activated your account';

    } else {

        if (strlen($password) > 32){
          $errors[] = 'Password too long';

        }

        $login = login($username, $password);

        if($login === false){

         $errors[] = 'That username/password combination is incorrect';

        } else {

        $_session['user_id'] = $login;
        header('location: index.php');
        exit();

        }

    }
} else {

  $errors[] = 'No data recieved';
}

include 'includes/overall/header.php';
if (empty($errors) === false){
?>
<h2> we tried to log you in, but...</h2>
<?php
echo output_errors($errors);

}
include 'includes/overall/footer.php';

?>

我的init.php

<?php
 session_start();
 require 'database/connect.php';
 require 'functions/general.php';
 require 'functions/users.php';
 $errors = array();
?>

general.php

<?php
function sanitize($data){
return mysql_real_escape_string($data);
}
function output_errors($errors) {

 return '<ul><li>' . implode('</li><li>', $errors) . '</li></ul>';
}
?>

1 个答案:

答案 0 :(得分:0)

使用$ _POST而不是$ _post,它们都是不同的变量,因为php对变量名称区分大小写。