From 7b8a565a1de2c6ed3c86133efb39e31b24c380a0 Mon Sep 17 00:00:00 2001 From: Janusz Dobrowolski Date: Mon, 20 Apr 2015 16:15:10 +0200 Subject: [PATCH] Fixed source compatibility to PHP 5.0, fixed bug in epassword reset feature. --- includes/current_user.inc | 6 ++---- includes/main.inc | 20 ++++++++++++++++++++ includes/system_tests.inc | 6 +++--- sales/includes/ui/sales_credit_ui.inc | 2 +- sales/includes/ui/sales_order_ui.inc | 2 +- 5 files changed, 27 insertions(+), 9 deletions(-) diff --git a/includes/current_user.inc b/includes/current_user.inc index fa676ec2..62d729b6 100644 --- a/includes/current_user.inc +++ b/includes/current_user.inc @@ -154,14 +154,12 @@ class current_user if ($user != false) { - $bytes = openssl_random_pseudo_bytes(8, $cstrong); - $password = base64_encode($bytes); - + $password = generate_password(); $hash = md5($password); update_user_password($user['id'], $user['user_id'], $hash); - mail($myrow['email'], _("New password for")." ".$SysPrefs->app_title, $password); + mail($email, _("New password for")." ".$SysPrefs->app_title, $password); return true; } diff --git a/includes/main.inc b/includes/main.inc index 11746a28..38ceaa1d 100644 --- a/includes/main.inc +++ b/includes/main.inc @@ -383,3 +383,23 @@ function clean_file_name($filename) { return preg_replace('/[^a-zA-Z0-9.\-_]/', '_', $filename); } +/* + Simple random password generator. +*/ +function generate_password() +{ + if (PHP_VERSION >= '5.3') + $bytes = openssl_random_pseudo_bytes(8, $cstrong); + else + $bytes = sprintf("08%x", mt_rand(0,0xffffffff)); + + return base64_encode($bytes); +} + +if (!function_exists('array_fill_keys')) // since 5.2 +{ + function array_fill_keys($keys, $value) + { + return array_combine($keys, array_fill(count($keys), $value)); + } +} diff --git a/includes/system_tests.inc b/includes/system_tests.inc index f4955627..1e8881a1 100644 --- a/includes/system_tests.inc +++ b/includes/system_tests.inc @@ -43,11 +43,11 @@ function tst_phpmysql() function tst_php() { - $test['descr'] = _('PHP version').' >=4.3.3'; + $test['descr'] = _('PHP version').' >=5.0.0'; $test['type'] = 3; $test['test'] = phpversion(); - $test['result'] = $test['test']>='4.3.3'; - $test['comments'] = _('Upgrade PHP to version at least 4.3.3'); + $test['result'] = $test['test']>='5.0.0'; + $test['comments'] = _('Upgrade PHP to version at least 5.0.0'); return $test; } diff --git a/sales/includes/ui/sales_credit_ui.inc b/sales/includes/ui/sales_credit_ui.inc index 627358ec..f0cff322 100644 --- a/sales/includes/ui/sales_credit_ui.inc +++ b/sales/includes/ui/sales_credit_ui.inc @@ -45,7 +45,7 @@ function display_credit_header(&$order) ($order->Branch != $_POST['branch_id'])) { - $old_order = (PHP_VERSION<5) ? $order : clone( $order ); + $old_order = (PHP_VERSION<5) ? $order : clone $order; $customer_error = get_customer_details_to_order($order, $_POST['customer_id'], $_POST['branch_id']); $_POST['Location'] = $order->Location; diff --git a/sales/includes/ui/sales_order_ui.inc b/sales/includes/ui/sales_order_ui.inc index 043d2514..c1209dc7 100644 --- a/sales/includes/ui/sales_order_ui.inc +++ b/sales/includes/ui/sales_order_ui.inc @@ -295,7 +295,7 @@ function display_order_header(&$order, $editable, $date_text) else { - $old_order = (PHP_VERSION<5) ? $order : clone( $order ); + $old_order = (PHP_VERSION<5) ? $order : clone $order; $customer_error = get_customer_details_to_order($order, $_POST['customer_id'], $_POST['branch_id']); $_POST['Location'] = $order->Location; -- 2.30.2