Password modification working.

This commit is contained in:
Phyks 2013-08-10 22:33:39 +02:00
parent ffdee544cb
commit 653f50c33d
4 changed files with 11 additions and 12 deletions

4
TODO
View File

@ -6,7 +6,3 @@ install.php :
============= =============
* Link beside password field to toggle visible / not visible * Link beside password field to toggle visible / not visible
* TRUNCATE before CREATE TABLE in install.php * TRUNCATE before CREATE TABLE in install.php
index.php :
===========
* Edit password doesn't work

View File

@ -123,7 +123,7 @@ class Storage {
$query .= $field.'=:'.$field; $query .= $field.'=:'.$field;
} }
$query .= 'WHERE id='.$this->id; $query .= ' WHERE id='.$this->id;
} }
else { else {
$query = 'INSERT INTO '.MYSQL_PREFIX.$this->TABLE_NAME.'('; $query = 'INSERT INTO '.MYSQL_PREFIX.$this->TABLE_NAME.'(';
@ -147,6 +147,7 @@ class Storage {
$query .= ')'; $query .= ')';
} }
$this->connection->setAttribute( PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION );
$query = $this->connection->prepare($query); $query = $this->connection->prepare($query);
foreach($this->fields as $field=>$type) { foreach($this->fields as $field=>$type) {

View File

@ -29,7 +29,7 @@ class User extends Storage {
} }
public function setId($id) { public function setId($id) {
$this->id = $id; $this->id = (int) $id;
} }
public function setLogin($login) { public function setLogin($login) {
@ -41,7 +41,7 @@ class User extends Storage {
} }
public function setAdmin($admin) { public function setAdmin($admin) {
$this->admin = $admin; $this->admin = (bool) $admin;
} }
public function encrypt($text) { public function encrypt($text) {
@ -55,6 +55,7 @@ class User extends Storage {
public function exists() { public function exists() {
$user_data = $this->load(array('login'=>$this->login)); $user_data = $this->load(array('login'=>$this->login));
if(count($user_data) == 1) { if(count($user_data) == 1) {
$this->setId($user_data[0]['id']);
$this->setAdmin($user_data[0]['admin']); $this->setAdmin($user_data[0]['admin']);
$this->setPassword($user_data[0]['password']); $this->setPassword($user_data[0]['password']);
@ -69,8 +70,11 @@ class User extends Storage {
return serialize(array('id'=>$this->id, 'login'=>$this->login, 'password'=>$this->password, 'admin'=>$this->admin)); return serialize(array('id'=>$this->id, 'login'=>$this->login, 'password'=>$this->password, 'admin'=>$this->admin));
} }
public function sessionRestore($serialized_data) { public function sessionRestore($data, $serialized) {
if($serialized)
$user_data = unserialize($serialized_data); $user_data = unserialize($serialized_data);
else
$user_data = $data;
$this->setId($user_data['id']); $this->setId($user_data['id']);
$this->setLogin($user_data['login']); $this->setLogin($user_data['login']);

View File

@ -57,10 +57,8 @@
if(!empty($_POST['password']) && !empty($_POST['password_confirm'])) { if(!empty($_POST['password']) && !empty($_POST['password_confirm'])) {
if($_POST['password'] == $_POST['password_confirm']) { if($_POST['password'] == $_POST['password_confirm']) {
$user = new User(); $user = new User();
$user->setLogin($current_user['login']); $user->sessionRestore($current_user, false);
$user->setPassword($user->encrypt($_POST['password'])); $user->setPassword($user->encrypt($_POST['password']));
$user->setAdmin($current_user['admin']);
$user->setId($current_user['id']);
$user->save(); $user->save();
header('location: index.php'); header('location: index.php');