Добрый день господа !!!! Суть басни и проблемы такова: При входе на страницу используется окно авторизации, далее переход на страницу с множеством фреймов. Посоветуйте как реализовать поддержку результата авторизации в каждом фрейме. Тобиш, чтобы потом не обращаться каждый раз в базу на проверку подлиности юзера из каждого фрейма. при входе в базе апдейт на статус 1, при выходе на 0.
Код (Text): // АВТОРИЗАЦИЯ $login = $_POST[login]; $password = ($_POST[password]); if ( isset($idp) and isset($login) and isset($password) ) { $dbconnect = @mysql_connect("$dbhost", "$dblogin", "$dbpassword"); // начало сеанса с базой данных $use = @mysql_select_db($dbname, $dbconnect); // выбор базы данных $result = @mysql_query("select * from users where login = '$login'"); // запрос в БД $resultarray = @mysql_fetch_array($result); // перевод результата в массив $dbclose = @mysql_close($dbconnect); // закрытие сеанса с БД $md5pas = @md5("$password"); } if ( $md5pas == $resultarray["password"] and $dbconnect and isset($login) and isset($password) and $resultarray["access"] == "yes" ) { $permissions = $resultarray[permissions]; $login = $resultarray[login]; $email = $resultarray[email]; $icq = $resultarray[icq]; $url = $resultarray[url]; $name = $resultarray[name]; $family = $resultarray[family]; $patronymic = $resultarray[patronymic]; $sex = $resultarray[sex]; $day = $resultarray[day]; $month = $resultarray[month]; $year = $resultarray[year]; $country = $resultarray[country]; $region = $resultarray[region]; $city = $resultarray[city]; $street = $resultarray[street]; $phone = $resultarray[phone]; $mobilphone = $resultarray[mobilphone]; $profession = $resultarray[profession]; $about = $resultarray[about]; $regdate = $resultarray[regdate]; $regtime = $resultarray[regtime]; $access = $resultarray[access]; @session_register("permissions", "login", "email","icq", "url", "name", "family", "patronymic", "sex", "day", "month", "year", "country", "region", "city", "street", "phone", "mobilphone", "profession", "about", "regdate", "regtime", "access"); } // авторизация закончена пример авторизации из моего старого скриптика ... примитив конечно, но работало на ура...
Hight 1.ты поставь себе error_reporting(E_ALL) и будешь приятно удивлен ... 2. так и норовит в login впихнуть ' or '1=1 3.ошибки надо не подавлять @, а обрабатывать
440hz Не придирайся к этому коду... Я его тут для примера привёл как раз потому-что он старый и неактуальный... Но при этом вполне наглядный... Новенькие коды строго секретны )))
Hight 1. секретничать будем в другом месте. как правило секреты состоят из кривого и дырявого кода который автор боится показать, а только пыжится. 2. даже для примера приводи РАБОТАЮЩИЕ и ПРОВЕРЕНЫЕ КОДЫ с пониманием того что они делают. в даном случае это не так.
440hz Это код полность рабочий и проверенный... Единственный недостаток, это то, что он очень старый... А насчёт секретничать - не каждый будет так просто выдавать свои ноу хау... Человеку нажна была авторизация, я ему привел пример... Пусть разберётся, модифицирует, улучшит... Если будет непонятно, пусть спросит, подскажем ведь... Практика ещё никому не приносила вреда )
К сожалению не могу... Я писал это для одной организации за символическую плату (интернет-траффик)... Это был небольшой движочек для сайта с админкой, гостевой, новостями и крутилось всё это внутри сети... И кажется до сих пор крутится... По-этому извиняй...
Hight уверен? я получу авторизацию первого юзера который мне отдаст запрос. в 99% это админ. но это не важно. главное я пройду авторизацию.
440hz Подожди... Ты хочешь сказать, что если в поле ввода логина ты введёшь - ' or '1=1 то ты каким-то образом сможешь пройти авторизацию... Не верю... Специально сейчас посидел, подумал над запросом в БД... Поднял старые коды, установил (install.php есть) и попробовал, и нифига не получилось... Как я и предполагал... select * from users where login = '' or '1=1 '; - запрос правильный получается... Но он нифига в данном случае не даёт... Авторизация ведь идёт путём сравнения ХЕШ-кодов из возврашённой строки таблицы... Если хеши не совпали, то и авторизацию ты не получишь...