@phpclubru

Страница 443 из 956
Pavel
16.01.2018
10:18:21
Ребята, у меня давно такая идея, но хз как сделать

подключение классов в модулях

ну стандартно типа include CLASS_DIR.'myclass.php'; include CLASS_DIR.'myclass2.php';

а хочется через какую то функцию это делать

Google
Pavel
16.01.2018
10:19:53
но функция завершится и уничтожит всё

Виталий
16.01.2018
10:20:10
autoloading ??

но функция завершится и уничтожит всё
не придумывай.. дефинированное не уничтожается

Alex
16.01.2018
10:22:06
autoload() __autoload()

Виталий
16.01.2018
10:22:43
Pavel
16.01.2018
10:23:30
документашка советует юзать spl_autoload

Alex
16.01.2018
10:23:54
Вариантов куча)

Виталий
16.01.2018
10:24:18
документашка советует юзать spl_autoload
просто именуй правильно классы и пользуйся composer

http://www.php-fig.org/psr/psr-1/#3-namespace-and-class-names

https://getcomposer.org/

Pavel
16.01.2018
10:25:57
как то я с пространствами имен пока не подружился, или может пока не особо нужно

что там есть $db-> есть $tpl->

еще генератор формочек

Google
Виталий
16.01.2018
10:26:45
подружись, смысл в твоих изысканиях если не понимаешь простого

$db-> есть $tpl-> это переменные

Pavel
16.01.2018
10:28:07
ну при запуске движка работа с шаблонами и базой и объявление классов, которые во многих функциях используются

<?php spl_autoload_register(function ($class_name) { include $class_name . '.php'; }); $obj = new MyClass1(); $obj2 = new MyClass2(); ?>

я вот гляжу на этот пример

Виталий
16.01.2018
10:30:37
ну при запуске движка работа с шаблонами и базой и объявление классов, которые во многих функциях используются
начни с psr и autoloading далее https://ru.wikipedia.org/wiki/%D0%92%D0%BD%D0%B5%D0%B4%D1%80%D0%B5%D0%BD%D0%B8%D0%B5_%D0%B7%D0%B0%D0%B2%D0%B8%D1%81%D0%B8%D0%BC%D0%BE%D1%81%D1%82%D0%B8

Pavel
16.01.2018
10:31:02
получается, эта штука при объявлении несуществующего класса Myclass1 будет пытаться инклудить с таким именем файл?

Pavel
16.01.2018
10:33:00
ого, спасибо

Виталий
16.01.2018
10:33:46
уловил только основу?

Pavel
16.01.2018
10:35:03
я какую то фигню писал типа if (!class_exists(...)) include ....

порой, строчишь, строчишь, некогда вникать во что-то другое, и так годами используешь только то, что знаешь

ладно, спасибо, на досуге буду эксперементировать, ждет меня глобальный рефакторинг

Максим
16.01.2018
11:29:13
PSR4 autoload если юзаешь неймспейсы

Roman
16.01.2018
13:59:10
Господа, кто-нибудь может подсказать какое-нибудь простое решение следующей проблемы: Хочется увеличить время сессии авторизации пользователя. Хочется реализовать с помощью БД. Что можете посоветовать?

Pavel
16.01.2018
14:01:26
Время сессии настраивается обычно где-то в конфиге пхп или в конфиге фреймворка

Так что простое решение - всего лишь найти эту опцию и увеличить ее.

Google
Roman
16.01.2018
14:04:01
Ну мне всё равно хотелось бы на неделю поднять

И знаю, что очень удобно хранить какой-нибудь хэш в БД например

и в куках у пользователя

Pavel
16.01.2018
14:05:42
Ты вообще каким инструметарием пользуешься?

фремвёрки почти все сейчас позволяют сессию в БД запихнуть

Dmitry
16.01.2018
14:08:13
ну так храни в базе случайную строку и ее же ставь в куку - вот и все дела

можно в куках хранить хеш от пароля + всякое полезное, и просто проверять этот хеш

но в общем в любом случае в базу лезть

Roman
16.01.2018
14:11:20
Ты вообще каким инструметарием пользуешься?
в моём случае либо самому писать что-то простое, либо же отдельно сливать класс для работы с сессией

ну так храни в базе случайную строку и ее же ставь в куку - вот и все дела
по сути чисто технически это своего рода одноразовый пароль, который лежит в куках, верно?

в куках надо будет хранить ид юзера и этот хеш (одноразовый пароль)

сверять его в бд, если верный - то продлить жизнь, если неверный - убить

можно в куках хранить хеш от пароля + всякое полезное, и просто проверять этот хеш
а вот это полезный совет. Стоит всё же собирать хэш из полезных данных, в том числе и IP

Pavel
16.01.2018
14:19:54
IP то может меняться

Я бы вообще взял хеш от uuid

Dmitry
16.01.2018
14:24:47
ip нынче активно меняется, да... но в общем от контекста зависит... обычно хеш пароля, ключ приложения какой-то секретный, юзерагент... ну и если нужно ограничить время жизни - то таймстамп

Roman
16.01.2018
14:32:41
В бд придется хранить больше одной записи от одного пользователя, для случая, если он с нескольких устройств хочет держать сессии

Pavel
16.01.2018
14:33:12
Тебе надо построить модель секурити сессий

Потому что генерить хеш из пароля и IP может быть не просто плохой идеей а фатальной

Google
Pavel
16.01.2018
14:34:09
Злоумышленник допустим узнает пароль, вычислит по IP и сможет подменить сессию.

Dmitry
16.01.2018
14:35:36
эм... зачем человеку подменять сессию, если он узнал пароль? ;)

Pavel
16.01.2018
14:36:50
Затем что современные хитрозадроченные системы даже в таком случае позволяют не профукать аккаунт безвозвратно. Сессия остается для пользователя спасательным кругом, ему в нее может прийти уведомление о том что кто-то зашел с другого конца света с его паролем, заблокировать и т.д.

В том числе есть кнопочки "выйти из всех других сессий"

Ну это если Неискусан считает себя великим стартапером, то ему надо обо всем этом подумать )

Dmitry
16.01.2018
14:38:28
и что, зашел под паролем, вышел из всех сессий и привет ;)

Roman
16.01.2018
14:38:54
https://habrahabr.ru/post/325452/

Pavel
16.01.2018
14:39:20
Уже хотя бы юзер узнает что его кикнули и поднимет тревогу

А с подмененной сессий хакерец может тихонько сидеть ваще не вызвая подозрений

Dmitry
16.01.2018
14:40:33
не, сессию он никак не сгенерит из пароля, ибо так как минимум должен быть ключ приложения

не говоря уже о том, что данные пойдут с другого IP

https://habrahabr.ru/post/325452/
не, это хреновая идея гонять сесисонные данные из кук

Pavel
16.01.2018
14:43:05
не, сессию он никак не сгенерит из пароля, ибо так как минимум должен быть ключ приложения
Это же все вопрос модели безопасности. Включаем ли мы туда кражу исходников или нет. Учитываем ARP спуфинг атаки или нет :)

Pavel
16.01.2018
14:43:42
Точнее IP спуфинг

Roman
16.01.2018
14:43:57
не, это хреновая идея гонять сесисонные данные из кук
для проекта, который будет лежать локально на сервере в университете

Dmitry
16.01.2018
14:45:51
потому что пользователю гонять каки постоянно на сервер придется

и так кучу кук понапихают, а если еще и сессионные данные... и вообще зачем тебе сессии?

Roman
16.01.2018
14:51:06
ну удобно, когда неделю не надо авторизовываться

Dmitry
16.01.2018
14:51:35
м, ок, не так спросил... зачем тебе "сессионные данные"

Google
Roman
16.01.2018
14:52:16
да мне в принципе не суть что именно хранить, главное - конечный результат

чтобы когда человек через 6 дней снова откроет сайт - он сразу был авторизованным

Dmitry
16.01.2018
14:52:58
ну тогда hmac кука и все, никаких php сессий и сессионных данных тебе вообще не нужно

Konstantin Vitevskiy
16.01.2018
15:45:36
Ребят, есть тут кто нибудь, кто сможет небольшого бота для телеграм написать?

Pavel
16.01.2018
20:12:22
Кто-нибудь может кратко рассказать, почему код на зефире быстрее обычного всего на 10-40% ? Вроде должно быть быстрее.

Maksim
16.01.2018
20:14:12
а цифра откуда?

там и 10% - уже дохера) а про 40 вообще странно слышать)

Pavel
16.01.2018
20:15:52
Вчера видел в слайдах доклада какого-то чела

с devconf

Maksim
16.01.2018
20:16:13
за какой год-то? явно не с семёркой сравнивали

Pavel
16.01.2018
20:16:28
Ща поищу

Maksim
16.01.2018
20:16:47
пасиб

Pavel
16.01.2018
20:18:06
https://devconf.ru/ru/archive/devconf2016/offer/86 Внизу ссылка на презентацию, 12 слайд

Maksim
16.01.2018
20:20:36
эх( я думал обоснование какие-то будет. А тут чёт на вентилятор набросили и даже почему такая большая дельта ни слова...

тот же фалкон с выходом семёрки нахер никому не нужен. Зефир всё ещё интересен с точки зрения некоторых фишек, но цифра более 10% мне лично кажется враньём

Pavel
16.01.2018
20:22:57
Если просто какой-нибудь цикл из вычислений написать то 1000% должно быть минимум

Maksim
16.01.2018
20:23:48
хз, надеюсь, есть тут кто-то, кто сможет объяснить такую цифру. я бы тоже послушал.

Страница 443 из 956