Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/assembly/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php OOP登录/注册系统_Php_Mysql_Oop_Login - Fatal编程技术网

Php OOP登录/注册系统

Php OOP登录/注册系统,php,mysql,oop,login,Php,Mysql,Oop,Login,如果我想登录,我还有一个login.php问题,我有一个“记住我”按钮,检查一切正常。但是当我取消选中它时,我得到了这个错误 我是新来php的,我用这个系统上了一门次要的课程,所以我知道它已经很旧了,但我真的很想完成它,我正在用这种方式学习分配 注意:第63行的C:\wamp\www\websitegroop\classes“>”\user.php中未定义的变量:hashCheck 调用堆栈 1 0.0006 255552{main}()..\login.php:0 2 0.0094 38683

如果我想登录,我还有一个login.php问题,我有一个“记住我”按钮,检查一切正常。但是当我取消选中它时,我得到了这个错误

我是新来php的,我用这个系统上了一门次要的课程,所以我知道它已经很旧了,但我真的很想完成它,我正在用这种方式学习分配

注意:第63行的C:\wamp\www\websitegroop\classes“>”\user.php中未定义的变量:hashCheck 调用堆栈

1 0.0006 255552{main}()..\login.php:0 2 0.0094 386832用户->登录()..\login.php:25

以及:

致命错误:在C:\wamp\www\websitegroop\classes\user.php的第63行对非对象调用成员函数count() 调用堆栈

1 0.0006 255552{main}()..\login.php:0 2 0.0094 386832用户->登录()..\login.php:25

这是我的密码:

login.php

 enter code here <?php
                 require_once 'core/init.php';


                  if(Session::exists('login')) {
                  echo '<p>' . Session::flash('login') . '<p>';
                   }

                  if(Input::exists()) {
                  if(Token::check(Input::get('token'))) {

    $validate = new Validate();
    $validation = $validate->check($_POST, array(
        'gebruikersnaam' => array('required' => true),
        'paswoord' => array('required' => true)

    ));



    if($validation->passed()) {
        $user = new User();

        $remember =(Input::get('remember') === 'on') ? true: false;
        $login = $user->login(Input::get('gebruikersnaam'),              Input::get('paswoord'), $remember);

        if($login) {
            Redirect::to('index.php');
        } else {
            echo '<p> Sorry het is niet gelukt om in te loggen. </p>';
        }

    } else {
        foreach($validation->errors() as $error) {
            echo $error, '<br>';
        }
    }
}

}
?>
在此处输入代码
hash.php

enter code here  <?php
 class Hash {
public static function make($string, $salt = '') {
    return hash('sha256', $string . $salt);
}

public static function salt($length) {
    return mcrypt_create_iv($length);
}

public static function unique() {
    return self::make(uniqid());

}
}

在此处输入code尽管您没有检查,$memory变量始终具有真值。您必须确保:

$memore=(输入::get('memore')='on')?真:假

这是有效的。或者,您可以尝试以下保留验证逻辑:


$memory=(输入::get('memory')!=“”)?真:假

,因此查看错误说明无法在user.php中对非对象调用count()。从外观上看,您正在调用$hashCheck变量上的count函数。这让我觉得$hashCheck有时没有被设置。这可能是由于以下行上的错误结束大括号“}”造成的:

$hashCheck = $this->_db->get('users_session_table', array('user_id', '=', $this->data()->id));              }

这个大括号的结尾实际上使它认为$member变量的if语句块在该行结束,而不是在该块结束的地方。查看删除多余的右大括号是否有助于解决语法错误。

感谢您的快速回复,我尝试了这个方法,但它给了我相同的错误。或者改为临时if/else:if(empty(Input::get('memory')){$memory=True}else{$memory=false}我有语法错误,我是新来PHP的,所以我尝试了一些东西,但语法错误仍然存在。天哪,我完全忽略了那个大括号。。。。。。谢谢,我会记得下次我必须用滑块检查那里是否有东西。。。。
enter code here <?php
       session_start();

     $GLOBALS['config'] = array(
    'mysql' => array(
        'host' => 'localhost',
        'username' => 'nick16061983',
        'password' => 'N1sn0p1!A',
        'db' => 'websitegroop'
    ),
    'remember' => array(
        'cookie_name' => 'hash',
        'cookie_expiry' => 604800
    ),  
    'session' => array(
        'session_name' => 'groopklanten',
        'token_name' => 'token'

    )
   );

   spl_autoload_register(function($class) {
   require_once 'classes/' .$class. '.php';
   });

  require_once 'functions/sanitize.php';
$hashCheck = $this->_db->get('users_session_table', array('user_id', '=', $this->data()->id));              }