Php OOP登录/注册系统
如果我想登录,我还有一个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.phpPhp 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
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)); }