Здравствуйте , расталкуйте пожалуйста как же мне сделать просую авторизацию с помощю концепции MVC index.php - Контроллер model/core.php - Ядро ( процедуры функции классы) view/ main.php - главный шаблон view/login.php - форма авторизации ( подставляется в main.php) Написал функцию а что дальше понять немогу ///------------------------------- Авторизация--------------------------/// function Login($username, $password, $remember) { // Принемаем данные из формы авторизации в массив POST $username = $_POST['username']; // Demo $password = $_POST['password']; // Demo /// ------------------- Куки ---------------- /// if ($remember) // Если пользователь пожела запомните себя , запомним его имя в куках setcookie('username', $username, time() + 3600 * 24 * 7); /// ------------------- Куки конец ---------------- /// if ($username && $password) { // Выберем запросом данные $query_user = mysql_query("SELECT * FROM users WHERE username='$_username'"); /// $numrows = mysql_num_rows($query_user); /// количество рядов результата запроса /// Если результат запроса не вернет 0 if ($numrows!=0) { // Пройдёмся по массиву цыклом, и при этом сравним что пришло из формы и что есть в базе while ($row = mysql_fetch_assoc($query_user)) { $dbusername = $row['username']; $dbpassword = $row['password']; /// Если есть совпадения if ($username == $dbusername && $password == $dbpassword) { // Добавим в сессию имя пользователя $_SESSION['username'] = $username; // Добавим в сессию ФИО юзера $_SESSION['fname'] == $query_user['fname']; } else echo "Неверный пароль !"; } } else $message = "Error"; echo '<div class="message">'.$message.'</div>'; die ("Пользователь не найден."); } else die ("Введите логин и пароль."); } ///------------------------Авторизация конец----------------/// ///-------------------Сброс Авторизации------------------ /// function Logout() { // Делаем куки старыми setcookie('username', time() - 1); // Сброс сесии unset($_SESSION['username']); } ///-----------------Сброс Авторизации конец----------------/// Помогите пож довести до рабочего состояния
mvc тут не поможет. для начала сделай просто чтоб все зароботало. исправь все глюки. а потом уже переложишь на mvc. у тебя щас не авторизация а НЕЧТО, подверженное sql инъекции, подмене кук, открытому хранению пароля...
Это всё работает и работать будет локально , чисто для начала хочу переложить авторизацию всё остальное работает . Помогите пожалуйсто.
помогаю: сожги этот код, он плохой. хочешь не застревать на этом этапе, а пиздовать дальше — возьми чужую проверенную авторизацию.
Вы шыбко умный я вижу, поясните как нужно видимо форум для этого и есть !!! Я пришел из С++ и не думаю что можно так говорить когда человек только началь позновать php? Вы зачем отвечаете ????
концепции и постулаты: - MVC это в основном отделение логики от отображения результата. Где тут в авторизации место для M не очень понятно. Авторизация уж слишком простая штука. Квантовая. Ты либо авторизовался, либо должен авторизоваться. - В базе данных обычно есть только ОДНА пара логин+пароль. Выбирать всех юзеров с таким логином нет смысла. Либо такой есть, либо такого нет. - В куки надо писать что-то по-надёжнее, чем логин, ибо любой может себе в куку записать логин соседа, т.к. обычно это открытая инфа. - die ("Пользователь не найден.") - вот этого вот не надо в принципе. die и exit нужны чтобы завершить выполнение сценария. Совсем. Имеет смысл только при разлогине, где перед exit будет редирект на главную страницу.
BeetleArt, понимаете в двух словах тут не объяснишь. мы вот вам написали в двух словах, какие видим проблемы. это вам не помогло а только расстроило. ваш код переделывать нужно полностью. в двух направлениях. 1) как я уже писал, исправить проблемы в текущем коде, чтоб работала правильно логика 2) перераспределить логику на уровни Модель-Представление -Контроллер. объяснять с нуля вам это никто не будет. ибо это займет кучу времени и сил. да и незачем. в инете есть куча инфы по этому вопросу. вы начните делать сами. пробуйте. по пути спрашивайте на форуме как сделать лучше. и вам подскажут. на конкретные вопросы отвечать легче. а на общие вопросы типа -помогите это все исправить - отвечать сложно и неэффективно.
Прежде чем что-то воплощать в коде, надо изучить предмет. Очень рекомендую на русской википедии повтыкать слова аутентификация, авторизация, идентификация. Очень хорошо всё расписано. Затем надо представить себя на месте злоумышленника. Что проще подделать или насколько катастрофично если кто-то сумел подсмотреть твою авторизационную куку? В ней может лежать, варианты: - ид. (или логин) пользователя (это даже подсматривать не надо, открытая информация) - ид. пользователя + пароль (подсмотрели - давай досвидания!) - ид. пользователя + хеш пароля (сложность подбора может быть разной) - ид. сессии (есть варианты, когда можно подсмотреть - обсуждалось здесь) - ид. пользователя, "подписанный" приватным ключем, имеющий срок устаревания - HMAC. на вики про него тоже есть описание. Когда с этими вещами всё понятно, можно приступать к "красивостям" вроде раскладки на M, V и C.