PHP.SU

Программирование на PHP, MySQL и другие веб-технологии
PHP.SU Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи

Страниц (792): « 1 [2] 3 4 5 6 7 8 9 ... » В конец

> Найдено сообщений: 11869
Мелкий Отправлено: 16 Июня, 2021 - 11:08:47 • Тема: Cоответствуют ли данные настройки PSR-4? • Форум: Вопросы новичков

Ответов: 4
Просмотров: 342
asker пишет:
а разве composer.lock должен быть закомичен в репозиторий ?

https://getcomposer[dot]org/doc/01-b[dot][dot][dot]-version-control
Для проекта - должен быть.
Для библиотеки - не обязательно.
Мелкий Отправлено: 14 Июня, 2021 - 15:44:45 • Тема: что можно использовать вместо LIKE (искать похожие слова-теги) • Форум: Вопросы новичков

Ответов: 10
Просмотров: 658
Lolya пишет:
Нет, индекс будет использоваться для поля тегов

don.bidon совершенно прав. Речь совершенно определённо о mysql, значит совершенно рядовой btree и никаких триграмных индексов. btree не может эффективно ускорять like '%const%' запросы.
Планировщик в принципе может сказать, что пойдёт в индекс - но лишь чтобы прочитать полностью весь индекс потому что он чуть компактнее чем вся таблица.

Lolya пишет:
Получаем ид, потом в торрент-табле.пхп подключать через него весь основной обвес старого запроса в цикле. Но это выходит не 1 запрос на страницу с 25 фильмами, а 1+25=26. Да, они будут быстрыми по исполнению

Не будут. Даже на смешных объёмах данных в сотни тысяч строк.

Lolya пишет:
перечисленными через запятую для каждой новой строчки-новости

Сначала приведите в нормальную форму.
Затем уже можно думать, какую дальнейшую задачу необходимо решать. Поиск по тегам? В нормальной форме элементарен.
Похожие слова как подсказка ввода? Это like 'const%' обычно, чудесно работающие по btree т.к. префиксный поиск.
Похожие теги относительно того тега что сейчас смотрит пользователь? Отдельная таблица, из веба только читаемая, а заполняемая асинхронно в фоне (крон, брокер очередей, etc)

К примерно половине индексов показанных в начале темы есть вопросы "зачем оно вам понадобилось".
Мелкий Отправлено: 11 Июня, 2021 - 11:11:08 • Тема: Частичное совпадение во вложенном массиве • Форум: Вопросы новичков

Ответов: 7
Просмотров: 588
LML пишет:
Кстати, что вы можете сказать по поводу решения ботом задач по арифметике?

То могу сказать, что это хорошая классическая учебная задача по программированию. Правильное направление - обратная польская запись, "Reverse Polish notation".
Мелкий Отправлено: 11 Мая, 2021 - 17:41:32 • Тема: array_filter • Форум: Вопросы новичков

Ответов: 5
Просмотров: 333
При $b = 12; получаем константу в $condition как результат конкатенации строки с числом.

$string = 'a = 12';
или
$string = 'a = '.$b;
у вас удивления не вызывает? Что в $string окажется строка "a = 12"?
А в чём разница с $string = '$a = '.$b; или $string = '#a = '.$b; ? Никакой разницы. Конкатенация строки и переменной (приводимой к строке).

Могу попробовать угадать, что вы хотите сделать что-то вроде:
PHP:
скопировать код в буфер обмена
  1. $sport1 = array_filter($get_csv1, function($a) use($b) {return $a[1] == $b;});
Мелкий Отправлено: 11 Мая, 2021 - 16:30:51 • Тема: array_filter • Форум: Вопросы новичков

Ответов: 5
Просмотров: 333
А почему бы должно работать? Сравниваете несуществующую переменную $b и число 12. Потом присваиваете переменной $condition результат сравнения строки с несуществующей переменной. В этот самым момент условие и вычисляется. Таким образом в array_filter передаёте константное условие и, следовательно, сам array_filter лишний.
Мелкий Отправлено: 28 Марта, 2021 - 22:31:37 • Тема: Расшифруйте код • Форум: Объектно-ориентированное программирование

Ответов: 2
Просмотров: 1540
grafillo пишет:
return redirect()->route('forms')->with('success',"Успех!");

=
PHP:
скопировать код в буфер обмена
  1. $a = redirect();
  2. $b = $a->route('forms');
  3. $c = $b->with('success',"Успех!");
  4. return $c;


По-умному называется fluent interface
Мелкий Отправлено: 13 Марта, 2021 - 21:11:30 • Тема: Модульное приложение на php • Форум: Вопросы новичков

Ответов: 20
Просмотров: 1263
dcc0 пишет:
Мне, кажется, надо позвать тов. Мелкого. Он, наверняка, знает про транслятор.

ась? Про что вопрос?

Vladimir Kheifets пишет:
т.к. html <form> перед <?PHP

в листинге над этим цитируемом сообщением <form> стоит после <?PHP

Ну и может быть output_buffering включен.
Мелкий Отправлено: 11 Марта, 2021 - 17:48:38 • Тема: curl скачать несколько файлов с одного хоста • Форум: Работа с сетью

Ответов: 3
Просмотров: 1623
Смотрите в сторону этих констант:
PHP:
скопировать код в буфер обмена
  1. curl_setopt($ch, CURLOPT_TIMEVALUE, $filemtime);
  2. curl_setopt($ch, CURLOPT_TIMECONDITION, CURLOPT_TIMECOND_IFMODIFIEDSINCE);


Для нескольких запросов последовательно в рамках одного tcp коннекта не делайте curl_close, а формируйте следующий запрос в рамках всё того же ресурса.
Мелкий Отправлено: 10 Февраля, 2021 - 19:41:41 • Тема: Разрешить некоторые символы • Форум: Регулярные выражения

Ответов: 3
Просмотров: 1450
Olegarh1a пишет:
возможно же вставить html теги в поле password

И? Да хоть бинарного мусора. password_hash и password_verify как-то без разницы.

Olegarh1a пишет:
как правильно фильтровать или экранировать ?

Зачем?
Вот не поверите - неверен сам вопрос.
Верный вопрос:
- как передать значение в SQL так, чтобы СУБД не могла воспринять часть данных за команду
- как представить данные в HTML так, чтобы браузер отображал именно эти данные, а не считал что это разметка
- как корректно использовать данные в любом_заданном_формате, чтобы они воспринимались как эти самые данные при чтении этого самого заранее известного формата

"оой, ну наверное кавычки это страшная хакерская штука, их не должно быть в пароле"? "ой, уравнение a<b and b>c никто в здравом уме не напишет, это же опаснейших HTML тег"?

Вам нужно подставить данные в CSV? Что, будете удалять все запятые из текста? Да нет, конечно. Возьмёте не менее стандартные функции форматирования CSV
Нужно передать JSON? Реально будете вырезать регуляркой всё, что имеет значение в JSON? Опять нет. Возьмёте стандартный json_encode
Нужно подставить параметр в ссылку? urlencode к вашим услугам.
Вам нужно вывести данные в HTML? htmlspecialchars.
Передать данные базе данных? У каждой базы есть родной интерфейс для этого. В частности, механизм prepared statements.

На сладкое мой любимый пример:
Введите сумму перевода: _
Везде проверили, что прислали число, что у пользователя есть столько денег, пользователь существует. Всё отлично, делаем одному balance = balance + ?, второму вычитаем с баланса
А потом некто просто вводит отрицательное число.

Потому второй верный вопрос: какие данные мы тут ожидаем и где их будем использовать.
Мелкий Отправлено: 10 Февраля, 2021 - 13:38:01 • Тема: Разрешить некоторые символы • Форум: Регулярные выражения

Ответов: 3
Просмотров: 1450
Проверьте минимальную длину пароля. Всё. Какая вам разница, какой пароль хочет использовать пользователь? Какой смысл в ограничении всего лишь в 30 символов?

Про sql injection - см. prepared statements.
Мелкий Отправлено: 28 Января, 2021 - 10:08:00 • Тема: кэширование, когда обновлять кэш? • Форум: Вопросы новичков

Ответов: 10
Просмотров: 833
"в программировании есть только две сложные вещи: инвалидация кеша, выбор имени переменной, и ошибки на единицу" (Джефф Этвуд)

При обновлении данных сбрасывайте связанные с этими данными кэши. Возможно потребует порядком усилий для поиска всех мест, откуда изменения выполняются.
Мелкий Отправлено: 15 Января, 2021 - 10:18:56 • Тема: Выборка данных из нескольких таблиц? • Форум: Вопросы новичков

Ответов: 1
Просмотров: 277
См. explain и/или профилирование запроса для используемой у вас СУБД.
Мелкий Отправлено: 28 Декабря, 2020 - 10:38:30 • Тема: найти отсутствующие записи • Форум: SQL и Архитектура БД

Ответов: 2
Просмотров: 689
Раз не указали СУБД, предположим что это postgresql.

CODE (SQL):
скопировать код в буфер обмена
  1. SELECT d FROM generate_series('2020-12-01', '2020-12-07', interval '1 day') d WHERE NOT EXISTS (SELECT FROM tablename WHERE created_at >= d AND created_at < d + interval '1 day')
Мелкий Отправлено: 10 Декабря, 2020 - 13:13:45 • Тема: Как отдать JSON ответ с помощью PHP (для Яндекс Турбо)? • Форум: Работа с сетью

Ответов: 2
Просмотров: 1666
Запросите свой скрипт curl'ом и посмотрите внимательно (любой hex редактор в помощь) что именно у вас в ответе получается. Может BOM или ещё что сложно-заметное, может order_id пустой
Мелкий Отправлено: 06 Декабря, 2020 - 21:54:57 • Тема: Выбор из базы по enum('yes','no') или enum('1','0') , что лучше и быстрее? • Форум: Вопросы новичков

Ответов: 2
Просмотров: 363
Сейчас найду мой любимый пример...

CODE (sql):
скопировать код в буфер обмена
  1. MariaDB [test]> CREATE TEMPORARY TABLE speedlimit (i int, lim ENUM('20', '30', '40', '50', '60'));
  2. Query OK, 0 rows affected (0.000 sec)
  3.  
  4. MariaDB [test]> INSERT INTO speedlimit VALUES (1, 60);
  5. ERROR 1265 (01000): DATA truncated FOR COLUMN 'lim' at row 1
  6. MariaDB [test]> INSERT INTO speedlimit VALUES (2, 5);
  7. Query OK, 1 row affected (0.000 sec)
  8.  
  9. MariaDB [test]> INSERT INTO speedlimit VALUES (3, '60');
  10. Query OK, 1 row affected (0.000 sec)
  11.  
  12. MariaDB [test]> SELECT * FROM speedlimit;
  13. +------+------+
  14. | i    | lim  |
  15. +------+------+
  16. |    2 | 60   |
  17. |    3 | 60   |
  18. +------+------+
  19. 2 rows IN SET (0.000 sec)
  20.  
  21. MariaDB [test]> SELECT * FROM speedlimit WHERE lim > 20;
  22. Empty SET (0.000 sec)
  23.  
  24. MariaDB [test]> SELECT * FROM speedlimit WHERE lim > '20';
  25. +------+------+
  26. | i    | lim  |
  27. +------+------+
  28. |    2 | 60   |
  29. |    3 | 60   |
  30. +------+------+
  31. 2 rows IN SET (0.000 sec)
  32.  

Всё понятно почему работает именно так? Будет ли это понятно вашим коллегам тоже? А тому, кто будет читать код через год?
В общем, не надо в enum числа использовать. Работает оно как задокументировано в мануале, но порой неожиданно для неподготовленного наблюдателя.

Страниц (792): « 1 [2] 3 4 5 6 7 8 9 ... » В конец
Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB