Помощник
|
Немного о MongoDB |
alexdrob
|
Сообщение
#1
|
||
|
|
||
|
|||
alexdrob
|
Сообщение
#2
|
|
|
Хорошая особенность MongoDB что не нужно заботиться о sql injection :)
А ещё вам не нужно создавать таблицы и описывать их поля. При первом обращении и сама БД и таблица и поля создадутся. при чём в любой момент напишите дополнительные поля и они добавятся. Пример простейшей регистрации юзеров. config [PHP]<?php //Инициализация сессий session_start(); //Инициализация бд $m = new Mongo(); //Выбор базы $db = $m->SiteDB; //Пользователь вошел? function isLogin() { return !empty($_SESSION['username']); } //Получаем имя пользователя function getUserName() { return empty($_SESSION['username']) ? '' : $_SESSION['username']; } //Закрываем странички function Lock() { isLogin() || exit('Нельзя смотреть!'); } //Передана переменная action? if (isset($_POST['action']) && isset($_POST['login']) && isset($_POST['password']) && !isLogin()) { //Вызываем функцию в зависимости от action switch ($_POST['action']) { case 'reg' : newUser($_POST['login'], $_POST['password']); break; case 'login' : loginUser($_POST['login'], $_POST['password']); break; default : exit(); } } //Регистрация нового пользователя function newUser($login, $password) { global $db; $login = htmlspecialchars($login); //имя пользователя свободно? if ($db->Users->find(array('login' => $login))->count() == 0) { //добавляем пользователя $db->Users->insert(array('login' => $login, 'password' => md5($password))); //ну и сразу входим $_SESSION['username'] = $login; //и выведем сообщение что это всё таки была регистрация echo '<div style="text-align: center">Регистрация прошла успешно!</div>'; } else { //имя занято echo '<div style="text-align: center">Имя недоступно!</div>'; } } //Авторизация function loginUser($login, $password) { global $db; //пользователь найден? if ($db->Users->find(array('login' => $login, 'password' => md5($password)))->count() == 1) { //входим $_SESSION['username'] = $login; } else { //и выведем сообщение что это данные не верны echo '<div style="text-align: center">Не верный логин или пароль!</div>'; } } ?>[/PHP] index [PHP]<?php include "config.php"; //Если пользователь выполнил вход if (isLogin()) { //Выводим приветствие ?> <div style="text-align: center">Добро пожаловать, <?php echo getUserName() ?>!</div> <?php //Если пользователь не выполнил вход //Выводим форму входа/регистрации } else { ?> <form id="frmMain" style="margin: 0 auto; width: 200px;" method="post"> <fieldset> <legend>Логин</legend> <input type="text" name="login"/> </fieldset> <fieldset> <legend>Пароль</legend> <input type="password" name="password"/> </fieldset> <input type="hidden" id="action" name="action" value=""/> <input type="submit" onclick="document.getElementById('action').value = 'reg'" value="Регистрация"/> <input type="submit" onclick="document.getElementById('action').value = 'login'" value="Вход"/> </form> <?php } ?>[/PHP] Ну и пример странички защищённой паролем [PHP]<?php include "config.php"; Lock(); ?> Тут секрет![/PHP]
|
|
|
||
|
Похожие темы
Тема | Ответов | Автор | Просмотров | Последний ответ | |
---|---|---|---|---|---|
Немного статей уникальных и полезных |
6 | mark2013 | 8917 | 14.4.2022, 15:31 автор: mark2013 |
|
Требуется немного рерайта но периодически... |
2 | GigArt | 1081 | 12.1.2022, 12:45 автор: acw-895 |
|
Обмен перекрестный Новостник, сми, обо всём + немного женская тема - тиц 30, не заспамлен совсем, чистый. | 8 | anastasiaivan | 12625 | 17.11.2017, 11:11 автор: maksut |
|
нужно немного изменить меню, Joomla, шаблон корпорейт респонс | 1 | MaxChemist | 2091 | 7.3.2016, 15:06 автор: WorkingMan |
|
Продам немного сайтов (Builder, YouMoney, TravelGo, iBusiness, UniversalCredit) | 3 | LoraDi | 2132 | 30.6.2015, 22:34 автор: LoraDi |
Текстовая версия | Сейчас: 20.4.2024, 7:13 |