$value) $_SESSION[$name] = $value; if (!empty($_SESSION['nyelv'])) { // ha kaptam nyelvadatot (nincs login error), szetdarabolom // $_SESSION = array_merge($_SESSION, json_decode($_SESSION['nyelv'], true)); $q = json_decode($_SESSION['nyelv'], true); foreach ($q as $name => $value) $_SESSION[$name] = $value; unset($_SESSION['nyelv']); } if (!empty($_SESSION['penznem'])) { // ha kaptam penznem adatot (nincs login error), szetdarabolom $_SESSION['penznem'] = json_decode($_SESSION['penznem'], true); } } function fillSession($username, $password = null) { $loginerrors = array(); if ($username == 'guest') { $defaultsQuery = mysql_query(" SELECT 'guest' tipus, (SELECT MIN(fizetesi__modok_id) FROM fizetesi__modok WHERE fizetesi__modok_default=1) fizmod_id, (SELECT MIN(szallitasi__modok_id) FROM szallitasi__modok WHERE szallitasi__modok_default=1) szallmod_id, (SELECT CONCAT('{\"id\":\"', penznem_id, '\",\"nev\":\"', penznem_nev, '\",\"jel\":\"', penznem_jel, '\",\"kod\":\"', penznem_kod, '\",\"dpoint\":\"', penznem_dpoint, '\",\"thousep\":\"', penznem_thousep, '\",\"ertek\":\"', penznem_ertek, '\"}') FROM penznem WHERE penznem_default=1 LIMIT 1) penznem, (SELECT CONCAT('{\"nyelv_id\":\"', id, '\",\"lang_code\":\"', code, '\",\"url_lang_code\":\"', IF(code='hu', '', CONCAT(code, '/')), '\"}') FROM nyelvek WHERE nyelvek_default=1 LIMIT 1) nyelv; ") or die(mysql_error()." - auth.php, defaultok betoltese"); query2Session(mysql_fetch_array($defaultsQuery, MYSQL_ASSOC)); mysql_free_result($defaultsQuery); } else { $userQuery = mysql_query(" SELECT user_tipus tipus, (SELECT fizetesi__modok_id FROM fizetesi__modok ORDER BY fizetesi__modok_id=user_def_fizmod_id, fizetesi__modok_sorrend DESC LIMIT 1) fizmod_id, (SELECT szallitasi__modok_id FROM szallitasi__modok ORDER BY szallitasi__modok_id=user_def_szallmod_id, szallitasi__modok_sorrend DESC LIMIT 1) szallmod_id, (SELECT CONCAT('{\"id\":\"', penznem_id, '\",\"nev\":\"', penznem_nev, '\",\"jel\":\"', penznem_jel, '\",\"kod\":\"', penznem_kod, '\",\"dpoint\":\"', penznem_dpoint, '\",\"thousep\":\"', penznem_thousep, '\",\"ertek\":\"', penznem_ertek, '\"}') FROM penznem ORDER BY penznem_id=user_def_penznem_id DESC, penznem_default DESC LIMIT 1) penznem, (SELECT CONCAT('{\"nyelv_id\":\"', id, '\",\"lang_code\":\"', code, '\",\"url_lang_code\":\"', IF(code='hu', '', CONCAT(code, '/')), '\"}') FROM nyelvek ORDER BY id=user_def_nyelv_id DESC, nyelvek_default DESC LIMIT 1) nyelv, user_id, IFNULL(user_nev, user_username) username, user_cim_nev teljes_nev, user_email email, user_def_szall_user_cim_id FROM user LEFT JOIN user_cim ON user_cim_user_id=user_id AND user_cim_tipus='szamla' WHERE user_username='".addslashes($username)."' AND user_password='".$password."' AND NOT FIND_IN_SET('inaktiv', user_tipus) AND (FIND_IN_SET('admin', user_tipus) OR FIND_IN_SET('user', user_tipus)); ") or die(mysql_error()." - auth.php, felhasználó adatainak lekérdezése"); if (mysql_num_rows($userQuery) > 0) { // hitelesites rendben; session feltoltese query2Session(mysql_fetch_array($userQuery, MYSQL_ASSOC)); mysql_query(" UPDATE user SET user_def_fizmod_id='".$_SESSION['fizmod_id']."', user_def_szallmod_id='".$_SESSION['szallmod_id']."', user_def_penznem_id='".$_SESSION['penznem']['id']."', user_def_nyelv_id='".$_SESSION['nyelv_id']."', user_last_ip='".$_SERVER['REMOTE_ADDR']."', user_last_visit_datum=NOW(), user_visit_count=user_visit_count+1 WHERE user_id='".$_SESSION['user_id']."'; ") or die(mysql_error()." - auth.php, bejelentkezett felhasználó adatainak frissitese"); } else { $loginerrors[] = 'Hibás e-mail cím, vagy jelszó'; } mysql_free_result($userQuery); } return $loginerrors; } header("Content-Type: text/html; charset=utf-8"); session_start(); if (isset($_GET['action'])) $_POST['action'] = $_GET['action']; if (isset($_POST['action'])) { if ($_POST['action'] == 'login') { // bejelentkezes $loginerrors = array(); if (isset($_COOKIE['login_cookie'])) { // van login cookie if ($_POST['cookie'] = $_POST['password'] == "******") { // nem valtoztak a belepesi adatok list($_POST['username'], $_POST['password']) = explode('[]', $_COOKIE['login_cookie']); } else { // valtoztak a belepesi adatok, cookie torlese setcookie('login_cookie', "", time() - 60); } } if (empty($_POST['username'])) { $loginerrors[] = 'Adja meg e-mail címét'; } else { $username = mysql_real_escape_string($_POST['username']); } if (empty($_POST['password'])) { $loginerrors[] = 'Adja meg jelszavát'; } else { $password = isset($_POST['cookie']) ? $_POST['password'] : md5(mysql_real_escape_string($_POST['password'])); } if (!count($loginerrors)) { if (!empty($_POST['stay_in'])) { // jegyezze meg a belepesi adatokat setcookie('login_cookie', $username.'[]'.$password, 2147483647); } $loginerrors = fillSession($username, $password); } if (count($loginerrors)) { $_SESSION['loginerrorstr'] = "
"; } } elseif ($_POST['action'] == 'logout') { // kijelentkezes $_SESSION = array(); fillSession('guest'); header("Location: ".$_SERVER['PHP_SELF']); } $_POST = array(); } if (!isset($_SESSION['tipus'])) { // anonymus (guest) login fillSession('guest'); } /*** ennek ki tudja, hol lenne a helye. Inkabb az index.php-ben ****/ // error_log(date('Y-m-d H:i:s')); $_SESSION['hird'] = !isset($_COOKIE['hirdetes_cookie']); if ($_SESSION['hird']) setcookie('hirdetes_cookie', "active", time()+1800); // 30 perc /**** ennek lehet, inkabb az index.php-ben lenne a helye ****/ if (!isset($_GET['lang'])) $_GET['lang'] = 'hu'; if ($_GET['lang'] != $_SESSION['lang_code']) { // ha nyelv kod jott az URL-ben es valtozott, modositom $nyelvQuery = mysql_query(" SELECT id nyelv_id, code lang_code, IF(code='hu', '', CONCAT(code, '/')) url_lang_code FROM nyelvek ORDER BY code='".mysql_real_escape_string($_GET['lang'])."', nyelvek_default DESC LIMIT 1; ") or die(mysql_error()." - auth.php, aktualis nyelv modositasa"); $nyelv = mysql_fetch_array($nyelvQuery, MYSQL_ASSOC); if ($_SESSION['tipus'] != 'guest') { // ha bejelentkezett felhasznalo, modositom a nyelvet mysql_query(" UPDATE user SET user_def_nyelv_id='".$nyelv['nyelv_id']."' WHERE user_id='".$_SESSION['user_id']."'; ") or die(mysql_error()." - auth.php, felhasznalo def. nyelv modositasa"); } // $_SESSION = array_merge($_SESSION, mysql_fetch_array($nyelvQuery, MYSQL_ASSOC)); // bug: http://php.net/manual/en/function.array-merge.php; helyette: foreach ($nyelv as $name => $value) $_SESSION[$name] = $value; mysql_free_result($nyelvQuery); } ?>