хм.. связь java, c++ и js.. интересно))
bibilink, я больше по яве и c++ убиваюсь.. там есть где развернуться.. можно взять во внимание и actionscript (flash), но не сказал бы что он так эффективен как вышеперечисленные мною языки.
Добавлено 09.02.17 в 00:31:52:
Часть кода..
http://dumpz.org/2497142/
3KZO, меня добавь http://vk.com/ebatih у меня в друзьях есть djpasica создатель 4мас и дройдера
Всем привет) Расскажу немного о ходе продвижения в написании цмс.
1. Убрано с кода всё лишнее.
http://dumpz.org/2497227/ на выходе мы получим следующее http://dumpz.org/2497228/
2. Безопасность, ввод данных и формы.
Написал небольшой, но удобный класс для построения форм. Написал до ужаса простую проверку на CSRF, т.е на частые запросы или повторые запросы с форм.
http://dumpz.org/2497229/
3. Написан дизайн) Постарался человек, под ником us{141} (pasha963)
Скриншот: https://pp.vk.me/c637422/v637422246/311d8/tiWInVle0bs.jpg
4. Написан очень удобное js ядро, который позволит удобно, а главное качественно создавать отдельные модули не занимая много места в плане кода.
привет, че везде разные названия проекта? то атом то солар
Добавлено 12.02.17 в 15:55:14:
+ не хочу обижать Pasha963™, но не пора ли рисовать что то новое? Понимаю что это для пабла, но все же
PS я не говорю что ты г.дизайнер
мне кажется что и это название я поменяю))
Вообще думал назвать Атом, потому что вес маленький, потом назвал Солар, что в переводе как Солнечный.. Сейчас думаю сменить на что-то более посерьезней.. хотя мб и останется.)
3KZO, возможно я придираюсь, но где всё это:
1. Одна точка входа (сейчас это почти как стандарт, так как с твоим подходом даже роутинг толком не сделать)
2. Шаблоны (я про разделение логики и представления)
3. Безопасность (для паролей уже даже дока по PHP не рекомендует использовать md5)
4. Могу ещё дополнить список, если интересно
Немного Code Review:
include __DIR__ . '/sys/start.php';
- Уже говорил про единую точку входа. Писать это на каждой странице не есть гуд.
[code]
if ($user !== null)
{
Удалён /');
exit;
}
[/code]
- Классика, так и остались на уровне DCMS... Пора уже понять, что поддерживать такой код - занятие для извращенцев. Прикажешь следить за тем, чтобы я не переопределил жизненно важные переменные у себя в коде?
- Какая нафиг ошибка может быть вызвана при установке заголовка?
- Предлагаешь делать подобную проверку в куче с остальным кодом, про middleware не слышал?
[code]
$doc = new document();
$doc->title = 'Вход';
[/code]
- Очень полезный класс, с таким же успехом можно вручную подключать все части представления... Есть же готовые шаблонные системы, которые можно легко интегрировать с свою систему, только для этого нужно саму систему переписать
[code]$security = new Security();
$security->is_valid($_POST['anti_csrf'])[/code]
- Мне почему-то кажется, что от этого класса вообще нет толку, тебе просто захотелось создать новый класс
- А ещё стрёмно обрабатывать разные запросы в одном месте (я про отображение формы и её же обработку)
- isset($_POST['anti_csrf']) - почему именно так? Неужели нельзя проверить метод запроса?
[code]$bind = [];
$bind[] = $_POST['name'];
$stmt = $db->executeQuery('select * from `users` where `users`.`name` = ? limit 0, 1;', $bind);
if ($stmt->rowCount() != 0)
{
$row= $stmt->fetch();
if ($row['password'] == md5($row['id'] . md5($_POST['password'])))
{
$token = md5(rand());
$bind = [];
$bind[] = $token;
$bind[] = $row['id'];
$db->executeQuery('update `users` set `access_token` = ? where `users`.`id` = ?;', $bind);
$_SESSION['user'] = $token;
Удалён /');
}
}[/code]
- Где проверка на наличие ключа name у переменной $_POST ?
- $stmt->rowCount() - почему нельзя сделать просто fetch(), а потом проверить $result !== false, ты же два запроса таким образом делаешь
- Про md5 уже говорил, забудь про него, когда речь идёт о безопасности паролей
- Ну ток ладно, md5 сойдёт, но какой нафиг access_token? Ты хоть знаешь, что это такое? Назвал бы уже просто - token
- Надеюсь ты хоть добавил ключ UNIQUE для поля token в таблице users?
- Снова подавление ошибки в самом ненужном месте
- Желательно после установки заголовка Location убрать весь ненужный вывод (я про форму ниже), т.е. просто добавить exit
[code]
$form = new FormForm();
$form->action('/login.php');
$form->method('POST');
$form->input([
'type' => 'hidden',
'name' => 'anti_csrf',
'value' => $security->getToken()
]);
$form->label('Имя');
$form->input([
'name' => 'name'
]);
$form->label('Пароль');
$form->input([
'type' => 'password',
'name' => 'password'
]);
$form->submit('Войти');
$form->display();[/code]
- FormBuilder - дело вкуса, но если и создавать свой Builder, нужно хоть как-то упростить процесс создания формы... Как минимум, можно избавится от необходимости добавлять anti_csrf вручную. Про остальное говорить не стану, я бы вообще удалил это класс.
P.S. Я и сам раньше писал примерно такое, но это была просто практика, а не попытка написать свою CMS для общего доступа. Вот увидит твою CMS человек без опыта и будет также писать, это очень тормозит процесс развития. Пожалуйста, остановись, не нужно выкладывать это, лучше займись чем-то другим.