
Maksim
16.06.2018
14:55:42

Maxim
16.06.2018
15:12:14
http://prntscr.com/jvo6se
Как включить аннотации по-умолчанию?
я имею ввиду список разработчиков и дат изменения кода, который слева на скрине

Bohdan
16.06.2018
15:20:54

Google

Maksim
16.06.2018
15:21:18

Bohdan
16.06.2018
15:24:47

Maksim
16.06.2018
15:25:00

Bohdan
16.06.2018
15:26:55
я его уже с полгода не так люблю, а ты все троллишь)

test
16.06.2018
15:33:41
Ищу php работу.

Maksim
16.06.2018
15:41:44
я б забанил)
ни мозгов, ни уважения. типа, царь объявился, давайте ка дружно жопу лижите.
в чатиках о работе тож самое

Антон
16.06.2018
15:48:58
Есть php приложение самописное, где нет orm. Что можно взять для организации тестирования? Хотелось бы не только юнит тесты, но и функциональные и приемочные. Чтобы можно было как то бд заполнять тестовыми данными. В проекте даже миграций нет, миграции ввиде sql
Есть ли агностик решения?

Dmitry
16.06.2018
15:49:57
а никто не знает чем js инициализатор объекта конвернтуть в пхп массив?
почти все фрейморки для тестирования "агностик"... возьми кодексепшн, например

Антон
16.06.2018
15:51:02
Пока смотрю на codecption, но что то неясно с тестовой бд. Ему надо дамп указывать. Блин, а если дамп много весит? И как тестовый дамп потом поддерживать в актуальном состоянии
Брать без данных дамп?

Google

Dmitry
16.06.2018
15:53:26
тестовый дамп - это дамп специально для тестов
посидеть нужно, погенерить всякими там фейкерами данные
ну а актуальным его поддерживать так же, как и тесты... если какие-то изменения, которые нужно покрыть тестами - нужны новые записи в тестовом дампе
теоретически можно и боевой дамп использовать, просто больше вероятность ошибок и 1-го и 2-го рода... но в общем как напишешь тесты и что проверять будешь

Антон
16.06.2018
15:59:11

Dmitry
16.06.2018
15:59:44
ну как-то так, да

[Anonymous]
16.06.2018
19:44:46
Привет

Nurik
16.06.2018
20:00:57

Valentin
16.06.2018
20:21:44
https://youtu.be/ySGyHHVS6mI

Mykola
17.06.2018
18:56:22
Есть вот такой запрос
UPDATE cms3_objects SET type_id=(SELECT type_id FROM cms3_objects WHERE name LIKE "«UNIPAK» (Фум лента «Jumbotape»)" AND owner_id!=21518 ) WHERE name LIKE "«UNIPAK» (Фум лента «Jumbotape»)" AND owner_id=21518;
вылезает вот такая ошибка
#1064 - You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near 'SELECT`type_id`FROM`cms3_objects` FROM `cms3_objects` WHERE `name` LIKE "«UNIP' at line 1
при чем если выполнить только
SELECT `type_id` FROM `cms3_objects` WHERE `name` LIKE "«UNIPAK» (Фум лента «Jumbotape»)" AND `owner_id`!=21518
то type_id возвращает корректно

Sergey
17.06.2018
18:59:49
учимся пользоваться форматированием в сообщения.
SOME SQL QUERY
\```
CODE GOES HERE
\```


Mykola
17.06.2018
19:02:44
ок, спасибо
окей, я переписал
UPDATE cms3_objects
SET type_id= o2.type_id
FROM cms3_objects as o2
WHERE name LIKE "«UNIPAK» (Фум лента «Jumbotape»)"
AND owner_id=21518
AND o2.name LIKE "«UNIPAK» (Фум лента «Jumbotape»)"
AND o2.owner_id!=21518;
но ошибка осталась
#1064 - You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near 'FROM`cms3_objects`as`o2` FROM cms3_objects WHERE name LIKE "«UNIPAK» ' at line 2
как я вижу - тут ещё что-то с кодировкой, хотя кодировка таблицы utf8_general_ci

Sergey
17.06.2018
19:58:51
а как ты думаешь, с какой кодировкой работает твой клиент?)

Mykola
17.06.2018
20:12:06
я запрос выполняю напрямую в phpMyAdmin. В текстовом поле все отображется нормально.

Alexandr
17.06.2018
20:37:38
Наколько безопасно писать global $var внутри функции которая должна вытаскивать данные из базы данных,чтобы показывать это пользователю? Не считается ли это дырой? прошу не путать между $_GLOBAL и global $var

Maksim
17.06.2018
20:39:27
можно подумать они чем-то различаются. И при чём тут безопасность?
это признак рукожопства и к безопасности отношения не имеет

Dmitry
18.06.2018
07:36:44
вроде бы global ваще не нужно юзать

Google

Maksim
18.06.2018
07:43:16
не вроде бы, а не нужно)
за такое в приличном обществе по лицу бьют)

F01134H
18.06.2018
10:12:15
Почему?

f4rt~
18.06.2018
10:13:37
Почему?
видимо приличные люди любят драться

F01134H
18.06.2018
10:14:04
=)

Aleh
18.06.2018
10:14:23
Глобальный стейт зло, потому что его нельзя контролировать

F01134H
18.06.2018
10:14:41
а про доступ к инкапсулированным переменным

Aleh
18.06.2018
10:15:03
Кем они инкапсулированы?)

F01134H
18.06.2018
10:15:06
хз
мной
допустим

Aleh
18.06.2018
10:15:23
Ты в любом месте проекта можешь написать global $varName;
И сделать там что угодно

F01134H
18.06.2018
10:15:39
разве?
а я думал это просто обращение к внешним переменным
аля замыкания

Aleh
18.06.2018
10:16:14
Ты с use не путаешь?

F01134H
18.06.2018
10:16:21
не
просто в доке

Google

F01134H
18.06.2018
10:16:41
<?php
$a = 1;
$b = 2;
function Sum()
{
global $a, $b;
$b = $a + $b;
}
Sum();
echo $b;
?>
а, все, понел
а мне нравится. Я бы использовал такой механизм вместе с goto

Admin
ERROR: S client not available

Aleh
18.06.2018
10:18:11
Ну типа да, такой механизм идеален для проектов с goto

Shmaltorhbooks
18.06.2018
10:18:31
за goto бьют даже в неприличном обществе)

f4rt~
18.06.2018
10:18:43
а можно сделать некст левел геттер * через global ?

Valentin
18.06.2018
13:03:45
Как правильно гуглить что бы найти смысл параметра cost в функции password_hash(), ну то есть увеличивая cost мы увеличиваем сложность сгенерированого хэша пароля, но в чём состоит эта сложность? Почему пароль с cost 10 менее защищён нежели пароль с cost 15 к примеру?

Shmaltorhbooks
18.06.2018
13:05:41
http://php.net/manual/ru/function.password-hash.php
там же написано
cost (integer) - задает необходимую алгоритмическую сложность. Пример использования этого значения можно посмотреть на странице посвященной функции crypt().
и ссылка есть

Valentin
18.06.2018
13:08:20
Ну это я прочитал, мне интересно почему чем больше алгоритмическая сложность тем защищеннее пароль, почему бы не написать md5(md5(md5(sha1(... И получить свою высокую алгоритмичную сложность, чем password_hash лучше?

V
18.06.2018
13:08:48
Ну у тебя используется мд5 что уже плохо
пассворд_хеш использует бкрипт по дефолту

Valentin
18.06.2018
13:09:04

V
18.06.2018
13:09:18
Погугли

Shmaltorhbooks
18.06.2018
13:09:23
тем, что мд5 перебирается легко

Alexander
18.06.2018
13:09:29

Shmaltorhbooks
18.06.2018
13:09:46
на видяхах современных по несколько миллиардов паролей в секунду тупым брутфорсом перебирают

Google

Shmaltorhbooks
18.06.2018
13:11:35
а в норм алгоритмах есть подход, согласно которому для вычисления хеша надо неебическое количество вычислений. и быстрее, чем 1-2 пароля в секунду ты никак не посчитаешь
и чем больше эта алгоритмическая сложность - тем меньше паролей в секунду можно перебрать

Valentin
18.06.2018
13:11:58
То есть вся эта алгоритмическая сложность защищает от брутфорса, но помогает ли она от уже сгенерированных паролей?
Или этот вопрос только с помощью соли решён?

Shmaltorhbooks
18.06.2018
13:12:25
если они у тебя уже есть, то не меняй эту сложность - хеши будут другие
одна и та же строка с разным cost будет давать разные хеши
с другой стороны - можно юзерам принудительно пароли сбросить) в целях безопасности, такскать))

V
18.06.2018
13:13:32
Ну соль всё усложняет для брутфорса, однако, если у тебя стырили базу, то скорее всего доступ к серваку уже есть. Соотвественно и соль найти не проблема.
Имея соль, брутфорс опять быстр и лёгок на подъеме

Shmaltorhbooks
18.06.2018
13:13:54
соль хранится (скорее всего) в той же табличке)

V
18.06.2018
13:14:17
эээ да, это я и имел ввиду

Shmaltorhbooks
18.06.2018
13:15:06
а если бкрипт - база (или хеш пароля) у злоумышленника есть, но вычислить по нему пароль - очень геморно