«phpClub» — архив тем ("тредов"), посвящённых изучению PHP и веб-технологий.
Клуб изучающих PHP и webdev, #97 Аноним 2017/12/20 10:40:46  №1109863 1
15137556464410.png (88, 500x500)
500x500
15137556464421.jpg (157, 1024x683)
683x1024
15137556464432.jpg (229, 811x1200)
1200x811
15137556464453.jpg (487, 1821x1288)
1288x1821
Добро пожаловать. Тут мы изучаем язык PHP (а также JS/CSS/HTML/SQL), решаем задачки и даже делаем простые сайты! Зачем? Кто-то хочет сделать себе блог, кто-то приобрести новую профессию, кому-то просто нечего делать.

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

Пожалуйста, пишите один большой пост вместо нескольких маленьких и не флудите не по теме.

Это тред для начинающих. Не написал за свою жизнь ни одной программы и имеешь тройку по математике? Ты наш человек.

Предыдущий тред был тут: >>1097438 (OP). Остальные треды есть в архиве: http://phpclub.tech/ или ищутся в гугле по словам "клуб изучающих php" и в архиваче.

Мейлач лежит? Есть запасной тред на доброчане: /s/res/23225.xhtml#i46467

Что самое главное для программиста? Умение аккуратно оформлять код (как, написано во втором посте).

Правила: ведем себя воспитанно, помогаем новичкам, читаем учебники, решаем задачки, постим ссылки на решения, ОП их проверяет и дает советы и замечания. ОП заходит редко, где-то раз в 2-3 дня, у него мало времени, не жди его, решай задачки дальше. ОП отвечает на все вопросы по его задачкам и учебнику, а вот насчет каких-то других вещей - только если останется время. Но в треде немало анонимных экспертов разного уровня, так что вряд ли вопрос останется без ответа.

С чего начать

У нас есть свои уроки по основам PHP, они собраны и выложены по адресу http://archive-ipq-co.narod.ru/ Это учебник для изучающих с нуля, то есть если ты вообще ничего не знаешь, то можно начать с него. Он простой и понятный. Там есть задачи, их нужно решать (чтобы стать программистом, надо писать код — иначе никак). Пости ссылки на решения в тред, мы их проверим, напишем замечания и дадим советы по улучшению. С другой стороны, если этот учебник тебе не нравится, можно читать любой другой. Или официальный мануал. Или все сразу.

Устанавливать пока что ничего не требуется, разве что редактор кода вроде Sublime Text 3, Notepad++, Visual Studio Code, Netbeans PHP или PhpStorm (с ним будет удобнее).

Если не знаешь как решать, запости код, напиши в каком месте остановился и попроси подсказку.

Ты прошел весь учебник? Молодец, но это были лишь основы языка PHP, этого недостаточно. Вот что в идеале надо изучить еще: ООП, как работает веб-сервер, HTML/CSS, SQL, PDO, работа с таблицами в БД, работа с формами, MVC, git, composer, JS, фреймворки, автоматизированное тестирование.

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

- для начала прочти урок https://github.com/codedokode/pasta/blob/master/soft/web-server.md
- установи Апач + PHP (советы выше и ниже) и читай туториал http://php.net/manual/ru/tutorial.php
- Учи HTML/CSS и SQL, PDO, хотя бы основы
- Далее простая, но полезная задача сделать список студентов, в ней много полезных советов: https://github.com/codedokode/pasta/blob/master/student-list.md
- Более сложная задача сделать файлообменник на микрофреймворке Slim: https://gist.github.com/codedokode/9424217
- Еще более сложная и долгая задача на Yii/Symfony: https://gist.github.com/codedokode/8733007
- После нее можно изучать автоматизированное тестирование https://gist.github.com/codedokode/a455bde7d0748c0a351a
- Если ты все решил, переходи к Symfony 3/Doctrine 2
- Почитать про паттерны http://designpatternsphp.readthedocs.org/ru/latest/README.html (если ты не изучил ни одного фреймворка, то это будет рановато), тут с примерами кода http://designpatternsphp.readthedocs.org/ru/latest/README.html . Имей в виду что без примеров использования их учить бесполезно - не поймешь, хочешь увидеть примеры использования паттернов - ковыряй исходники Симфони, например Symfony Forms. Не заучивай паттерны - смотри код и думай, зачем тут они использованы.

Чтобы делать эти задания, тебе надо установить Апач + PHP (можно заодно сразу и MySQL) на компьютер. Вот полезные инструкции:

https://github.com/codedokode/pasta/blob/master/soft/php-install.md
https://github.com/codedokode/pasta/blob/master/soft/apache-install.md

Может тебе понадобится пользоваться командной строкой, вот гайд https://github.com/codedokode/pasta/blob/master/soft/cli.md

Решения задач лучше показать мне, особенно на ООП,так как сам ты вряд ли увидишь все ошибки. Пости свой код на гитхаб и вкидывай ссылку в тред по мере решения. Я прокомментирую и укажу на ошибки.

Также, у нас есть задачи которые позволят тебе изучить или подтянуть до нормального уровня знания JS/HTML/CSS/SQL. Решай их параллельно с задачами выше.

- HTML/CSS: https://github.com/codedokode/pasta/blob/master/html/html.md
- JS: https://gist.github.com/codedokode/ce30e7a036f18f416ae0
- SPA (сложно): https://github.com/codedokode/pasta/blob/master/js/spa.md
- Проверялка решений на JS: http://dkab.github.io/jasmine-tests/
- MySQL: https://github.com/codedokode/pasta/blob/master/db/databases.md

Что почитать

- Мануал по PHP — http://www.php.net/manual/ru/langref.php
- Сайт phptherightway (перевод на русский: http://getjump.me/ru-php-the-right-way/ )
- По PHP: Профессиональное программирование на PHP Джордж Шлосснейгл
- По PHP: Мэтт Зандстра — PHP: Объекты, шаблоны, методики программирования
- JS: learn.javascript.ru
- Про Git: https://git-scm.com/book/ru/v1

Оформляй код аккуратно!!! — например пропусти через phpformatter.com . Также, если ты пользуешься IDE вроде PhpStorm, Netbeans, Eclipse, то в них эта опция встроена, подробнее: https://gist.github.com/codedokode/8759492

У ОПа нет аккаунтов и групп вконтакте, в фейсбуке, в твиттере, все "пхп-треды" там поддельные.

Платиновые вопросы

- Почему PHP? Потому что вакансий море, и учить легко.
- Сайт опять упал!!!!! — Не паникуй, а открой http://rghost.ru/6bfCY9lfl и получи личную немного устаревшую оффлайновую копию сайта (можно читать хоть на андроиде без интернета)
- Что надо знать чтобы найти работу - разработчику: PHP, SQL, HTML/CSS, JS, ООП, Git, композер, MVC, фреймворк. Верстальщику - HTML/CSS, JS, jQuery. У нас в треде были люди, которые практически с нуля учились и смогли найти работу.
- Что будут спрашивать на собеседовании если 0 опыта - гонять по теории, по официальному мануалу PHP, давать дурацкие задачки на переворачивание строк, гонять по SQL (транзакции, внешние ключи, напиши запрос), по JS (как сделать анимацию при нажатии кнопки), ну погугли, не ленись
- Можно подробнее про поиск работы, собеседования - нет, ОП писать не будет, но может кто из анонов захочет рассказать. Поищите тред перезвонивших, а также раздел /wrk/
- Сколько времени надо изучать все это? - все зависит от тебя, но не меньше 6-8 месяцев
- Нужен ли ООП, фреймворки, MVC, git, composer? — Да, однозначно. Посмотри любую вакансию.
Важно Аноним 2017/12/20 10:42:00  №1109864 2
15137557208030.png (56, 500x644)
644x500
Код нужно писать не как попало, а аккуратно и по правилам. Почему? Потому, что на неакуратно написанный код не хочется даже смотреть.

Если тебе лень выравнивать код руками, закачай его на http://beta.phpformatter.com/ и нажми «format». Робот исправит выравнивание и отступы в мгновение ока (да, прогресс не стоит на месте). Если ты используешь мощную IDE вроде PhpStorm, там тоже есть функция форматирования кода.

Горячие клавиши для форматирования кода в разных IDE: https://gist.github.com/codedokode/8759492

Вообще, в PHP долгое время не было единого стандарта оформления кода, все писали как попало и было много бардака, но сейчас дело лучше — есть стандарты PSR-1 и 2. Вот как надо оформлять код:

- переменные и функции пишутся с маленькой буквы, подчеркивание не используется, используется camelCase, пример: $x, $numberOfPeople, printResults()
- Название функции начинается с глагола, в стиле «сделайЧтоТо»
- не знаешь английский? Не беда, в 21 веке есть решение этой проблемы. Не пиши транслитом, открой лучше Гугл Транслейт или slovari.yandex.ru и найди название для переменной там
- в именах классов используется CamelCase, первая буква большая, «_» может использоваться
- мы предпочитаем подстановку переменных вместо конкатенации строк: "I am $age years old" — хорошо, 'I am ' . $age . ' years old' — плохо из-за обилия точек и кавычек
- мы используем для отступов 4 пробела (можно настроить редактор, чтобы при нажатии Tab он вставлял 4 пробела)

Вот ссылка на стандарты, где все это описано подробнее и даны примеры оформления:

PSR-1: https://github.com/samdark/fig-standards-ru/blob/master/accepted/ru/PSR-1-basic-coding-standard.md
PSR-2: https://github.com/samdark/fig-standards-ru/blob/master/accepted/ru/PSR-2-coding-style-guide.md
Аноним 2017/12/20 10:42:45  №1109865 3
Если вы писали вопрос в старом треде >>1097438 (OP) - зайдите, проверьте, может на него есть ответ. Если нет, напомните о себе в этом треде.
Аноним 2017/12/20 13:22:27  №1109947 4
друзья, подскажите в таком вот вопросе по проектированию БД. в кач-ве БД планирую использовать постгрес. есть идея реализовать приложение типа эверноут, где пользователь вносит заметки, а потом может как-то с ними работать. и вот хочется дать пользователю возможность самому создавать поля в таблице с этими заметками, т.е. чтобы каждый мог запилить свое - допустим, траты за неделю или адреса контор, куда он ходил на собеседования и пометки в чем он обосрался.

и вот я думаю как лучше это сделать. из кажущихся вменяемыми пока придумал только такой вариант (упрощенно): одна таблица custom_columns(id, user_id, type, title) и вторая соответственно custom_columns_values(id, column_id, value) и потом делать запрос типа
select * from custom_columns_values v inner join custom_columns c on v.column_id = c.id where c.user_id = :user что-то такое

есть еще какие-то варианты, как такое сделать?
Аноним 2017/12/20 17:03:09  №1110053 5
Ололо, я сделал задание с переводом чисел в пропись часов за пять. В чём суть? Там написано, что оно на несколько дней.
Ответы: >>1110091
Аноним 2017/12/20 17:47:53  №1110091 6
>>1110053

Это чтобы придать тебе уверенности в себе перед задачами на ООП и про студентов, чтобы ты не сдался сразу, прочитав условия.
Аноним 2017/12/20 17:55:01  №1110092 7
Прошел весь учебник на народе, что дальше учить? Я просто нихуя не многозадачный, мне что-то одно учить проще. Хтмл с ксс? Яваскрипт? Что надо знать для задачки про студентов с сайтом?
Аноним 2017/12/20 19:04:39  №1110114 8
15137858795940.png (5, 821x41)
41x821
15137858795941.png (89, 2048x2048)
2048x2048
Говнокод или изящное решение?
Аноним 2017/12/20 19:26:55  №1110125 9
>>1110114
Как по мне - лютый говнокод. Есть же класс для паботы с ФС, зачем ты велосипед пишешь?! Тем более без try/catch.
Ответы: >>1110334
Аноним 2017/12/20 19:30:41  №1110128 10
>>1110114

Во-первых, нечитаемая колбаса. Ты строчки экономишь? Во-вторых, зачем ты переопределяешь DOCUMENT_ROOT? Это поле, которое заполняет интерпретатор PHP, а не ты.
Ответы: >>1110334
Аноним 2017/12/20 20:18:12  №1110148 11
>>1110114
добавлю к другим ответам, что есть правило "очевидное лучше неочевидного", оно в этих двух строках нарушается несколько раз.
Аноним 2017/12/20 20:30:55  №1110157 12
>>1110114
Вообще, изящность решения обычно заключается в его архитектуре, комбинации различных практик, своевременно и правильно примененном паттерне и многом другом, но точно не в компактно написанном куске кода, который по сложности равен сложению двух чисел. Т.е. чтобы оценить изящность решения, это решение должно решать какую-то более-менее серьезную задачу. Считать задачу присвоения строки изящно решенной может только студент, который вчера дочитал книгу "Языкнейм за 21 день".
Но если тебя интересует безотносительно размера задачи, то я бы сказал так - существуй критерии изящности решения, то читабельность и наглядность были бы далеко не последними критериями.
Аноним 2017/12/20 20:48:30  №1110175 13
>>1110114
вообще конструкция if-elseif редко подразумевает изящность. есть подозрение, что это троллинг, но в любом случае ознакомься вот с книгой по теме https://github.com/jupeter/clean-code-php
someApprentice 2017/12/20 21:22:29  №1110190 14
>>1109863 (OP)
У нас появился https протокол https://phpclub.tech

Менять ссылку в шапке не обязательно, потому что http перенаправиться на https
Аноним 2017/12/21 10:37:13  №1110308 15
>>1109863 (OP)
Анон, у меня задача на забор данных из GET.
Где почитать про манипуляции с GET-ом?
Ответы: >>1113109 >>1113113
Аноним 2017/12/21 10:38:06  №1110309 16
>>1109863 (OP)
Сап, анончики. Вопрос такой, есть те кто работал с Amiro.CMS?
Аноним 2017/12/21 12:02:17  №1110334 17
>>1110128
этот код в консоли выполняется, а там doc_root неопределён.
>>1110125
> класс для работы с ФС
ща погуглю
> try/catch
как я понял, Exeption выкидывать, если ни первый, ни второй случай не выполнится
Ответы: >>1110337
Аноним 2017/12/21 12:19:39  №1110337 18
>>1110334

> этот код в консоли выполняется, а там doc_root неопределён.

Логично, это ведь параметры, которые приходят от веб-сервера. Значит, не надо его использовать вообще тогда.
Аноним 2017/12/21 12:20:46  №1110338 19
15138480468550.png (28, 625x375)
375x625
15138480468561.png (27, 776x374)
374x776
>>1109863 (OP)
Блэт, аноны. Где я обсераюсь? Чому только с одним сравнивает?
Ответы: >>1110470 >>1110722
Аноним 2017/12/21 15:35:51  №1110417 20
давно хочу сказать, но забываю.
http://archive-ipq-co.narod.ru/ у меня в последнем хроме в разрешении 1920 на 1080 не жмутся кнопки меню. уменьшаю размер окна до половины стола по ширине и все становится ок
Ответы: >>1110418
Аноним 2017/12/21 15:39:22  №1110418 21
>>1110417

Спасибо за информацию, потом проверим.
Аноним 2017/12/21 17:12:41  №1110470 22
>>1110338
я может чего-то не понимаю, но где тело foreach в фигурных скобках?
Ответы: >>1110722
Аноним 2017/12/21 17:33:26  №1110481 23
Программисты, в чем разница указывать строку в '' или ""?
Ответы: >>1110483 >>1110491
Аноним 2017/12/21 17:37:36  №1110483 24
>>1110481
В интерпритации переменных
Ответы: >>1110485 >>1110491
Аноним 2017/12/21 17:42:03  №1110485 25
>>1110483
Можешь в двух словах пояснить?
Ответы: >>1110488
Аноним 2017/12/21 17:46:15  №1110488 26
>>1110485
Ну смотри.
$key = 1;
$str1 = 'Number: $key'; //на выходе ты получишь такую же строку, т.е. Number: $key
$str2 = "Number: $key"; //тут на выходе получишь Number: 1
Ответы: >>1110490
Аноним 2017/12/21 17:49:14  №1110490 27
Ответы: >>1110492
Аноним 2017/12/21 17:50:53  №1110491 28
>>1110483
блядь, хули вы отвечаете как кокетливые девки на вписке. алсо, "интерпретация"

>>1110481
https://secure.php.net/manual/ru/language.types.string.php
>В отличие от синтаксиса двойных кавычек и heredoc, переменные и управляющие последовательности для специальных символов, заключенных в одинарные кавычки, не обрабатываются.

то есть echo "$bar"; выведет значение $bar, а echo '$bar'; выведет дословно название переменной со знаком доллара.

также про внутренности языка тут вот https://habrahabr.ru/company/mailru/blog/318008/ есть про двойные кавычки в php7, ищи по словам "encapsed-строки". если вкартце, в семерке двойные кавычки - уже не такая дорогая операция и можно переставать писать конструкции вида echo $foo . ' blah blah ' . $bar;
Ответы: >>1110500 >>1110501
Аноним 2017/12/21 17:51:07  №1110492 29
>>1110490
Да не за что, антош :3
Аноним 2017/12/21 18:29:29  №1110500 30
Аноним 2017/12/21 18:29:31  №1110501 31
>>1110491

Они были недорогой операцией и в PHP5, если только конечно основная суть твоей программы не в выводе миллионов строк текста.
Аноним 2017/12/21 18:42:18  №1110504 32
Поясните вот эту конструкцию if ($handle = fopen($source, 'w')) !== FALSE)

В данном случае у нас сперва вычисляется первое выражение конструкцию if ($handle = fopen($source, 'w')), а потом $handle сравнивается с FALSE?
Ответы: >>1110505
Аноним 2017/12/21 18:44:44  №1110505 33
>>1110504

Тут ошибка в скобках. Должно быть

if (($handle = fopen(...) !== false)

А вообще, мне такое не нравится и лучше записать это в 2 строчки, вынеся присваивание из if.
Ответы: >>1110506
Аноним 2017/12/21 18:45:37  №1110506 34
>>1110505

И сам сделал ту же ошибку. Должно быть if (($handle = fopen(...)) !== false)

Вот видите, почему надо писать в 2 строчки.
Ответы: >>1110507
Аноним 2017/12/21 18:46:28  №1110507 35
>>1110506
Теперь понял, мерси за ответ.
Аноним 2017/12/21 18:48:43  №1110509 36
>>1110367

Есть разные обфускаторы, но я бы не советовал их использовать. Потому что потом, если будет какая-то ошибка, то невозможно понять ее причину.

Если ты не доверяешь своим клиентам (почему?) то лучше всего делать не программу, а сервис, который хостится у тебя и который доступен через браузер. Ну или программу с API.
Ответы: >>1110826
Аноним 2017/12/21 18:58:49  №1110511 37
Посоны, есть задача:
По запросу пользователя формировать несколько xlsx документов, иногда больше 50 за один раз. Потом архивировать и архив отдавать пользователю.
Всё это, безусловно, нужно делать в параллельных потоках иначе ждать можно очень долго.
Как это будете делать в php?
Версия php - 7.1, куда pthreads не завезён.
Ответы: >>1110525 >>1110724
Аноним 2017/12/21 19:27:12  №1110524 38
15138736329940.png (60, 690x645)
645x690
Кстати, хотел похвастаться, в гугле уже довольно давно пикрелейтед. Может, пора текст на "вы" переписать?

В Яндексе вроде раньше тоже так было, но потом у них что-то поменялось. Или, может проблема в недружелюбном https://github.com/robots.txt . Что же, жаль, что пользователи Яндекса не увидят эту статью.
Ответы: >>1110598
Аноним 2017/12/21 19:27:45  №1110525 39
>>1110511

Нужно использовать менеджер фоновых задач вроде Gearman. Потоки тут никакие не нужны.
Ответы: >>1110537 >>1110843
Аноним 2017/12/21 19:40:23  №1110528 40
Вопрос по JS
Нужно выполнять некое действие при наведении на линк.
У меня получился вот такой говнокод, как его оптимизировать с использованием циклов или подобного? Линков будет много.
...
<section data-mouseover0> линк </section>
...
<section data-mouseover1> линк </section>
...
скрипты:
var object0 = document.querySelector("[data-mouseover0]");
object0.addEventListener("mouseover", mouseOver0);

var object1 = document.querySelector("[data-mouseover1]");
object1.addEventListener("mouseover", mouseOver1);

function mouseOver0()
{
object0.innerHTML="<h2>Событие mouseover0</h2>"
}


function mouseOver1()
{
object1.innerHTML="<h2>Событие mouseover1</h2>"
}
Ответы: >>1110529
Аноним 2017/12/21 19:46:32  №1110529 41
Ответы: >>1110530
Аноним 2017/12/21 19:47:27  №1110530 42
Аноним 2017/12/21 20:07:21  №1110537 43
>>1110525
а какие есть аналоги у Gearman? я смотрю, там документации нормальной нет, да и наверняка уже что-то новое появилось
Ответы: >>1110724
Аноним 2017/12/21 21:28:11  №1110598 44
>>1110524
Я считаю, что было бы очень удобно, если бы в репозитории pasta были хотя бы ссылки на гисты про тестхаб, автоматизированное тестирование, задачи на js. Навигация в gist.github.com очень неудобная + PR отправлять нельзя
Ответы: >>1110636
Аноним 2017/12/21 22:04:05  №1110632 45
15138830458960.png (581, 800x768)
768x800
Сап, увидел вы тут запилили новый сайт и решил ещё раз заскочить и выразить респект ОПу и всем хорошим анонам.
Спасибо за помощь в обучение.
Аноним 2017/12/21 22:06:20  №1110636 46
>>1110598

gist это вообще такое временное хранилище. Я их планировал переносить на гитхаб, но руки пока не дошли. Ну и их поисковой выдачи они тогда могут выпасть, увы.
Аноним 2017/12/22 00:37:37  №1110712 47
15138922571590.jpg (31, 733x268)
268x733
Почему просвечивает текст с body, как сделать 100% непрозрачность дива?

.hidemenu
{
display:none;
margin-right:-1111px;
background-color: yellow;
Opacity: 1;
z-index 100;
}
Ответы: >>1110727
Аноним 2017/12/22 01:07:09  №1110722 48
>>1110338
>>1110470
Неверный синтаксис
После `foreach` открывай фигурные скобке, после `if(...){$x++;}` закрывай
Конструкция if(...) у тебя должна относиться к циклу
Ответы: >>1110755
Аноним 2017/12/22 01:14:51  №1110724 49
>>1110537
>>1110511
Я бы сделал так: список xlsx-файлов на генерацию храним у клиента в js. На каждый файл создаём ajax-запрос и отправляем серверу, сервер делает xlsx и где-то временно хранит, отвечает юзеру об успешной генерации. На js показываем юзеру прогрессбар, название текущего файла, процент выполнения, etc. Так мы и сервак не перегрузим, и пользователь будет знать, что происходит.
Ответы: >>1110846
Аноним 2017/12/22 01:27:48  №1110727 50
Аноним 2017/12/22 02:21:54  №1110741 51
15138985143870.jpg (108, 914x700)
700x914
15138985143881.jpg (75, 742x501)
501x742
Ребзи, моё решение задачи про айфон в кредит может быть правильным, или это хуйня на постном масле?
Как эту задачу автор решил?
Аноним 2017/12/22 03:07:26  №1110755 52
>>1110722
Анон, ты просто спаситель. Благодарю тебя. Я понимал, что foreach и if должны быть связаны, но не понимал, как.
Аноним 2017/12/22 03:48:14  №1110763 53
15139036950120.png (194, 1266x676)
676x1266
Такой вопрос. Как ОП решил эту задачу? Я просто не понимаю, что должно быть в переменной $answer
сам решил наглым и лютобешенным копипастом с мануала по пхп, но перед этим усердно думал над решением
Ответы: >>1110774
Аноним 2017/12/22 03:49:54  №1110764 54
15139037943290.jpg (47, 282x257)
257x282
Ребят я тут зашел на сайт JavaScript, ищу где, мол, туторы есть или документация (Та что попроще, потому что спецификацию трогать нет смысла пока) и смотрю пишет - Measure your skill with Plural Sight. Ну зашел, смотрю - HTML5 думаю, мол, что!?(Версии обозначать ведь не имеет смысла) Ну ладно, зарегался, начинаю проходить тест из 20 вопросов, а там всего 2-3 вопроса относящиеся к HTML, там либо DOM, какого то хрена JSON, формы конечно и т.д т.е от самого HTML там не много. Я пройдя тест с горелой жепой, я же читаю спецификации вечно, я уже их фанат, вспоминаю строчку от WHATWG - In more length: the term "HTML5" is widely used as a buzzword to refer to modern Web technologies, many of which (though by no means all) are developed at the WHATWG.

Вот так бывает ребятки. Кстати IQ по HTML у меня 120. Думаю изучив JS вместе с прилагательными он повысится до 300.

Алсо я тут колесил по всяким дизайнерским сайтам чтобы стырить у них сайт, одна большая компания, захожу в консоль и смотрю разметку, а там BEM, прикольно, не зря практикую. В остальных случаях все сайты попадались то без семантики, то без понятных имен, в общем ясно о чем говорит ОП, действительно самому противно на это смотреть.

Ладно я свалил верстать, удачного дня кто там проснется.
Аноним 2017/12/22 05:13:52  №1110774 55
>>1110763

функция array_rand() возвращает ключ случайного элемента массива (или нескольких элементов, зависит от второго аргумента).
Соответственно, в переменную $random ОП заносит ключ случайного элемента, а в $answer надо засунуть значение этого элемента, например, так:

$answer=$answers[$random];

Ты в твоем варианте по сути сократил код, вынеся конструкцию $answers[$random] прямо в эхо
Ответы: >>1110844
Аноним 2017/12/22 05:48:47  №1110778 56
Решил я значит устроиться в конторку стажёром или джуном после года обучения где я дрочил базу, ООП, паттерны, проектированию бд , правильным практикам учился, сделал пару проектов для себя и закинул на гитхаб. Конторка сама по себе скам, пилят говно на говнодвижках и прочий аутсорс, и вообщем так случилось что мы вам перезвоним.. Я отправил резюме и свой гит профиль, обещали выслать тестовое в итоге забили на меня хуй. Как это понимать, неужели им нужно было сделать сраную визитку на вордпрессе? Просто горит блять. В мухосрани пару подобных контор и все. Фриланс не потяну т.к нужно на галере хотя бы немного посидеть.
Ответы: >>1110779 >>1110797
Аноним 2017/12/22 05:58:10  №1110779 57
15139114903100.jpg (299, 551x711)
711x551
Аноним 2017/12/22 06:42:17  №1110787 58
15139141376700.gif (835, 500x281)
281x500
Так объясните всё же, реально ли найти некую удалёнку или фриланс мухосранск-кунам, которые не имеют возможности набраться опыта, работая за спасибо и чуть-чуть доширака?
Что-то уже чёрт знает сколько пытаюсь всё куда-то вкатиться, но пока что безуспешно. Если подумать, возможно, проблема в отсутствии конкретных целей и задач. Но самая очевидная цель — походить по гвоноконторам и устроиться джуном — практически недостижима в мухосранских реалиях. А "планы" уровня "буду чего-то там писать-писать вилкой, выкладывать на гитхаб, а потом, может, какой заказ чудом где урву, и вот так и вкачусь потихоньку", — это, наверное, говно, а не планы...
Ответы: >>1110796 >>1110797
Аноним 2017/12/22 06:54:18  №1110789 59
Принес вам задачу по фану решить.

В суши-шопе есть ассортимент из 10 роллов. Сколько всего можно сетов сосавить из этих ролов, что бы роллы в сете не повторялись? Если по 3 ролла в сете. Если по 4 ролла в сете.

Ответы: >>1110793 >>1110795 >>1110839
Аноним 2017/12/22 07:17:57  №1110793 60
>>1110789
sushi = lambda x : len(list(itertools.combinations(range(10), x)))
Аноним 2017/12/22 07:39:36  №1110795 61
>>1110789
Если считать, что ролл ABC == ролл ACB == ролл CAB и т.д., то количество сетов= n!/(k!*(n-k)!), где n – ассортимент роллов, а k – количество роллов в сете.
Таким образом, из 10 роллов можно составить 120 трехролльных сетов или 210 четырёхролльных
Аноним 2017/12/22 07:47:33  №1110796 62
>>1110787
Нахуй ты сюда приперся, выблядок? Нахуй нам твое нытье? Чего ты хочешь? Сьеби пожалуйста и не надоедай своими биопроблемами, вон в б дохуя места, иди туда поной.
Аноним 2017/12/22 08:02:21  №1110797 63
>>1110778
>>1110787
Уебки, для вас загон свой сделали на этой же доске, хули вы здесь срете? Зарепортил.
Аноним 2017/12/22 09:39:00  №1110808 64
Аноны, отговорите https://htmlacademy.ru/intensive/php
за 16к норм план обучения или такие знания можно самому за 2 месяца подтянуть на хорошем уровне?
Сам я учу js и перспектива за полтора месяца получить базу по php+sql меня радует.
Аноним 2017/12/22 10:22:22  №1110826 65
>>1110509
Клиентам не доверяю потому что для них будет дешевле нанять студента если потребуется какой-нибудь допил, чем обратиться к разработчику за дополнительную плату. К тому же софт уникальный и шанс прибрать его к рукам и сделать на его основе свой - очень велик. В данный момент одна компания пользуется им в качестве сервиса (сервер располагается у нас), но это только в качестве обкатки. Дальнейшее распространение предполагается в качестве готового продукта в виде собранного устройства с софтом.
Ответы: >>1110890
Аноним 2017/12/22 10:41:57  №1110833 66
Чому?

дерево:

autoload.php
--Namespace
----Class.php
----ClassTwo.php

-Class.php:
Namespace Namespace;

class Class
{
public function __construct()
{
new ClassTwo;
}
}

-ClassTwo.php:
Namespace Namespace;

class ClassTwo {}

-autoload.php:

spl_autoload_extensions('.php');
spl_autoload_register();

$Class = new Namespace\Class;

>Fatal error: spl_autoload(): Class Namespace\ClassTwo could not be loaded in C:\Apache24\htdocs\Programm\Namespace\Class.php on line 7

Если убрать из конструктора создание второго класса, ошибки нет.
Ответы: >>1110838 >>1110977
Аноним 2017/12/22 10:58:24  №1110838 67
>>1110833
Ой всё я довен. Все работает, я просто делал как тут рекомендуют и забыл про то что нахожусь в другой папке из которой инклюдю это всё. (http://php.net/manual/ru/function.include.php#116522)

У меня было:

>require_once . '../autoload.php';

а должно быть

>require_once __DIR__ . '../autoload.php';

Не думал что это так важно.
Аноним 2017/12/22 11:08:26  №1110839 68
Аноним 2017/12/22 11:12:35  №1110841 69
https://pastebin.com/eKERpSQ4
Анон, мне кажется, или я написал калькулятор лучше и проще, чем в учебнике? Сюда можно в теории любые действия вообще добавить, включая степени и синусы-косинусы, надо только регэксп править.
Ответы: >>1110842 >>1110906 >>1111049
Аноним 2017/12/22 11:15:30  №1110842 70
>>1110841
И да, я не юзаю for each, меня в ВУЗе джва года Дельфи и Матлабу учили, привык каждый раз длину массива определять.
Ответы: >>1111055
Аноним 2017/12/22 11:24:24  №1110843 71
>>1110525
>Gearman
Под винду какой-то пердолинг страшный и не факт, что заработает с окружением данного мне сервера.
Есть ли аналоги под винду и версию пхп 7.1?
Ответы: >>1110889 >>1111080
Аноним 2017/12/22 11:27:38  №1110844 72
>>1110774
> в $answer надо засунуть значение этого элемента
> $answers[$random];

Спасибо, что пояснил за это.
Аноним 2017/12/22 11:29:42  №1110846 73
>>1110724
Ну, неплохой вариант вроде бы. У меня с клиента отправляется только один запрос с id - по этому id из базы уже выбираются id зависимых сущностей (те самые 50) и к базе уже идут запросы на выборку данных по этим id и после уже формируются файлы.
Получается мне нужно вернуть на клиент эти 50 id. Не очень красиво, конечно.
Ответы: >>1111055
Аноним 2017/12/22 12:02:56  №1110875 74
Как передать post запрос по линку?
Ответы: >>1111055
Аноним 2017/12/22 12:26:32  №1110889 75
>>1110843
поддерживаю вопрос. Герман вроде как уже не особо поддерживаемый продукт
Ответы: >>1110954
Аноним 2017/12/22 12:28:42  №1110890 76
>>1110826
>о продукта в виде собранного устройства с софтом.
вообще странно, что вы сначала разработали продукт, а потом задумались о его защите.

так-то в твоем случае нормальный вариант один - saas. тем более ты говоришь, что этот вариант у вас уже работоспособен
Ответы: >>1110943
Аноним 2017/12/22 12:47:05  №1110906 77
>>1110841
рассказывать, что ты там козырный тип в вузе лучше после того, как ты решил задачу правильно, а велосипедно-костыльными методами в стиле php4. твое отличие от "обычного" решения в том, что ты применил регулярки и зачем-то сам считаешь индексы у массивов. оба решения неудачные, т.к. повышают вероятность ошибок при усложнении программы.

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

for ($i = 0; $i < count($znaki); $i++) объясни, в чем плюс такого подхода перед foreach? попробуй по приколу написать тесты или замерить скорость выполнения в цикле из 1000 запросов для такого решения и нормального foreach
Ответы: >>1110914 >>1110985
Аноним 2017/12/22 12:51:13  №1110914 78
>>1110906
>повышают вероятность ошибок при усложнении программы.
Так вообще про любой код сказать можно. Не понимат как программировать калькулятор так чтобы потом из него СУБД для заказчика сделать.
мимокрокодил.
Ответы: >>1110926 >>1111055
Аноним 2017/12/22 13:05:36  №1110926 79
>>1110914
не нужно делать СУБД, просто допустим добавить еще 4 действия, которые являются более сложными, чем арифметические (которые не выполнить внутренними функциями языка).

есть такой принцип https://en.wikipedia.org/wiki/Open/closed_principle говорящий о том, что для добавления нового функционала в хорошо спроектированном приложении нужно будет дописывать новые методы и классы, а не менять (или по минимуму менять) существующие. понятно, что калькулятор - это не "приложение", а просто задачка на основы языка, но нужно хотя бы следовать принципу наименьшего удивления и стремиться к читаемости кода, а вынос логики программы в регулярку не добавляет читаемости (пример как повысить читаемость регулярки, кстати: https://github.com/jupeter/clean-code-php#use-searchable-names-part-2)
Ответы: >>1110929
Аноним 2017/12/22 13:06:46  №1110929 80
Аноним 2017/12/22 13:23:04  №1110943 81
>>1110890
Да сначала вообще не предполагалось так все развивать. Просто выполнили один заказ. С энтузиазмом. Настолько с энтузиазмом что решили в свободное время этот проект развивать, и в конечном итоге получился довольно универсальный продукт, у которого нет аналогов. Ну и было решено его продавать так или вместе с монтажом под ключ.
Аноним 2017/12/22 13:34:24  №1110950 82
Фестиваль тупых вопросов продолжается.
Есть картинки разного размера, запханные в таблицу из 1 ячейки со стилем, почему они меняют размер?
td
{
height: 300px;
width: 400px;
text-align:center;
}

<table>
<tr>
<td><img class="img-responsive" src="upload/img_<?php echo $row['id_model'];?>.jpg"></td>
</tr>
</table>
Ответы: >>1110952 >>1110972 >>1110975
Аноним 2017/12/22 13:35:27  №1110952 83
>>1110950
в смысле - почему ячейка меняет размер.
Ответы: >>1110970
Аноним 2017/12/22 13:36:21  №1110954 84
>>1110889
Не, под линухи нормально всё. На гитхабе репозиторий активный.
Аноним 2017/12/22 13:58:18  №1110970 85
>>1110952
Вообще, чтобы задать таблице фиксированные размеры столбцов используют:
<col width="%">
Ответы: >>1110976
Аноним 2017/12/22 14:04:43  №1110972 86
>>1110950
>img-responsive

класс в студию
Ответы: >>1110982
Аноним 2017/12/22 14:08:52  №1110975 87
>>1110950

Потому что в таблицах по умолчанию height/width задают минимальный, а не точный размер (в спеке это называют preferred width). Меняется каким-то свойством, отключающим подстройку размера.

Где-то тут описано https://www.w3.org/TR/css-tables-3/#width-distribution-algorithm
Ответы: >>1110987
Аноним 2017/12/22 14:09:56  №1110976 88
>>1110970

Нет. col просто задает preferred width, но не окончательное значение. Отключить подстройку размера можно по моему через table-layout: fixed
Аноним 2017/12/22 14:12:21  №1110977 89
>>1110833

autoload.php
--Namespace
----Class.php
----ClassTwo.php
--public
----index.php

index.php:

require_once __DIR__ . '/../autoload.php';

Та же ошибка
>Fatal error: spl_autoload(): Class Namespace\ClassTwo could not be loaded in C:\Apache24\htdocs\Programm\Namespace\Class.php on line 7

вопрос открыт, не могу разобраться с этими реквайрами.
Аноним 2017/12/22 14:19:38  №1110982 90
>>1110972
Угу, спасибо. Там height: auto; стоял, а я чекнуть дефолтный бустраповский даже не подумал.
Спать пора :-(
Ответы: >>1110991
Аноним 2017/12/22 14:31:27  №1110985 91
>>1110906
>козырный тип
Лол, ни разу, просто мне это кажется проще, чем решение в учебнике. А осваивать и правда легче, я прошёл учебник за две недели, занимаясь на работе в свободное время. Но дальше там ООП, у меня всего несколько семинаров по нему было всего. В моём ВУЗе упор был на вычисление интегралов, численные методу и подобную шнягу, ибо я у мамы инженер потому и решил вкатиться в ит, зарплаты инженеров не радуют, а за бугор перекатываться сложно
>for ($i = 0; $i < count($znaki); $i++) объясни, в чем плюс такого подхода перед foreach
Лично мне это кажется универсальнее, чем for each. Идти по массиву простым циклом - в этом есть унификация некоторая.
>применил регулярки
Это разве плохо? Очень мощный метод работы с текстовыми данными, мне понравился в Дельфи такого не было, например
Ответы: >>1111006 >>1111060
Аноним 2017/12/22 14:35:55  №1110987 92
>>1110975
Че ты несешь блять.
Аноним 2017/12/22 14:40:16  №1110991 93
>>1110982
Всмысле там, у тебя не должно быть повторяющихся параметров.
Ответы: >>1110994
Аноним 2017/12/22 14:43:50  №1110994 94
>>1110991
>Всмысле там
Я же писал - дефолтный бустраповский.
>у тебя не должно быть повторяющихся параметров
Не понял? Что мне мешает переписать в последнем подключенном файле стилей параметры предыдущего?
Ответы: >>1110996 >>1111021
Аноним 2017/12/22 14:47:50  №1110996 95
>>1110994
Их не нужно переписывать.
Ответы: >>1110997
Аноним 2017/12/22 14:51:00  №1110997 96
>>1110996
Тебе - не нужно, мне - нужно.
Расскажи, как ты не переписывая стили скроешь инпуты на нужной странице?
Будешь весь файл стилей копировать, менять 1 строчку и подключать?
Ответы: >>1111001 >>1111021
Аноним 2017/12/22 14:52:11  №1110998 97
15139435312240.jpg (3, 252x200)
200x252
Ой блять просто пока.
Аноним 2017/12/22 14:57:56  №1111001 98
>>1110997
У тебя с семантикой там проблемы короче.
Ответы: >>1111013
Аноним 2017/12/22 15:05:08  №1111006 99
>>1110985
если вкатываешься в айти, то тут есть определенные промышленные стандарты, грубо говоря с таким кодом ты бы не прошел аудит (или не получил бы хорошую оценку от препода).

использовать for вместо foreach для массивов тебе никто бы не дал из-за того, что foreach сто раз оптимизирован для работы с массивами и жрет для одинаковых операций намного меньше ресурсов. также, массивы в php - это одна из самых его привлекательных составляющих из-за ассоциативных индексов и огромного количества функций и конструкций для них. почему бы их не использовать?

также ты искусственно привязываешь цикл for к конкретному массиву манипуляциями с индексами и высчитывая количество элементов для него. foreach делает все за тебя.

вызывать каждый раз count($znaki) невыгодно с т.з. опять же скорости, такие вещи надо сохранять в переменную.

понятно, тут можно сказать "ну это калькулятор, там не будет миллион элементов в массиве", но также как ты в вузе решаешь задачки, их нужно делать правильно, то есть по существующим bp. foreach для массивов - bp наверное с момента создания языка.

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

лучше разделить обработку инпута на собственно валидатор и парсер, чтобы это были раздельные действия.

также лучше заменить if elseif на switch case. вместо == НАДО использовать ===. не мешать английские слова с русскими. ну еще [] и форматирования по psr, но это мелочи.

не путать что за массив как называется. почему в znaki[1] лежат цифры и ты им присваиваешь $znaki = $znaki[1] ?

в целом я бы при решении задачи сконцентрировался на читаемости кода. также очень рекомендую книгу https://github.com/jupeter/clean-code-php
Ответы: >>1111008 >>1111009
Аноним 2017/12/22 15:06:10  №1111008 100
>>1111006
>znaki
>Название массива
Мда.
Ответы: >>1111009
Аноним 2017/12/22 15:07:28  №1111009 101
>>1111006
>Clean-Code
Чому вы полагаетесь на чужие мысли? Сами не можете писать код, как в книжках учат? Смысл книжки? Что дает?

Мимокрок >>1111008
Ответы: >>1111016 >>1111065
Аноним 2017/12/22 15:13:46  №1111013 102
15139448266790.jpg (43, 543x367)
367x543
>>1111001
Как скажешь.
Ты лучше расскажи, отчего у меня лишний перенос строки образовался на другой странице?
Стили и код подключаются идентично.
Ответы: >>1111021 >>1111345 >>1111346
Аноним 2017/12/22 15:19:29  №1111016 103
>>1111009
это вопрос из серии "зачем ноты учить, музыка же из души должна идти!1". немного непрогрессивный, так скажем, подход. смысл книжки в том, в чем и смысл всех других книжек - учиться и развиваться.

а смысл чистого кода в том, что ты придешь на собеседование в хорошую контору, а тебе скажут "покажите ваш код". и ты откроешь код, где написано $numberKolonki или что-то подобное, а тебе скажут "спасибо, до свидания". а если пишешь какие-то опенсорс библиотеки с таким вот кодом и вложенными циклами, другие разработчики не будут их дописывать. а следование и понимание bp позволяет работодателю понять, что ты стремишься развиваться, даже если пока ничего серьезного не умеешь.
Ответы: >>1111021
Аноним 2017/12/22 15:23:12  №1111021 104
>>1110997
>>1110994
У тебя задан стиль для всех td элементов, это изначально плохая практика, лучше создавать стили для дефолт-HTML элементов если ты хочешь создать свой дефолт стиль для страницы, и не тот что с крутыми свистульками, а тот, что отобразится даже на Нетскейпе.

Сами создатели семантики HTML говорят, что родитель должен определять контент потомка и не выползать за рамки своего родителя и так до дедушки.

Такими соображениями руководствуются не просто так, дабы не засрать посыл кода для другого разработчика. Создатели семантики говорят, что нужно для каждого элемента задавать внутренний контекст, его предназначение. Сделать это можно путем добавочного аттрибута который называют классом, он задает свою семантику и сохраняет стиль дабы его можно было пихать куда нибудь еще и таким образом ты создаешь двойной смысл для элемента, например td это ячейка для инфы, а если дать ему класс td__picture-container то любому будет понятно, что это ячейка контейнер для картинки. Клево да? Приходим сюда: http://bem.ru

То есть создаешь элементы со смыслом, и потом к любому HTML элементу просто добавляешь готовый класс, который можешь использовать когда захочешь и проблем с изменением значения каждый раз элементу не возникнет. А бутстрап содержит уже готовые элементы.

>>1111013
Мне бы код. Я не знаю какое говно толкает бутстрап, но мне кажется это из-за кнопки, с этими кликопарашами проблемы даже без фрейма. Скинь гит, посмотрю.

>>1111016
Да не я не говорил такого, я спросил про то что зачем читать книжки, когда сами мануалы и книжки орут о том, что нужно соблюдать чистописание, а вам книжки какие то для этого нужны. Говнокодит как правило тот, кто забивает хуй, потому что правильно кодить не получается или опыта не хватает.
Аноним 2017/12/22 15:29:07  №1111024 105
Ответы: >>1111027
Аноним 2017/12/22 15:30:27  №1111025 106
>>1111021
>Да не я не говорил такого, я спросил про то что зачем читать книжки
а. ну именование переменных не транслитом - это простой пример, понятно для этого не надо книгу читать (хотя в целом по именованию тоже много нюансов и умные люди пишут статьи типа http://www.yegor256.com/2015/09/01/redundant-variables-are-evil.html и http://www.yegor256.com/2015/03/09/objects-end-with-er.html).

просто в этой книге описано много хороших кейсов, которые редко очевидны новичкам (и не только новичкам).
Ответы: >>1111027
Аноним 2017/12/22 15:33:13  №1111027 107
>>1111024
Кратко говоря, там почти пересказывают то, что написано на WhatWG, только предлагают удобный способ наименовании дабы код не повторялся и как мне показалось повышает производительность.

Правда на самом WG все расписывают даже для слепых, мол, Всегда юзайте alt! Слепые тоже серфят!
>>1111025
А понял, передается ценный опыт, полезно тогда.
Аноним 2017/12/22 15:36:43  №1111029 108
Анон, делаю подключение к БД, с целью получения значений. https://ideone.com/hW7XOc
Есть три строки: id, name, alias.
Где ошибка в запросе?
Ответы: >>1111051
Аноним 2017/12/22 15:55:46  №1111047 109
>>1111021
>У тебя задан стиль для всех td элементов, это изначально плохая практика
Это для конкретной страницы, на которой таблиц скорей всего больше не будет. А если будет - то разделю на классы.
>лучше создавать стили для дефолт-HTML элементов если ты хочешь создать свой дефолт стиль для страницы, и не тот что с крутыми свистульками, а тот, что отобразится даже на Нетскейпе.
Очень много времени занимает верстка.
Я дольше сижу и красоту навожу, чем продумываю и пишу реализацию. А если с нуля делать, так вообще зашиться можно.
>>1111021
>Скинь гит, посмотрю.
Нету гита.
Могу так кинуть, только тут смотреть ну очень неудобно по причине не работающего php.
http://plnkr.co/edit/skqNk6nRalrK5YjxEjbt?p=preview
Скрины выше были сделаны с индекса и продукта, подключаются к ним стили (виднов отвечает за окно логина) и хидер + райт сайд (сам код окна)

Ответы: >>1111065 >>1111565
Аноним 2017/12/22 16:05:04  №1111049 110
>>1110841

То, что в учебнике - не обязательно идеальное решение. Конечно, можно написать лучше (но это не точно, так как ОП очень уверен в своих способностях).

> for ($i = 0; $i < count($znaki); $i++){
Тут надо использовать foreach так как твой код тяжелее воспринимать и он многословнее.

> $znaki = $znaki[1];
Ты тут используешь одну переменную для разных типов массивов и это сбивает с толку и может быть причиной ошибки. Условно говоря. я вижу там preg_match_all($separ, $calc, $znaki); и думаю, что в $znaki всегда будет результат preg_match_all, а он позже перезаписывается.

Не надо использовать одну переменную для разных типов данных.

Желательно не называть переменные транслитом. Не znaki, а tokens или parts.

> if ($actions[$i] == "+"){
> } elseif ($actions[$i] == "-"){
> } elseif ($actions[$i] == "*"){
Не надо копипастить выражение несколько раз, надо завести новую переменную.

И наконец, что, если в выражении есть ошибка? Ну например,

12+z+2=

хорошо бы это обнаруживать.

В использовании preg_match_all, конечно, нет ничего плохого. Еще есть вариант делать preg_split по знакам с флагом PREG_SPLIT_DELIM_CAPTURE и получим последовательность токенов (цифр и знаков).

Аноним 2017/12/22 16:07:59  №1111051 111
>>1111029
Ты уверен, что там надо кавычки? Я не знаток msqli, но php.net говорит, что надо делать так
/ Select запросы возвращают результирующий набор /
if ($result = $mysqli->query("SELECT Name FROM City LIMIT 10")) {
printf("Select вернул %d строк.\n", $result->num_rows);
Аноним 2017/12/22 16:14:22  №1111055 112
>>1110842

Отвыкай.

>>1110846

А сделал бы фоновую задачу на gearman или аналогичной библиотеке - было бы красиво. И не ломалось бы при пропадании связи браузера с сервером например.

>>1110875

Из PHP программы? Надо использовать библилотеку-HTTP клиент вроде Guzzle.

Алсо надо ознакомиться с теорией по HTTP https://github.com/codedokode/pasta/blob/master/network/http.md

>>1110914

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

То есть при написании кода можно закладывть мины замедленного действия, на которые потом кто-то наступит. Ну например, побочные эффекты: функция назвыается getProductCount, но параллельно она обновляет процент скидки у некоторых товаров.

Есть такое понятие, как "defensive programming", книга "совершенный код" если тебе хочется разобраться дальше. Есть небольшой сборник советов https://github.com/codedokode/pasta/blob/master/good-code.md

Ответы: >>1111080
Аноним 2017/12/22 16:19:09  №1111060 113
>>1110985

foreach читабельнее, так как содержит меньше знаков. Когда я вижу foreach, я понимаю с 1 взгляда на это слово, что у нас перебор массива. В случае с for, надо распарсить глазами все эти точки с запятой, посмотреть как дальше используется переменная - времени нужно больше (согласен?)

foreach короче.

Ты пишешь, что тебе понятнее for, но может ли быть, что ты просто к нему привык, а к foreach пока нет?

Регулярки это мощный инструмент, спора нет.
Аноним 2017/12/22 16:23:05  №1111065 114
>>1111009

Используя чужой опыт, можно развиваться быстрее. Или ты предлагаешь все с нуля переизобретать?

>>1111047

HTML/CSS это такой же код и нужно его организовывать, чтобы не запутаться потом. В том числе вводить какие-то правила, а не писать кто как хочет.

> Это для конкретной страницы, на которой таблиц скорей всего больше не будет.
Выглядит как оправдание нежеланию разбираться в БЭМ.

> Очень много времени занимает верстка.
А ты ее хорошо знаешь? То есть можешь написать CSS, не тестируя в браузере, потом открыть, исправить пару мелких косяков и готово? Если постоянно перепроверять код в браузере, то много времени будет уходить. Нужно уметь "рендерить" страницу в уме.


Ответы: >>1111069 >>1111076
Аноним 2017/12/22 16:31:16  №1111069 115
>>1111065
Это хорошо, когда есть свободное время для этого.
А не тогда, когда панически гуглишь, как же реализовать нужное действие.
Аноним 2017/12/22 16:46:12  №1111076 116
>>1111065
Все таки мне кажется новичкам в этом деле трудновато рендерить в голове. Ты можешь иметь представление о том что будет, но уже машинальное представление придет с опытом как мне кажется.

мимокрок

--

Учите консоль сука, чем раньше тем лучше, благо я вовремя это понял и то случайно
Аноним 2017/12/22 16:48:31  №1111080 117
>>1111055
>А сделал бы фоновую задачу на gearman или аналогичной библиотеке - было бы красиво
>>1110843
Аноним 2017/12/22 18:44:28  №1111135 118
у кого-нибудь еще лицензия от шторма слетела?
Аноним 2017/12/22 19:07:56  №1111145 119
Так работает. Как. понять. автозагрузку. ?

autoload.php
--Namespace
----Class.php
----ClassTwo.php

-Class.php:
Namespace Namespace;

class Class
{
public function __construct()
{
new ClassTwo;
}
}

-ClassTwo.php:
Namespace Namespace;

class ClassTwo {}

-autoload.php:

//spl_autoload_extensions('.php');
//spl_autoload_register();

require_once __DIR__ . '/Namespace/Class.php';
require_once __DIR__ . '/Namespace/ClassTwo.php';

$Class = new Namespace\Class;
Аноним 2017/12/23 02:20:26  №1111310 120
Можно в продакшене нотайс о неопределенной переменной игнорировать? Делаю студентов, и у меня получилось, что в некоторых ситуациях в шаблон может передаться переменная со значением null. Это нормально?
Ответы: >>1111361
Аноним 2017/12/23 09:46:54  №1111345 121
>>1111013
Брейки поубирай.
><span id="_close" onclick="openbox('windowLogin')">Закрыть</span>
<br>
<br>
<br>
линк на восстановление пароля
<br>
линк на регистрацию
Ответы: >>1111349
Аноним 2017/12/23 09:47:50  №1111346 122
>>1111013
Один брейк лишний. *
Ответы: >>1111349
Аноним 2017/12/23 09:59:47  №1111349 123
15140123874380.jpg (43, 600x373)
373x600
Ответы: >>1111401 >>1111421
Аноним 2017/12/23 10:59:10  №1111361 124
>>1111310

Нельзя. Это ненормально, что переменная может передаваться, а может не передаваться. Как в таких условиях писать корректно работающий код?

> может передаться переменная со значением null

Ты ничего не путаешь? Переменная со значением null нотиса не вызывает, ошибка именно при обращении к несуществующей переменной.
monolog и security component Аноним 2017/12/23 11:08:38  №1111365 125
Вопрос про monolog и security component в silex.

> When a security configuration does not behave as expected, enable logging (with the Monolog extension for instance) as the Security Component logs a lot of interesting information about what it does and why.

Я правильно понял, что волшебной настройки "enable logging" для Security component не существует, и нужно ручками прописывать $logger->info('...') внутри методов внутри классов внутри интересующих компонентов? Или сделать свой EventListner и подписать его на все события security component, который будет писать их в лог?
Ответы: >>1111420
Аноним 2017/12/23 12:51:53  №1111401 126
>>1111349
Кек почему у тебя кнопки в воздухе висят?
Ответы: >>1111565
Аноним 2017/12/23 13:33:46  №1111420 127
>>1111365

Нет, думаю, что надо просто подключить логгирование стандартным способом и Security начнет в него писать.
Ответы: >>1111426
Аноним 2017/12/23 13:35:18  №1111421 128
>>1111349

Приложил бы код на jsfiddle/codepen. Как мы тебе по картинке скажем, что не так?
Ответы: >>1111424 >>1111565
Аноним 2017/12/23 13:42:02  №1111424 129
>>1111421
Настоящие профессионалы смогут. Код слишко интепрайзный чтобы его светить.
Ответы: >>1111428 >>1111434 >>1111435
Аноним 2017/12/23 13:44:48  №1111426 130
>>1111420
Спасибо, действительно, пишет само.
Аноним 2017/12/23 13:46:21  №1111428 131
>>1111424

Ок, подождем настоящих профессионалов.
Ответы: >>1111435
Аноним 2017/12/23 14:13:21  №1111434 132
>>1111424
>не может в элементарное css
>код слишком интерпрайзный
докатились
Аноним 2017/12/23 14:14:00  №1111435 133
Аноним 2017/12/23 15:17:53  №1111457 134
>>1111450
>php в продакшне не бывает не под линуксом
В смысле? На шиндовс сервер нини, онли линукс?
Ответы: >>1111463
Аноним 2017/12/23 15:31:08  №1111463 135
>>1111457
я ни разу не видел и не слышал, чтобы такое было в реальности. и из моих знакомых никто не видел и не слышал.

в теории может быть, просто это как купить мотоцикл и использовать его в бизнесе для перевозок цемента. где-то может такое и есть, но думаю не от хорошей жизни, а из-за каких-то исторических факторов.
Ответы: >>1111467
Аноним 2017/12/23 15:35:46  №1111467 136
>>1111463
Ну хз. У нас превалируют спермо сервера на работе и я не чураюсь юзать иис в связке с эрэнэр через фастсиджиай. Ничего зазорного в этом не вижу. Работает как надо.
Ответы: >>1111476
Аноним 2017/12/23 16:20:55  №1111476 137
>>1111467
ты в этом вопросе (вопросе винды на проде) явно опытнее, так что поинтересуюсь:
1. что делать, если понадобится сервер очередей? герман или rabbitmq встанут?
2. нет проблем с установкой расширений для php?
3. сфинкс и elasticsearch работают под винду?
4. скрипты по крону запускаете?
5. какая бд?
Аноним 2017/12/23 16:44:56  №1111485 138
>>1111476
Ответы на все свои вопросы ты найдешь в гугле. Ибо я не занимался такими вещами какие тебе интересны. Связка эрэнэр и sqlite/mysql работает спокойно, с либами для эрэнэра проблем не было, они все идут скомпилированные. В конфиг пыха просто добавляешь их имя и кладешь либу в стандартную папку. Есть небольшой гемор при работе с иис с чпу т.к. надо ставить доп модуль url rewrite. А при работе под спермой с апачем/энджинкслм таких проблем не встречал. Короче, я думаю гемора не возникнет.

Если уж всякие связки iis+php+mysql позволяют под спермой wordpress/joomla запускать...
Аноним 2017/12/23 17:11:12  №1111491 139
>>1111476

Проблемы будут, так как многие расширения, библиотеки никто не тестирует и не разрабатывает под винду.
Аноним 2017/12/23 17:31:38  №1111497 140
>>1111476
А зачем нужен Rabbitmq? Да ещё и под виндой. Мимо.
Ответы: >>1111510
Аноним 2017/12/23 17:58:30  №1111510 141
>>1111476
я примерно представляю ответы на эти вопросы, но хотел поинтересоваться у человека, знакомого со стеком.

вообще ты, судя по ответу, и подтверждаешь мою теорию о том, что php на винде бывает только из-за того, что так исторически сложилось в конкретном случае (уже стояли сервера и никто не заморочился, либо запускали проект по приколу, а он выстрелил и переносить уже накладно и т.д.).

если я не прав, можешь привести плюсы такого стека перед линуксом, будет интересно.

>>1111497
для хайлоада. это и был вопрос про мимо или не мимо, т.к. в теории любое публичное приложение может стать хайлоадом однажды.
Ответы: >>1111514 >>1111515
Аноним 2017/12/23 18:05:49  №1111514 142
>>1111510
>Rabbitmq
>Windows
>Хайлоад
kek
Аноним 2017/12/23 18:09:01  №1111515 143
>>1111510
Не, я пых сам разворачивал, нам под внутренние цели более чем. Тебе скорее всего лучше под линупсом все делать. Я далек от мира погроммирования (сис одмин я).
Аноним 2017/12/23 21:07:30  №1111565 144
>>1111401
>почему у тебя кнопки в воздухе висят?
position: absolute
>>1111421
Вот тут же, ну. Под спойлером >>1111047
Ответы: >>1111571 >>1111572
Аноним 2017/12/23 21:25:02  №1111571 145
>>1111565
Хуясе

<input span id="_enter" ... ></span>

интепрайз, ага.

position: absolute;

Зачем? У тебя стандартнейшие элементы, почему ты не даешь им просто идти друг за дружкой?
Ответы: >>1111577
Аноним 2017/12/23 21:27:13  №1111572 146
>>1111565

position absolute тут плохо годится, он обычно используется для закрепления одного блока относительно другого. Элементы с PA не влияют на раскладку соседних блоков, и потому они плохо подходят для твоей ситуации.
Ответы: >>1111577
Аноним 2017/12/23 21:36:15  №1111577 147
>>1111571
>>интепрайз, ага.
Чини детектор.
>Зачем?
ЧТоб не двигались при изменении размера окна.
>>1111572
>position absolute тут плохо годится
Допустим. Но проблема не в position,а в лишнем переносе строки на ровном месте.
Ответы: >>1111651
Аноним 2017/12/23 23:10:04  №1111604 148
подскажите по проектированию БД.

если у нас в таблице всего два столбца, например order_id и item_id, сочетание которых будет уникально, нужно ли добавлять еще столбец id и делать его первичным ключом или можно в кач-ве первичного ключа задать комбинацию этих двух столбцов?
Ответы: >>1112113 >>1112993
Аноним 2017/12/23 23:14:24  №1111608 149
еще вопрос

есть таблица с товарами, там их айдишки и названия.
планирую добавть таблицу зaказов, где будет айди зaказа и в каждом зaказе должно быть несколько товаров. соответственно для того чтобы соблюсти правила первой нормальной формы, я не могу захуярить несколько айдишек через запятую для одного заказа.
я делаю еще одну таблицу типа ordered_items, где будут поля order_id и item_id. и для одного order_id может быть хоть миллион item_id. а если мне нужно будет запросить данные по зaказу, буду писать запрос типа https://ideone.com/AVv3Y8 (бд - постгрес)

это корректный подход? есть еще какие-то общепринятые варианты?
Ответы: >>1112113 >>1112993
Аноним 2017/12/24 03:54:07  №1111651 150
Ответы: >>1113701
Аноним 2017/12/24 05:07:51  №1111655 151
Какой приятный тред. Редко захожу на борды, но когда захожу удивляюсь уровню неадеквата в тредах. Но здесь не так. Спасибо всем за создание такой уникальной атмосферы.
Ответы: >>1111657
Аноним 2017/12/24 05:12:46  №1111657 152
>>1111655
Ток держи в секрете. Нам тут вытекших не надо.
Аноним 2017/12/24 09:01:36  №1111682 153
Всем привет, я пытаюсь осваивать xpath.
Мне удалось успешно написать правило, которое выделяет посты со ссылками
2ch.hk##:xpath(//div[@class='post-wrapper' and descendant::a[contains(text(), 'http')]])
теперь я пытаюсь написать правило для выделения постов без ссылок. Перепробовал уже около 5 вариантов, не заработал ни один.
Буду благодарен помощи.
Ответы: >>1112713 >>1112991
Аноним 2017/12/24 14:25:07  №1111750 154
15141147072890.png (18, 1128x274)
274x1128
Задался вопросом, как узнавать о новых версиях Composer'а своевременно. Твиттера модного у них нет. Можно подписаться на github, но тогда я буду видеть обновления по каждому файлу. А мне нужно только новые релизы видеть. Как быть?
Ответы: >>1111776 >>1112993
Аноним 2017/12/24 15:25:58  №1111776 155
Аноним 2017/12/24 15:30:36  №1111781 156
Если я в объекте "А", в котором создано соединение с бд, создаю объект "Б" у которого много методов с бд. Мне лучше всего сделать что бы в конструкторе объекта "Б" ему вшивалась бд в его параметры или лучше на каждый его метод, который требует бд, передавать бд?
А если у него пара методов с бд тоже вшивать?
А если у него очень много методов с бд тоже не вшивать?
Ответы: >>1111825 >>1112992
PHP BCook 2017/12/24 15:35:48  №1111787 157
Как реализовать бесконечную рекурсию поиска Основного пользователя у пользователя и если у пользователя нет Основного пользователя вызвать break?
Таблица (id|user_id|main_user_id)
Ответы: >>1112992
Аноним 2017/12/24 15:45:27  №1111790 158
15141195279210.png (137, 855x866)
866x855
15141195279231.png (46, 653x439)
439x653
Аноны, как еще можно решить задачку с первого пика? Такое чувство, что есть способ иной.
Ответы: >>1111824
Аноним 2017/12/24 17:19:37  №1111824 159
>>1111790
дублирование - это плохо, можно убрать его:
for($i = 1; $i <= 6; $i++) {
$name = 'word' . $i;
echo array_rand($$name);
if (0 === $i % 3) {
echo "/n";
}
};

можно еще решить с помощью функций или ООП, но ты их скорее всего еще не проходил, так что это потом
Аноним 2017/12/24 17:23:41  №1111825 160
>>1111781
если у тебя в контексте вызова объекта всегда одна БД и одни параметры подклюдчения, то передавай в конструктор.
Аноним 2017/12/24 17:26:25  №1111827 161
Аноним 2017/12/24 19:17:18  №1111861 162
>>1111824
Спасибо.

Однако после
"echo array_rand($$name);"
он выписывал лишь значения ключа, а не слова, дописал:

$result = array_rand($$name);
echo $$name[$result];

и заработало как нужно.
Ответы: >>1111881 >>1112992
Аноним 2017/12/24 19:28:28  №1111862 163
Какой фреймворк выбрать для изучения и почему?
Ответы: >>1111884
Аноним 2017/12/24 20:07:35  №1111881 164
>>1111861
это я специально ошибся, чтобы проверить твои способности, лол
Аноним 2017/12/24 20:09:18  №1111884 165
>>1111862
если хочешь побыстрее найти работу, yii2. если хочешь серьезных проектов и готов больше заебываться, симфони. ларавел хуй знает в каком случае гыгы
Ответы: >>1111999
Аноним 2017/12/25 00:38:37  №1111999 166
>>1111884
> хочешь серьезных проектов
> симфони
Это только симфонисты думают что у них проекты серьёзные. На самом деле любой проект симфони можно переписать на любом другом фрэймворке и получится раза в 2 быстрее и производительнее. Вообще не понимаю откуда этот фап на симфони пошёл.
Аноним 2017/12/25 03:50:55  №1112047 167
Сап, ананасы, а есть советы по тому как улучшить читаемость своего кода и вообще по коду?
Я не профи, но знаний на уровне джуна имею, и программирую периодически на PHP уже года 2 как, всё по стандартам из шапки. Думал про себя что довольно хорошо пишу, и даже код написанный год назад могу прочитать и разобраться в нём за 10-15 секунд. Но на днях показал код синьору с опытом овер 9000 лет, и он обоссал код со всех сторон, за кавычки, за переносы строк, даже добавил за обработку событие которое может случиться при ошибке, мол лишний код написал же. И как-то меня это даже демотивировало сильно код писать и вообще как-то двигаться дальше.
Аноним 2017/12/25 06:55:58  №1112056 168
>>1112047
>И как-то меня это даже демотивировало сильно код писать и вообще как-то двигаться дальше.
Думаю он добился чего хотел. Тупо самоутвердился за счет новичка, который подвержен влиянию "авторитетов". То что кто-то пишет на пхп 9000 лет не значит что он делает это хорошо, он может быть тем еще говнописцем со времен пхп 4, и всё что написано не так как ему привычно стало быть == говнокод. Хуй забей и не показывай больше ничего ему. Лучше сюда приноси. А вообще если тебя волнуют кавычки и отступы, то изучи стандарты psr или прочее.
Ответы: >>1112058
Аноним 2017/12/25 07:15:49  №1112058 169
>>1112056
Спасибо анон. Не так грустно теперь.
Аноним 2017/12/25 07:41:10  №1112064 170
>>1112047
Читай больше хорошего кода и подражай.

Критика синьоров - это нормально. Вполне вероятно, что твой код кошмарен, но ты по неопытности этого не понимаешь. Продолжай работать, копи опыт, сам станешь синьором.
Аноним 2017/12/25 11:48:08  №1112113 171
Ответы: >>1112125
Аноним 2017/12/25 12:58:05  №1112125 172
Аноним 2017/12/25 13:40:39  №1112138 173
>>1112047
Я нахуй шлю любого долбоеба который меня пытается как то критиковать, а не помогать исправить.
Аноним 2017/12/25 13:47:09  №1112144 174
>>1112047
Чувак представь что ты маленькая анимешная девочка и тебя обидели мимокрокодилы-долбоебы харчком по твоему песочному замку и сказали мол, это говно, это гавно. А другие типа ОПа сказали тебе, почему это говно, только не харкали.
Аноним 2017/12/25 20:59:25  №1112319 175
>>1109863 (OP)
Так это, посоны, с помощью каких инструментов вы бы решали задачи где требуется распараллеливание процессов ВНЕЗАПНО под виндой?
Под линух есть Gearman. Или может тупо в питон передавать эту задачу? Там вообще никакой ебли с параллельными процессами нет. Эх…
Ответы: >>1112382
Аноним 2017/12/25 21:25:10  №1112347 176
>>1109863 (OP)
Привет, Опи чан. Хотелось бы спросить, что из себя представляет программист PHP или как ВАС называть. ВЫ дизайнеры? Есть карьерный рост?
Ответы: >>1112377 >>1112382 >>1112992
Аноним 2017/12/25 22:15:27  №1112377 177
15142293273090.png (16, 500x500)
500x500
15142293273101.png (7, 512x320)
320x512
15142293273102.png (20, 724x600)
600x724
15142293273103.png (129, 685x647)
647x685
>>1112347
>что из себя представляет программист PHP
Ответы: >>1112431
Аноним 2017/12/25 22:22:02  №1112382 178
>>1112319
тут недавно обсуждали php на винде, постов 10 назад, только один анон признался, что у него пхп под виндой.

ну насколько я знаю, герман не совсем распараллелирвает процессы, он грубо говоря запускает демоны, которые ждут задачи и выполняют их не скопом, а оптимизируя нагрузку. во всяком случае, таков был мой опыт

https://secure.php.net/manual/en/intro.pthreads.php там перекомпилировать правда надо
>>1112347
толсто
Ответы: >>1112401 >>1112431
Аноним 2017/12/25 22:48:31  №1112401 179
>>1112382
>тут недавно обсуждали php на винде, постов 10 назад, только один анон признался, что у него пхп под виндой.
Так я и есть тот анон, лол. Pthreads не подойдут из-за проблем с пхп версии 7.1
Ответы: >>1112402 >>1112432
Аноним 2017/12/25 22:48:49  №1112402 180
>>1112401
Без сажи, конечно же
Аноним 2017/12/25 23:49:53  №1112424 181
Допустимо ли писать одной строкой, если конструкция очень простая?

if (foo) return bar;
Ответы: >>1112430 >>1112992
Аноним 2017/12/26 00:02:01  №1112430 182
>>1112424
1) Допустимо.
2) Возврат из оператора условия внутри функции может быть запрещён в некоторых языках (но не в похапэ).
Ответы: >>1112992
Аноним 2017/12/26 00:06:39  №1112431 183
>>1112382
>>1112377
>толсто
А если серьезней, но по человечески.
Ответы: >>1112435
Аноним 2017/12/26 00:08:53  №1112432 184
>>1112401
>Так я и есть тот анон, лол. Pthreads не подойдут из-за проблем с пхп версии 7.1
а в чем проблема обновить?
Ответы: >>1112531
Аноним 2017/12/26 00:15:39  №1112435 185
>>1112431
если серьезнее, то пхп программист это либо тоже самое, что любой другой программист для высокоуровневых языков (ооп, куча технологий, много абстракций), либо веб-макака, которая подверстывает и прикручивает шаблоны к вордпрессу или пилит виджеты для битрикса. к сожалению, исторически так сложилось, что язык очень лоялен к говнокоду. но в то же время современный пхп достаточно пиздат для больших приложений и прост для изучения. а еще он очень быстро развивается (развиваться в контексте пхп - это пиздить удачные вещи из других языков)
Ответы: >>1112480 >>1112485
Аноним 2017/12/26 03:39:56  №1112475 186
>>1109863 (OP)
Анон, есть обычный хостинг не выделенный сервер, composera там нет, есть FTP, MySQL и PHP 5.4. Какие фреймворки можно использовать в этом случаешь? Как их ставить, если нет composera?
Ответы: >>1112484 >>1112854
Аноним 2017/12/26 04:15:08  №1112480 187
>>1112435
Сказал бы проще, что так же как и везде есть ленивые хуесосыТипа тебя рождающие стереотипы об хорошем языке, которым все пользуются и не пиздят.
Ответы: >>1112562
Аноним 2017/12/26 05:45:41  №1112483 188
>>1109863 (OP)
Сап. Придумываю механизм сессий.

1. время жизни сессии: 1 час
2.время жизни куки: 1 час
3. привязка сессии к юзер-агенту и ип ххх.ххх.?.?
4. в сессии хранится пароль (не мд5) чтоб когда юзер сменит пароль старая сессия не работала
5. при авторизации генерация нового ид сессии и при смене пароля (без удаления старой)
6. если без авторизации серфишь сессия не запускается
7. если чел вышел или неправильно ввел пароль удаляю ему куки чтоб не грузил мне серв
8. каждые 20 минут генерация нового ид сессии (без удаления старой сессии для предотвращения потери сессии при большом кол-ве запросов)

время выставил для примера. по итогу сессию хуй спиздишь + сервак не засирается файлами сессий.
какие подводные?
Ответы: >>1112486 >>1112487 >>1112991
Аноним 2017/12/26 05:45:53  №1112484 189
>>1112475
>Какие фреймворки можно использовать в этом случаешь?
Те которые поддерживают версию PHP <= 5.4

>Как их ставить, если нет composera?
Перекинуть папку vendor через FTP
Ответы: >>1112489
Аноним 2017/12/26 05:49:45  №1112485 190
>>1112435
Чот стереотип на стереотипе и стереотипом погоняет. Виджеты для битрикса, шаблоны для вордпресс (где там PHP то?).
> пиздить удачные вещи из других языков
Пиздят в основном потому-что всякие нытики заваливают форумы своим нытьём. Потом выясняется что новые функции нужны в 0.00000000001% случаев в 1 проекте, но это можно было сделать и по другому. Просто нытик привык что в жабе так.
Вон, возьми анонимные функции которые в 7.1 добавили. И посмотри где на практике их стали использовать? Да нигде. Только спустя год начали хоть как-то что то делать на них. Но при этом впринципе все кто писал про PHP у себя в блогах упоминали что это ооочень большой недостаток.
Ответы: >>1112488 >>1112562 >>1112991
Аноним 2017/12/26 05:53:14  №1112486 191
>>1112483
p.s. и потери сессии нет. идеально же блять
Аноним 2017/12/26 05:54:13  №1112487 192
>>1112483
>3. привязка сессии к юзер-агенту и ип ххх.ххх.?.?
Зачем?

>4. в сессии хранится пароль (не мд5) чтоб когда юзер сменит пароль старая сессия не работала
Лучше уничтожить и хранить все таки мд5

https://secure.php.net/manual/ru/function.session-destroy.php

>5. при авторизации генерация нового ид сессии и при смене пароля (без удаления старой)
Зачем?

>если чел вышел или неправильно ввел пароль удаляю ему куки чтоб не грузил мне серв
Куки хранятся у пользователя

А сессия - не уверен что она способна нагружать сервер

>8. каждые 20 минут генерация нового ид сессии (без удаления старой сессии для предотвращения потери сессии при большом кол-ве запросов)
Не уверен что сессия может просто взять и потеряться
Ответы: >>1112490 >>1112491
Аноним 2017/12/26 05:56:03  №1112488 193
>>1112485
При этом с С++ также. Возьми 2011 год, когда все ныли про утечки памяти, про небезопысность, про это вот всё. Вышел новый стандарт и... Хоть кто-нибудь использует новые наработки? Нееееет. Давайте будем ковырять говно мамонта.
Аноним 2017/12/26 06:24:33  №1112489 194
>>1112484
Анон, спасибо большое. До сих пор к фреймворкам не притрагивался из-за этого.
Ответы: >>1112849
Аноним 2017/12/26 06:25:48  №1112490 195
>>1112487
привязка по айпи не обязательно. люди с мобилок сидят с разных инетов айпи разные. а юзер агент обязательно, чтоб снизить вероятность кражи сессии (сам пиздил уязвимостями, знаю).

сессион дестрой сволочь удаляет сессию настолько что она потом после запуска в заголовках новые куки не шлет

генерация нового ид чтоб старый если был украден (даже без авторизации сессия) не мог быть заюзан.

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

потеря сессии:
написано в описании функции session regenerate in с решением из костылей, но попробую объяснить.
допустим у меня хуевый инет 10 кбит/с. обновляю сразу 2 вкладки одного сайта. на одной вкладке мне выписало новую сессию, а другая еще не может отправить запрос на сервер из за пинга 20000, и вот отправила со старой кукой сессией ебать а ее нахуй на сервере нет уже. по итогу на 1 вкладке авторизация есть а на другой нет.

короч, все это паранойя, но делается просто и надежности прибавляет.
Ответы: >>1112991
Аноним 2017/12/26 06:30:23  №1112491 196
>>1112487
вот для чего нужна регенерация при авторизации, один из примеров:
Подмена сессии (Session Fixation)

Для подмены сессии злоумышленнику не нужен идентификатор чужой сессии, достаточно установить идентификатор своей сессии легальному пользователю, прошедшему авторизацию. Логика такого типа атаки противоположна по отношению к краже сессии, но в обоих случаях создается ситуация, при которой злоумышленник и легальный пользователь имеют один и тот же идентификатор сессии.
Ответы: >>1112492 >>1112991
Аноним 2017/12/26 06:31:51  №1112492 197
>>1112491
только в примере неточность есть. если чел прошел авторизацию и ему подменили куки, он что, из аккаунта не вылетит будто?
Аноним 2017/12/26 09:48:04  №1112531 198
>>1112432
Отсутствие прав администратора на сервере. Надо работать с тем, что есть. Так ты можешь привести альтернативы gearman под шинду?
Ответы: >>1112568
Аноним 2017/12/26 13:06:37  №1112562 199
>>1112480
они может везде и есть, только за другие языки пусть говорят те, кто с ними плотно работает.
я-то как раз работаю в нормальной конторе на 7.1 с tdd и bp.

>>1112485
пиздят - это хорошо. то, что используют не все сразу - это инерция, которой в пхп на мой взгляд больше, чем в других языках. опять же из-за легаси на phpnuke и прочем говне (утрирую).

эм, анонимные функции в 7.1? может ты путаешь с анонимными классами в 7.0? анонимные функции уже миллион лет есть.

анонимные классы я постоянно использую в тестах - очень удобная вещь для тестирования абстрактных классов
Аноним 2017/12/26 13:17:38  №1112568 200
>>1112531
тебя там вообще походу в угол зажали. мало того, что винда, так еще тебе как админу админских прав не дают лол. посмотри rabbitmq, это тоже типа сервер очередей, может он работает в винде.

у меня только возникает сомнение, что ты сможешь его установить, если у тебя нет админских прав на сервере.
Ответы: >>1112712
Аноним 2017/12/26 14:25:01  №1112712 201
>>1112568
Админы отказываются обновлять php потому что там не только мой сервис и обновление php чревато непредсказуемыми последствиями. А вот какую-то отдельную приблуду поставить - которая бы не затрагивала php в целом и настройки сервера - они согласны.
Ответы: >>1112732 >>1112734
Аноним 2017/12/26 14:27:13  №1112713 202
Аноним 2017/12/26 15:06:24  №1112732 203
>>1112712
ну вообще у меня на локальной машине стоит 3 версии php. они лежат в /etc/php/7.* и не конфликтуют друг с другом. в нжинксе явно указывается, какую версию использовать для конкретного сайта, а для cli можно прописать явно, какую версию использовать при вызове команды php.

более того, думаю можно версию, скомилированную с флагом, нужным для pthreads можно положить в отдельную папку и использовать по необходимости.
Ответы: >>1112768
Аноним 2017/12/26 15:09:08  №1112734 204
>>1112712
>Админы отказываются обновлять php потому что там не только мой сервис и обновление php чревато непредсказуемыми последствиями.
ЯЯЯЯЯЯЯЯЯЯЯЯЯЯЯСНО.
Скажи этим пидорам, что они пидоры блять. И поставили тебе еще один пхп паралельно, нужной версии.
Ответы: >>1112768
Аноним 2017/12/26 16:28:39  №1112768 205
>>1112732
> в нжинксе явно указывается, какую версию использовать для конкретного сайта
Вот это OCHE круто. А в апаче есть такая возможнсоть?
>>1112734
Да, было б збс
Ответы: >>1112798
Аноним 2017/12/26 17:10:14  №1112794 206
Как в этом вашем похопэ проверить существование переменной для получения пост-параметров?

$action = isset($_POST["action"]) ? $_POST["action"] : null;

Так норм? Или правильные пацаны как-то иначе записывают?
Ответы: >>1112801 >>1112848 >>1112850
Аноним 2017/12/26 17:19:22  №1112798 207
>>1112768
>Вот это OCHE круто. А в апаче есть такая возможнсоть?
в нжинксе это делается одной строчкой в конфиге. в апаче не без танцев с бубном, но можешь попробовать https://stackoverflow.com/questions/42696856/running-two-php-versions-on-the-same-server

правда, это достаточно рискованное дело на проде.

алсо, в контексте нашего разговора о стеках, изначально ты сказал, что пользуешься виндой и тебя все устраивает. через несколько дней ты уперся в ограничения стека. я не злорадствую и желаю тебе успехов в борьбе с другими админами, но этот случай, считаю, для всех анонов поучителен - пхп под виндой это костыль и невозможность роста проекта.
Ответы: >>1112805
Аноним 2017/12/26 17:28:14  №1112801 208
>>1112794
на первый взгляд это кажется довольно бессмысленным, т.к. если в посте по ключу action значение не будет давать true на isset, оно будет либо равно 0, либо '', либо null. то есть смысл твоей конструкции в том, чтобы заменять 0 на null, но зачем это надо - непонятно.

если надо (зачем?), оставляй так (либо воспользуйся оператором ?? в семерке:
$action = $_POST["action"] ?? null;), либо можно просто напиши
$action = $_POST['action'];
Ответы: >>1112824
Аноним 2017/12/26 17:33:14  №1112805 209
>>1112798
>алсо, в контексте нашего разговора о стеках, изначально ты сказал, что пользуешься виндой и тебя все устраивает.
Не, такого не говорил. Кокрастыке я сам страдаю от этого. Но это сторонний проект, сервак не мой я просто разместил объяву. Щито поделать.
Аноним 2017/12/26 18:03:43  №1112824 210
15143006232570.png (4, 746x136)
136x746
>>1112801
>$action = $_POST['action'];
Пикрелейтед. Я понимаю, что notice это даже не warning, но по-хорошему, наверное, их стоит избегать?
Ответы: >>1112826 >>1112846 >>1112989
Аноним 2017/12/26 18:13:23  №1112826 211
>>1112824
да. мой косяк, не обратил внимания. тогда $action = $_POST["action"] ?? null;
Ответы: >>1112989
Аноним 2017/12/26 19:01:46  №1112838 212
>>1109863 (OP)
ПХП и Мускул из поставки вертригосервера.
Делаю в пхпмайадмин INSERT INTO бла-бла-бла ; SELECT LAST_INSERT_ID() - получаю то, что ожидаю получить. Делаю то же самое из пхп (внутри mysql_query()) - ошибка "You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'SELECT LAST_INSERT_ID()' at line 1". Пробовал заменить точку с запятой на запятую, амперсанд и на ничего - результат тот же. Обычный инсерт инту (без точки с запятой и SELECT LAST_INSERT_ID()) работает как ожидается. Что делаю не так, как исправить?
Ответы: >>1112845
Аноним 2017/12/26 19:11:19  №1112845 213
>>1112838
1) для одного или нескольких запросов (разделённых ";") используются разные ф-ции, __например__, для устаревшего mysqli мульти-запрос: http://php.net/manual/ru/mysqli.multi-query.php

2) не рекомендую использовать "SELECT LAST_INSERT_ID()" в принципе, т.к. в нагруженном проекте он возвращает ХЗ что. Могу ошибаться, канешн, но ИМХО надёжнее выбрать запись обратно по известным признакам, отдельной процедурой.
Ответы: >>1112851 >>1112853 >>1112989
Аноним 2017/12/26 19:12:23  №1112846 214
>>1112824
ну типа "правильно" инициализировать все переменные и индексы хотя бы нулём, но на практике все забивают, и ничего ужасного не случается
Аноним 2017/12/26 19:13:17  №1112848 215
Аноним 2017/12/26 19:16:49  №1112849 216
>>1112489
ну я не уверен, что это хороший порядок причины и следствия
Аноним 2017/12/26 19:18:16  №1112850 217
>>1112794
насчет того, что все забивают и ничего не страшного случается, не слушай. за такое отношение в приличных местах по рукам бьют.

$action = $_POST["action"] ?? '';

если совсем правильно хочешь, то надо в строковую переменную по умолчанию делать пустой строкой. тогда можно будет использовать тайп-хинтинг и, если нужно, поиграть в строгую типизацию.
Ответы: >>1112852 >>1112989
Аноним 2017/12/26 19:19:44  №1112851 218
>>1112845
>2) не рекомендую использовать "SELECT LAST_INSERT_ID()" в принципе, т.к. в нагруженном проекте он возвращает ХЗ что. Могу ошибаться, канешн, но ИМХО надёжнее выбрать запись обратно по известным признакам, отдельной процедурой.
Это как? Отдельный запрос ебошить? Может тогда уж лучше count()?
А в каких именно случаях "ХЗ что" вернется? Ну, кроме случая, когда долбоебы удалили запись из таблицы, "забыв" поправить автоинкремент?
Аноним 2017/12/26 19:19:51  №1112852 219
>>1112850
>приличные места
в индустрии все просто выёбываются кто как может, а на практике бизнесы гребут бабло совершенно по другим критериям, нежели -- что ты там себе наинициализировал ;)
Ответы: >>1112855 >>1112857
Аноним 2017/12/26 19:21:06  №1112853 220
>>1112845
>для устаревшего mysqli
Ебать. А что сейчас-то используют? я до сих пор, по старинке, mysql_select_db, mysql_query, mysql_fetch_array... Я мамонт?
Ответы: >>1112856
Аноним 2017/12/26 19:21:27  №1112854 221
>>1112475
вообще yii2 поддерживает чуть ли не 5.3.

а это что за хостинг такой, если не секрет? в чем его преимущества?
Аноним 2017/12/26 19:22:08  №1112855 222
>>1112852
>в индустрии все просто выёбываются кто как может
Что ты имеешь ввиду?
Аноним 2017/12/26 19:22:52  №1112856 223
>>1112853
да, мамонт, новые проекты делай с универсальным PDO (к любой БД) http://php.net/manual/ru/book.pdo.php

Старые оставляй как есть, если всё работает
Ответы: >>1112876 >>1112877
Аноним 2017/12/26 19:23:25  №1112857 224
>>1112852
это если ты подчиняешься напрямую бизнесу (фрилансишь, например). а если есть команда разработчиков, тимлид, аудит и прочее, то такой код не пропустят.
Ответы: >>1112858
Аноним 2017/12/26 19:24:07  №1112858 225
>>1112857
ну да, надо же им как-то оправдывать свой хлеб -- как раз такими выебонами
Ответы: >>1112862
Аноним 2017/12/26 19:28:49  №1112860 226
>>1109863 (OP)
Ну вот смотрите, если я не “одаренный” чел, но который готов упорно работать, которому интересна работа с базами данных и сетямино это не точно ,но не интересна работа с дизайноми это тоже не точно, который хочет иметь карьерный рост и приличные деньги, но который хочет и пожить, то есть не все время тратить на программирование и изучение новых технологий, то PHP можно назвать верным путем, естественно учитывая, что помимо PHP нужно изучить и другие технологии?
Ответы: >>1112861 >>1112870 >>1112989
Аноним 2017/12/26 19:30:42  №1112861 227
>>1112860
1) вкатывальщики не нужны
2) да
Ответы: >>1112886 >>1112889 >>1112890
Аноним 2017/12/26 19:30:54  №1112862 228
>>1112858
не соглашусь. говнокод деморализует как если бы в центре офиса насрали кучу говна. то есть всерьез уже сложно относиться к работе.

если у фирмы есть продукт, который надо поддерживать и развивать (например есть приложение и вы продаете подписки), то качество кода важно, т.к. его читают и дописывают разные люди.

а если нужно сделать сайт автосервиса, то конечно им поебать, какие там нотисы летят. лавешка мутится и заебись
Ответы: >>1112863
Аноним 2017/12/26 19:31:15  №1112863 229
>>1112862
это уже твои выебоны, мне пох :3
Ответы: >>1112867
Аноним 2017/12/26 19:34:51  №1112867 230
>>1112863
это понятно, просто я подозреваю что ты сам около фриланса крутишься, или в конторе, где полтора фулстека.
Аноним 2017/12/26 19:37:06  №1112870 231
>>1112860
иди в перезвоним-тред, там тебя поддержат и помогут выбрать верный путь
Ответы: >>1112886
Аноним 2017/12/26 20:08:56  №1112876 232
15143081368420.png (119, 1056x622)
622x1056
>>1112856
Блядь, а нахуй так сложно-то всё? ООП это ебаное (зачем оно мне в скрипте на 50 строк, блядь?), исключения и их перехват вместо mysql_error()
>Если ваше приложение не перехватывает исключение PDO конструктора, движок zend выполнит стандартные операции для завершения работы скрипта и вывода обратной трассировки. В этой трассировке будет содержаться детальная информация о соединении с базой данных, включая имя пользователя и пароль.
Мда, охуительно.

Эм, транзакции теперь обязательны везде, где они поддерживаются? Блджад, что за пиздец? Какой вообще профит от этого всего? Все равно я не могу единообразно работать с мускулом и редисом по определению.
Ответы: >>1112879 >>1112882 >>1112989
Аноним 2017/12/26 20:13:04  №1112877 233
>>1112856
> http://php.net/manual/ru/book.pdo.php
По-моему, моя реакция обусловлена вот этим. Есть какой-нибудь гайд "PDO для дебилов" или урок от ОПа на этот счет? Ну, чтоб было понятно, зачем на все это говно тратить время, и какие профиты в итоге, я хз?
Ответы: >>1112880 >>1112882 >>1112989
Аноним 2017/12/26 20:15:48  №1112879 234
>>1112876
1. использование класса - это еще не ооп.
2. а в чем проблема поймать исключение, добавив четыре строчки кода?
3. в чем проблема автоматических транзакций? тебе же не надо ничего писать, оно там тихо само крутится
Ответы: >>1112881 >>1112988
Аноним 2017/12/26 20:19:23  №1112880 235
>>1112877
https://github.com/codedokode/pasta/blob/master/db/patterns-oop.md там есть чуток про пдо, но
>зачем на все это говно тратить время
с таким подходом возможно тебе лучше дальше сидеть на mysql, правда ее выпилили из 7.0, но можно еще посидеть на 5.4, пока сервера с ней не рассыпятся в пыль.
Ответы: >>1112881
Аноним 2017/12/26 20:22:06  №1112881 236
>>1112879
>2. а в чем проблема поймать исключение, добавив четыре строчки кода?
Нахуй мне этот ПДО, если он сам не может их отлавливать, и мне помимо лишних строчек на ПДО надо добавлять лишние строчки на отлов его исключений (когда раньше строчек было аж две - mysql_query и if(mysql_error))? Зачем вообще что-то, неважно, что, ООП, исключения, что угодно еще, если можно было и без этого?
>3. в чем проблема автоматических транзакций? тебе же не надо ничего писать, оно там тихо само крутится
Оно, судя по мануалу, автоматически откатится, если я его прямо не завершу. В том, что майиасм не поддерживает транзакции, судя по тому же мануалу. И вся эта типа универсальность идет по пизде.
>>1112880
>с таким подходом возможно тебе лучше дальше сидеть на mysql, правда ее выпилили из 7.0, но можно еще посидеть на 5.4, пока сервера с ней не рассыпятся в пыль.
Если так рассуждать, то с таким подходом нахуй идет пхп с его фирменным "через жопу, зато лаконично и просто", от которого (в случае с базами данных) нихуя не осталось
Ключевым было "зачем тратить время ЕСЛИ ПРОФИТЫ НЕОЧЕВИДНЫ".
Ответы: >>1112885 >>1112893 >>1112988
Аноним 2017/12/26 20:24:37  №1112882 237
>>1112876
>>1112877
это я тебе писал выше,
неохота разбирать налетевшие камменты,
ты, главное, не бугурть, все старые процессы можешь оставить как есть, если всё работает
Ответы: >>1112884
Аноним 2017/12/26 20:28:01  №1112884 238
15143092817350.jpg (115, 700x492)
492x700
>>1112882
Да я стараюсь, сорри, если мои посты выглядят как-то враждебно или ретроградно, я просто не понимаю, какой должен быть подход к этому ко всему. "О, вышла новая писька, а старую выпиливают, все как раньше без нее, только концептуально более лудше и всего в 5 раз больше кода, пойду скорее осваивать"? Чувствую себя изучающим фреймворк джаваскрипта, а не пхп.
Аноним 2017/12/26 20:29:12  №1112885 239
>>1112884
>>1112881
>"через жопу, зато лаконично и просто", от которого (в случае с базами данных) нихуя не осталось
ты чего бомбанул? остался примерно такой же mysqli,

но правда-истина в том, что PDO занимает такое же количество писанины, ничего не изменится в твоих скриптах на 50 строк, просто будет больше возможностей. Не бомби, всё в порядке, в 5 раз больше кода тебе писать не нужно -- просто можешь пользоваться дополнительными ООП плюшками, если захочешь.
Аноним 2017/12/26 20:30:54  №1112886 240
>>1112861
>>1112870
Почему тут не могут адекватно ответить на вопрос)?
Ответы: >>1112889 >>1112972 >>1112988
Аноним 2017/12/26 20:32:08  №1112887 241
Ответы: >>1112908
Аноним 2017/12/26 20:32:26  №1112889 242
Аноним 2017/12/26 20:33:09  №1112890 243
>>1112861
>1) вкатывальщики не нужны
Ты в общем говоришь или ты имеешь в виду, что с нулевым опытом не берут?
Ответы: >>1112891
Аноним 2017/12/26 20:34:16  №1112891 244
>>1112890
это просто факт, и в общем и в частном, вкатывальщик-2017 просто никому не нужен
Ответы: >>1112892 >>1112902
Аноним 2017/12/26 20:36:10  №1112892 245
Ответы: >>1112896
Аноним 2017/12/26 20:36:11  №1112893 246
>>1112881
исключения выбрасываются программой, а ловишь ты их сам. никто за тебя их ловить не будет.

по транзакциям, действительно странно написано в мануале. я никогда не заканчивал транзакции явно, все работало нормально.

>зачем тратить время ЕСЛИ ПРОФИТЫ НЕОЧЕВИДНЫ
пока профиты тебе неочевидны, то и не нужно. если твое приложение вырастет и надо будет нанять еще чувака для его поддержки, профиты станут очевидными
Ответы: >>1112908 >>1112908 >>1112988
Аноним 2017/12/26 20:39:06  №1112894 247
>>1112884
ну к сожалению, это во всех языках происходит, пакет "mysql" саппортили лет 20, потом расширили его до сих под живым расширенным mysqli, но по мере взросления стало понятно, что нужен универсальный драйвер к SQL базам. Он такой же простой в использовании, в те же пару строчек, ничего фатального не произошло, а возможностей -- больше. Короче, лучше кайфани, вместо бугурта.
Ответы: >>1112908 >>1112987
Аноним 2017/12/26 20:58:03  №1112896 248
Аноним 2017/12/26 22:11:01  №1112901 249
Аноним 2017/12/26 22:13:21  №1112902 250
>>1112891
Я тебя прекрасно понимаю, честно. Ты не хочешь увеличивать популярность WEB разработки, дабы не палить годноту/не увеличилась конкуренция/профессия не скатилась в хавно (нужное подчеркнуть). Но вот если чисто, между нами, не в общем смысле, а в прямом, профессия норм или есть большие подводные?
Ответы: >>1112974
Аноним 2017/12/26 22:27:09  №1112908 251
>>1112885
>ты чего бомбанул? остался примерно такой же mysqli,
Там еще более дохуя всякого.
>>1112885
>но правда-истина в том, что PDO занимает такое же количество писанины, ничего не изменится в твоих скриптах на 50 строк
ООП, которое занимает строки, обработка исключений, которая занимает строки.
>>1112887
А в чем разница тогда с всей предыдущей хуйней? Блядь, я запутался. По описанию exec и query примерно одно и то же делают, только результат разный возвращают.
>>1112893
>исключения выбрасываются программой, а ловишь ты их сам. никто за тебя их ловить не будет.
Дак а зачем, опять же, в скрипте на 50 строк это, когда была mysql_error?
>>1112893
>пока профиты тебе неочевидны, то и не нужно. если твое приложение вырастет и надо будет нанять еще чувака для его поддержки, профиты станут очевидными
А конкретнее?
>>1112885
>ты чего бомбанул?
Просто ненавижу, когда что-то работает и всех устраивает, может, не идеально, но работает и всех устраивает, все годами пользуются, а потом какой-нибудь долбоеб решает навернуть пару уровней абстракций, которые нихера на практике даже не абстрагируют ничего (пример из мануала выше с транзакциями), требуют только больше писанины и надо переучиваться ради того, чтобы переучиваться, а толк ото всего этого непонятно какой. Не надо больше эксейпить значения переменных? Так все давно написали себе функцию автоматического добавления-удаления и забили.
>>1112894
Пытаюсь, пока не выходит. Может, из-за языка написания документации.
>такой же простой в использовании, в те же пару строчек
Только теперь вместо двух функций обработка исключений (обработчик напиши сам, разумеется, стандартный вывалит логин-пароль при неудачной авторизации). И вместо двух функций 3 класса.
>саппортили лет 20
сэдфрог.жпг

Такс, анон, а если у меня уже таки есть код со старым mysql_connect и всем этим говном, и мне его надо показать прям через час, есть какие-нибудь бесплатные хостинги, где по-прежнему пхп5 стоит, или все уже на 7ую версию перекатились?
Аноним 2017/12/26 22:31:36  №1112909 252
Аноны, старый тред утонул, если кто-то не дождался ответа на вопрос или решения задачи, напомните о себе здесь.
Аноним 2017/12/26 22:39:14  №1112911 253
>>1112908
это я тебе писал; на тытьё отвечать не буду, захочешь -- попробуешь и сам увидишь, что всё норм.

А хостингов с РНР5 полно.
Ответы: >>1112944
Аноним 2017/12/26 22:44:04  №1112913 254
>>1112908
>Просто ненавижу КОКОКОКО
Просто оставь свои проекты на текущей версии и не бузи, всё будет работать
Аноним 2017/12/26 23:01:21  №1112917 255
Давно замечаю что многие сервисы разлогинивают тебя после закрытия браузера. Это поведение самого браузера или новый стандарт безопасности?

Как можно узнать о нём?

Т.е. как определяется что пользователь закрыл браузер и нужно сбросить кукисы?
Ответы: >>1112919
Аноним 2017/12/26 23:04:48  №1112919 256
Ответы: >>1112922
Аноним 2017/12/26 23:30:36  №1112922 257
>>1112919
Как-нибудь объясняется зачем делать куки сессионными за исключением очевидного, что пользователь может надолго оставить доступ к устройству и злоумышленник может этим воспользоваться?
Ответы: >>1112987
Аноним 2017/12/27 00:21:21  №1112937 258
Ответы: >>1113592 >>1117863
Аноним 2017/12/27 00:40:48  №1112944 259
>>1112911
Бесплатный, с пхп5 и мускулом, куда можно вот уже сейчас, в течение часа, залить и чтоб работало (подразумевается либо выдача домена от хостинга, либо реально быстрое прикрепление бесплатного доменного имени) можете подсказать? zzz.com.ua - пхп 7.1.12, хостингер совсем охуел, то ему мобильник мой нужен, то еще чего-то, не хочет просто дать мне залить проект.
Ответы: >>1112950
Аноним 2017/12/27 00:53:00  №1112950 260
>>1112944
Погодите, это я ебланю, с хуя ли из 7 выпилено-то мое говно мамонта? Работает все, даже ошибками типа "депрекейтед" не сыпет.
Ответы: >>1112975
Аноним 2017/12/27 01:48:24  №1112972 261
>>1112886
ты задал слишком общий вопрос, я так и ответил.

по теме - вкатывальщики нужны в дс, за другие города не скажу. работы без опыта не много, но она есть. главное - быть толковым и знать необходимый минимум: язык, ооп, бд (джоины, индексы), линукс и как вообще веб работает. и еще, не иди в битрикс работать, это карьерный тупик. найди контору с собственным продуктом, поработай там за еду полгода-год и дальше иди на норм зп в норм проект. такой план
Аноним 2017/12/27 01:56:05  №1112973 262
>>1112908
ну mysql уже небезопасна, ее и выпилили. и пхп тут не виноват, так как она с 2013 года считается устаревшей.

а в чем проблема написать еще даже и 50 строк кода? это не повлияет на скорость работы или что-то такое. я так понимаю, ты не программист по основной деятельности, так что пиши какие-то вопросы по коду, тут помогут
Аноним 2017/12/27 02:02:17  №1112974 263
>>1112902
профессия норм, если тебе нравится писать код. а ты так написал "не хочу тратить все время на изучение", что немного настораживает. то есть, тебя никто не заставляет по 15 часов педалить, но сам подход лучше поменять. главное, чтобы интерес был, а не чтобы сразу защищать свое личное время.

ну это мое мнение, может ты что-то другое имел в виду
Аноним 2017/12/27 02:04:16  №1112975 264
>>1112950
это надо phpinfo смотреть. подозреваю, там не 7.1, либо mysql не вызывается
Аноним 2017/12/27 02:13:25  №1112977 265
Аноны, это тред про веб-разработку. Ваш вопрос про хостинги не требует больше 2-3 постов, прекращайте тут чат устраивать.
Аноним 2017/12/27 03:13:04  №1112987 266
>>1112922

Чтобы не гадать, какой срок жизни поставить. Иногда делают галочку "запомнить меня", которая ставит фиксированный срок.

>>1112908

> ООП, которое занимает строки,
Примерно столько же получается, сравни сам:

$result = mysql_query(...);
$result = $pdo->query(...);

Плюс, за счет исключений в PDO не нужно писать if с проверкой наличия ошибки. И экранировать переменные вручную не надо. Даже короче выйдет, я думаю.

> exec и query примерно одно и то же делают, только результат разный возвращают.
Так в этом и разница, exec используется для запросов вроде INSERT, которые ничего не возвращают.

> Только теперь вместо двух функций обработка исключений
Ты бы изучил исключения, прежде чем критиковать. Я даже писать ничего не буду, просто ссылку дам, прочти и пойми где ты ошибаешься https://github.com/codedokode/pasta/blob/master/php/exceptions.md

> стандартный вывалит логин-пароль при неудачной авторизации
Либо у тебя включен display_errors (и ты сам виноват), либо ты написал обработчик ошибок, который вываливает на экран логины и пароли, и опять же, ты сам виноват.

Я тебе советую изучить PHP получше, прежде чем критиковать. Если что, в нашем треде дадут подсказку, как сделать ту или иную вещь, только не надо разводить тут флую на полтреда.

> есть какие-нибудь бесплатные хостинги, где по-прежнему пхп5 стоит
Можно взять VPS (скорее всего небесплатный, цены смотри на poiskvps.ru) и поставить любую версию PHP через phpenv.

>>1112894

Причины, почему задепрекейтили mysql, описаны тут https://wiki.php.net/rfc/mysql_deprecation и тут https://stackoverflow.com/questions/16859477/why-are-phps-mysql-functions-deprecated
Аноним 2017/12/27 03:13:36  №1112988 267
>>1112893

Ловить их не требуется, только сделать глобальный обработчик исключений, если нужна красивая страница ошибки. Он пишется где-то в 7 строчек.

> я никогда не заканчивал транзакции явно, все работало нормально.
Значит, ты их неправильно использовал.

>>1112886

Иди в тред перезвонивших или в /web наверно с таким вопросом. Тут можно написать пару постов про поиск работы, но полтреда заполнять флудом не надо. Это не тред психологической поддержки.

Что касается вопроса, что нужно знать, и какой спрос на новичков, попробуй открыть сайт с вакансиями вроде hh.ru и сделать исследование вакансий по интересующей тебя технологии. Я не HR.

>>1112884

mysql выпиливают уже лет 5, я думаю. Ты где был все это время? тут вот https://wiki.php.net/rfc/mysql_deprecation стоит дата 2012 год. Если ты учился по устаревшему учебнику, то зря. Опять же, никто тебе не запрещает поставить 5.6 и сидеть на нем до конца жизни, код свободный, как хочешь, так и используй.

>>1112881

> надо добавлять лишние строчки на отлов его исключений
не надо

> Оно, судя по мануалу, автоматически откатится, если я его прямо не завершу.
В этом и суть транзакции, она не коммитится, пока ты этого не подтвердишь. Если тебе это не нужно - не используй их. Ты вообще теорию изучать пробовал? Ты не разобрался в предмете и полтреда исписал жалобами.

>>1112879

Ловить не надо.
Аноним 2017/12/27 03:14:05  №1112989 268
>>1112877

Погугли статью на Хабре про PDO. ООП и исключения, конечно, надо понимать, чтобы читать статью.

>>1112876

Трассировка выводится на экран, только если включен display_errors.

> транзакции теперь обязательны везде
нет. В mysql по умолчанию включен AUTOCOMMIT, погугли, что это. В других СУБД - не обязательно.

>>1112860

Погугли статьи про зарплаты разработчиков. PHP точно не самый прибыльный язык. ну и работу желательно искать где-нибудь в Калифорнии. И не разводи тут столько флуда.

>>1112850

Сюда нужно добавить strval, так как иначе могут передать например массив и твой код сломается. Не доверяй данным от пользователя.

>>1112824

notice это ошибка в коде. Ее надо исправлять.

>>1112845

Ты ошибаешься, last_insert_id как раз самая корректная функция, для каждого соединения last_insert_id свой и проблем не будет.

>>1112826

Нужно добавлять strval, так как могут передать массив вместо строки.
Аноним 2017/12/27 03:14:55  №1112991 269
>>1111682

count(descendant::...) = 0

>>1112485

Если ты не используешь анонимные функции, это не значит, что они не нужны. Я их использую, например. Например, для сортировки по произвольному критерию, вместе с array_map/array_filter, и тд. Добавили их в 5.4.

Анонимные классы - насколько я знаю, типичный пример это обработчики событий в Ява, наверно тут они для той же цели.

>>1112491

Session fixation работает тогда, когда посторонний может как-то задать id сессии. Например, если он передается через GET-параметр, злоумышленник дает пользователю ссылку example.com?sid=12345678, пользователь залогинивается (и это записывается в сессию 12345678), после чего злоумышленник сам заходит по такой же ссылке и оказывается тоже залогинен (так как у него тот же id сессии, в которой стоит признако залогиненности).

Потому не надо передавать id сессии через что-то, кроме кук.

>>1112490

Еще есть вариант просто не использовать сессии вообще. Не так они и нужны.

>>1112483

Рассмотри еще вариант не использовать сессии вообще.

Пароль не надо хранить открытым текстом, храни соленый хеш от него. Иначе злоумышленник, получив доступ к серверу или дискам от него, или бекапам, получает готовые пароли.

> каждые 20 минут генерация нового ид сессии
Непонятно, зачем. Ты приводил ниже пример, но в браузере куки общие для всех вкладок.
Аноним 2017/12/27 03:15:24  №1112992 270
>>1112424

Нет, PSR говорит, что надо всегда ставить скобки. Без скобок легко сделать ошибку, плюс другому человеку потом не понравится ставить скобки за тебя.

>>1112430

надо опираться на PSR, а не на свое личное мнение. Или хотя бы писать, что это твое, а не общепринятое, мнение.

>>1112347

Нет, дизайнер это другая профессия. Рост есть, если развивать кругозор, а не ограничиваьться одной технологией.

>>1111861

Не надо писать $$name. Надо использовать массив, а не уродливые ненадежные костыли, в таких случаях.

>>1111824

Вместо $$name надо использовать массив. Не учи плохому. Массив специально придуман для случаев, когда надо искать данные в списке по индексу, не надо изобретать кривые костыли.

>>1111787

Не понял вопрос. В SQL нет рекурсии.

>>1111781

Ты изучал DI? Тут нельзя использовать DI? https://github.com/codedokode/pasta/blob/master/arch/di.md

> или лучше на каждый его метод, который требует бд, передавать бд?
Соединение с БД это зависимость и ее логичнее внедрять через конструктор.

> А если у него пара методов с бд тоже вшивать?
А может ты просто неправильно спроектировал класс? Каждый класс должен заниматься своим делом.
Ответы: >>1113101
Аноним 2017/12/27 03:15:58  №1112993 271
>>1111750

Есть старая технология RSS, которая позволяет отслеживать обновления на сайте. На странице гитхаба с релизами есть RSS-лента ( https://github.com/composer/composer/releases.atom ), подпишись на нее любым RSS ридером. Также, композер умеет сам проверять свои обновления и обновляться, посмотри справку по нему.

>>1111608

Поделюсь с тобой секретом. В магазинах, особенно если страна называется не "Япония", товары имеют свойство менять цену (в Японии затяжной кризис и это происходит раз так в лет 10-20). Вряд ли покупатель будет рад тому, что в его заказе цена будет так же меняться. При заказе надо фиксировать цену и любые другие существенные условия покупки (скидку, цену доставки итд) путем дублирования их в таблице заказов.

Не забудь, что покупатель может купить несколько копий товара.

order_id | item_id | count | ordered_price | ...

Также, нужно предотвратить удаление из БД товара, который упомянут в заказе. Например, за счет внешних ключей. Лучше вообще никогда не удалять товары, а только помечать их скрытыми. Либо перемещать в архивную таблицу с обновлением внешних ключей.

Правильно, что придерживаешься нормализации.

> буду писать запрос типа
А зачем группировка-то? Можно и без нее.

>>1111604

Можно. Это называется составной естественный ключ. Это также защищает от вставки одной и той же пары id 2 раза.
Ответы: >>1113105 >>1114124
Аноним 2017/12/27 13:09:19  №1113073 272
С точки зрения хорошего кода нормально писать методы которые не возвращают ничего, а просто выполняют какой то код?
Ответы: >>1113075
Аноним 2017/12/27 13:14:09  №1113075 273
>>1113073

Да. Только важно не придумывать замены return там, где он лучше подходит, так писать не стоит:

$validator->validate($user);
$errros = $validator->getErrors();

Тут лучше написать

$errors = $validator->validate($user);
Аноним 2017/12/27 13:46:24  №1113093 274
Оп добавь в шапку - Учи английский, хотя бы основы (2500 слов)
Аноним 2017/12/27 14:12:06  №1113101 275
>>1111824
>>1112992
>Вместо $$name надо использовать массив. Не учи плохому

сорян. ну это я написал в данных условиях (когда есть несколько переменных не в массиве). если можно переписать входные данные на $words[] = [...] и т.д., то лучше сделать
$i = 1;
foreach ($words as $word) {
echo $word[array_rand($word)];
if (0 === $i++ % 3) {
echo "/n";
}
}
Аноним 2017/12/27 14:20:27  №1113105 276
>>1112993
спасибо за секрет - я действительно об этом не подумал (реального опыта работы с интернет-магазинами не было). получилась бы неудобная ситуация, лол

я думаю, лучше в ordered_items дублировать цену для товара на момент заказа, а в самом заказе размер скидки и доставки, и считать это агрегатной функцией опять же.

а почему не использовать группировку? это накладно?
Аноним 2017/12/27 14:28:39  №1113109 277
>>1110308
Двачую. Самому интересно.
Можешь описать свою задачу,
Ответы: >>1113113
Аноним 2017/12/27 14:41:04  №1113113 278
>>1110308
>>1113109
какие ещё манипуляции?
PHP автоматически извлекает GET-параметры из адресной строки в глобальный массив $_GET,

в /script.php?foo=bar&biz=baz будут доступны переменные $_GET['foo']=='bar' и $_GET['biz']=='baz'

всё.
Аноним 2017/12/27 21:45:43  №1113256 279
ОП, почему на гитхабе затих? Предлагаю темы, интересно почитать твоё мнение, будет круто если в виде статьи в репозитории pasta:
- сокеты, "неумирающий" PHP. По сокетам, да ещё и для PHP-шников, статей как кот наплакал.
- некачественный код в популярных библиотеках/фреймворках. У новичков мало опыта и они впитывают информацию как губки из чужих библиотек, это хорошо. Но бывает библиотека некачественная и прививает плохие практики. Например у этой библиотеки дурацкий API: https://github.com/php-curl-class/php-curl-class
> $curl = new Curl();
> $curl->get('https://www.example.com/')
> if ($curl->error) {
Тут явно напрашивается класс Response и иммутабельный подход в целом. Ещё Yii - это прямо сборник плохих подходов:
- неявное вместо явного (магические методы)
- доступность сервис-локатора отовсюду
- синдром Not Invented Here: https://github.com/yiisoft/yii2-httpclient
Ответы: >>1113347 >>1117864
Аноним 2017/12/27 22:46:43  №1113282 280
>>1109863 (OP)
Как сделать так, чтобы текст был с боку от картинки?
Как импортировать html через php?
Как начать зарабатывать?
Как заставить себя учить и не быть тупым идиотом?
Ответы: >>1113402
Аноним 2017/12/27 23:55:13  №1113307 281
Нахуя оп поставил майнер на свой сайт?
Ответы: >>1113320
Аноним 2017/12/28 00:48:00  №1113320 282
>>1113307

Это не я, чесслово. Всю рекламу ставит юкоз. Он меня уже поддостал, и я думаю, не перенести ли сайт на гитхаб.
Ответы: >>1113339 >>1113402
someApprentice 2017/12/28 01:37:00  №1113339 283
>>1113320
Переходите лучше на наш сайт!
Ответы: >>1113411 >>1113412
Аноним 2017/12/28 02:03:29  №1113346 284
>>1106146

https://github.com/dsgaljkeguhodgiosetuhsegjposguh/studlist2

>Да. Исключение - это способ для функции сообщить о непреодолимой, неожиданной ошибке. А тот, кто ее вызвал, может, если захочет, его обработать, но это не обязательно.
Почему мне тогда просто не поставить try/catch на роутер, а если кто то захочет обрабатывать какую либо ошибку, напишет себе личный try/catch на тот метод, который хочет?

>При оформлении SQL кода стоит придерживаться этого руководства по стилю: http://www.sqlstyle.guide/ru/
вроде сделал

>В дальнейшем тебе стоит также подумать о создании отдельной публичной папки, а сейчас у тебя по сути все файлы вывалены в общий доступ.
я думал у меня только index.php в публичном доступе

>В репозиторий стоит добавить README с кратким описанием проекта и инструкцией по установке. Образцы (можно даже более кратко сделать):
Напишу как сделаю

>>class CheckForm
>> const REG_FORM_SEX_MAN = "Мужской";
>Эту константу уместнее поместить в студента, а не в проверяльщик формы.
Почему?

>Методы checkRegForm() и checkProfileInfo() содержат много одинакового кода. Копипаста кода - это зло. Потому что изучать такой код в 2 раза дольше, править в 2 раза дольше.
Сделал общий. Но по мне он непонятнее и сложнее в изучение чем кучка ифов.

>Папку лучше назвать не Student, а Entity или Model.
почему?

>https://github.com/dsgaljkeguhodgiosetuhsegjposguh/studlist/blob/master/src/DbConnect/DbConnect.php
>Этот класс не очень-то и нужен, тебе ведь никто не запрещает просто создать PDO через new.
вообще я украл это. ну и как я понимаю, он для того что бы данные для пдо из ини файла брать.

>https://github.com/dsgaljkeguhodgiosetuhsegjposguh/studlist/blob/master/src/UsersTableGateway/UsersTableGateway.php
>Тут стоит попробовать применить Dependency Injection: https://github.com/codedokode/pasta/blob/master/arch/di.md
не понимаю. я вроде делаю большинство того что там написано

>> public function SearchStudents($search, table $table)
>Здесь проблема в том, что ты возвращаешь "неполноценные" объекты Student, у которых не заполнена часть полей. Это усложняет код, так как в нем где-то гуляют полностью заполненные объекты, а где-то нет и различить их невозможно. >Получив такой объект, ты не знаешь - у студента пустое название группы или оно просто не загружено. Если ты хочешь вернуть только 4 поля, надо использовать массив или отдельный объект. Но лучше бы вернуть полноценных студентов.
В смысле гулять. Он же используется только в профайле и потом уничтожается. А возвращаться полноценых с хешомпароля, логином и тд не опасней?

>(в роутере) Вместо exit лучше бы поставить return.
почему?

>> header('location: http://localhost:8081/login');
>Тут зря ты прописал домен и порт, как перенести код на другой домен?
То как я дселал сейчас нормально?

>Контроллеры profile и reg наверно можно объединить?
но они же разные

И еще пара вопросов
Я сначала подключая headers, и потом к нему только тело. Это нормально?
Сама реализация стала адевкатной или я все еще делаю "дичь"? В примеру в первой версии я смешал ооп и процедурный код и вообще была полная параша.
Теже контролеры. Приемлимо их так делать? Нормально ли создавать их и вызывать функцию doExecute (что я тоже кстати подсмотрел), когда это можно все в конструктор запихать. Нормально ли создавать в них классы и потом их передавать тем кто нуждаются?
Нужно ли мне использовать интерфейсы и абстракт класы к примеру к контролерам?
А еще я запушил новые файлы и папки а старые так же остались и получилась каша. Как скрыть старые?
Ответы: >>1117864 >>1118527
Аноним 2017/12/28 02:03:44  №1113347 285
>>1113256
мне вот лично интересна не конкретная тема, а такая, где человек имеет опыт и ему есть что сказать. плюс у ОПа на любые темы получается интересно писать.

по поводу сокетов: в ютубе есть хорошее видео с какой-то конференции про асинхронный пхп, там все достаточно интересно и подробно рассказано. завтра буду за компом и скину ссылку.
Аноним 2017/12/28 10:32:11  №1113402 286
>>1113320
Погоди, там сайт заброшенный уже, менюшки не работают, половина ссылок, я на этом сайте ничего не читал чесслово из-за неудобности и еще удивлялся почему он в шапке. >>1113282
Конкретней вопросы задавай. В треде сидит HTML&CSS дрочер, он поможет. Ыыы я про себя ыыыыыы
Ответы: >>1113412 >>1114790
Аноним 2017/12/28 11:39:00  №1113411 287
Аноним 2017/12/28 11:45:20  №1113412 288
>>1113402

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

>>1113339

Спасибо, но я пока рассматриваю вариант хостить на гитхабе.
Ответы: >>1113413
Аноним 2017/12/28 11:46:35  №1113413 289
>>1113412
ОП хочешь я сделаю сайт? Заебашу крутой дизайн со сковородками?
Ответы: >>1113414 >>1113419
Аноним 2017/12/28 11:47:43  №1113414 290
>>1113413
В Омлет входит:
- Методология БЭМ
- Чистота семантики
- Эргономичный дизайн
- Бесплатность
Аноним 2017/12/28 12:15:06  №1113419 291
>>1113413

А чем плох нынешний дизайн? Также, ты недооцениваешь сложность работы. Там куча мелочей вроде отступов и тд.
Ответы: >>1113423
Аноним 2017/12/28 12:22:09  №1113423 292
>>1113419
Нет если ты хочешь сохранить дизайн то дело твое, если хочется держать олдскуль то все ок.
Я бы добавил шрифты читабельные, побольше привлекательности и каких нибудь свистулек, чтобы сайт казался модернизированным.
Ответы: >>1113427
Аноним 2017/12/28 12:35:19  №1113427 293
>>1113423

Я не сторонник "свистулек". Для меня главные критерии, это удобство чтения, удобство пользования и навигации, скорость загрузки и работы.

Выглядеть "современным" - это для меня не является критерием.

Если говорить про реальные недостатки, то это, например, отсутствие адаптированной мобильной версии - это реальная проблема. Идеи, что тут можно сделать, приветствуются.

Насчет шрифтов - я за улучшение читабельности. Но за счет чего? Увеличения размера и межстрочного интервала? Тогда будет неудобно читать на небольших экранах (можно, конечно, увеличить шрифт только для больших экранов - я в общем-то не против, но у меня нет большого монитора, чтобы протестировать).

Или ты намекаешь на веб-шрифты? У меня к ним негативное отношение. Они тяжелые, замедляют загрузку и отображение сайта (текст не рендерится пока не загрузится шрифт), часто они плохо рендерятся под Windows. Я сторонник встроенных в систему шрифтов, благо в Windows много разных стандартных шрифтов.

То есть, если ты хочешь написать про какие-то моменты, которые можно улучшить, я буду рад замечаниям. Если у тебя есть идеи, как должна выглядеть и работать мобильная версия, или версия для огромных мониторов - тоже буду рад. Если ты знаешь, как сделать текст более читабельным - напиши, как.

А если речь о том, чтобы просто поменять стиль и сделать сайт похожим на какой-то другой, то я не очень понимаю, какая мне и читателям от этого выгода. Вот, у Ютуба, напримепр недавно поменяли дизайн на "материальный" и на него теперь больно смотреть (хотя это конечно очень субъективно, кому-то нравится, кому-то нет).
Ответы: >>1113447
Аноним 2017/12/28 14:10:40  №1113447 294
>>1113427
Сделай как на Гите у тебя, там как раз то что я имел ввиду. Простота и сплошная приятность.

Представь что твой сайт это книга или статья. Держи цвета в минимуме и гармонии (Обычно работает 1-4 оттенка), чем больше контраста и округленности - Тем лучше.
Во всем остальном руководствуйся семантикой, она рождает распорядок, когда ставить отступы, создавать элементы и т.д

Ютуб делал опросы, собирал информацию, делал беты и т.д и так уж получилось что количество одобривших оказалось больше, и получилось соответствие логике стандартов
Аноним 2017/12/28 23:04:00  №1113592 295
Ответы: >>1117863
Аноним 2017/12/28 23:59:53  №1113607 296
15144947933260.png (15, 330x424)
424x330
Cап, ненастоящие девочки
Я тут это... проспорил. Сам не знаю как так вышло.
Суть такова-я за 8 дней изучаю Vue.js и в качестве проверочного задания пишу форму заполнения брифа, которая формирует письмо и отправляет на указанный адрес.
Я проиграл или есть шансы?
Ответы: >>1113666 >>1113680 >>1113788
Аноним 2017/12/29 01:19:25  №1113656 297
Ответы: >>1113680
Аноним 2017/12/29 02:09:40  №1113666 298
>>1113607
Никогда и никому не делай тестовые задания, рыжик.
Тысячу раз ведь уже, в каждом втором треде, ну скокаможна.
Ответы: >>1113968
Аноним 2017/12/29 03:01:53  №1113680 299
>>1113656
Убери это говно отсюда.
>>1113607
Пошел нахуй пёс.
Ответы: >>1113818 >>1113968
Аноним 2017/12/29 06:35:03  №1113701 300
15145185032620.jpg (29, 414x303)
303x414
>>1111651
Поставил.
>position: static;
Ничего не изменилось, перенос строки все так же идет.
Еще варианты?

<button id="_close" form="none" onclick="openbox('windowLogin')">Закрыть</button>
</div>
линк на восстановление пароля
<br>
линк на регистрацию
</div>
Ответы: >>1113708 >>1113788
Аноним 2017/12/29 08:26:56  №1113708 301
>>1113701
position это не ширина, я имел ввиду параметр width/max-width, поставь там ширину фиксированную: px, em, pt в wrap элементе и ничего не будет изменяться при передвигании окна, как бы ты не старался.
Ты смотрел код по ссылке?
Ответы: >>1113736
Аноним 2017/12/29 09:40:38  №1113736 302
>>1113708
Да, сделал фиксированный размер окна и кнопок.
Но дело не в этом.
Когда я подключаю код в индексе, все нормально.
Когда я подключаю в другой странице этот же код - появляется двойной перенос строки после формы. В этом- проблема.
Почему такое может быть?
Ответы: >>1116767
Аноним 2017/12/29 10:26:18  №1113746 303
>>1109863 (OP)
>>1109863 (OP)
Анон, помоги вот с чем:

хочу, чтобы пользователь вводил страну, а получал её ID из базы данных.
Сейчас запнулся на регулярных выражениях.

https://ideone.com/Q3Gv2P

Не могу взять в толк, как правильно вытаскивать значение, введенное пользователем, чтобы потом скармливать его реквесту SQL.
Ответы: >>1113760 >>1113788
Аноним 2017/12/29 11:25:10  №1113760 304
>>1113746
$_GET[$country] — используй хотя бы htmlspecialchars, и ограничь поле длиной до максимального названия страны - тиинидад и тобаго самое длинное что сейчас приходит в голову.

Регеэкспы делай в самом сиквеле, подключайся через PDO.
Ответы: >>1113768 >>1113789
Аноним 2017/12/29 11:46:57  №1113768 305
>>1113760
Я немного нуб, немного. ха ха и посему отвечу:
1.Там есть всякие "Бермудские острова" + БД может быть расширена. Нет смысла в ограничении на количество символов.
2.
>используй хотя бы htmlspecialchars
Зачем?
3.
>Регеэкспы делай в самом сиквеле, подключайся через PDO.
А в чем профит?
Ответы: >>1113781
Аноним 2017/12/29 12:04:38  №1113781 306
>>1113768
1. Очень хуево спроектированная БД
2. Чтобы не эксплуатировале поле для всяких атак
3. Профит в том, что сверяешь с данными в БД, а не с данными не пойми с чем. У тебя регулярка проверяет поле country с чем? Тебе надо выполнить подклбчение через безопасный объект PDO к БД, осуществить поиск и сверить, после дать ответ.
Ответы: >>1113787
Аноним 2017/12/29 12:10:19  №1113787 307
>>1113781
1.Я взял список стран с id через API json, прошелся в нотпаде автозаменой и залил в БД.
Ну ты понял, что это НЕ ОЧЕНЬ крутая БД?

2.Внутреннее использование и только. Никто из вне сети не должен иметь доступ.

3.
>а не с данными не пойми с
С регуляркой.

>У тебя регулярка проверяет поле country с чем?
$regexp= '/[A-zа-яёА-ЯЁ]{2,}/u';
Ответы: >>1113804
Аноним 2017/12/29 12:14:44  №1113788 308
>>1113607

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

>>1113701

Не гадай, а освой инструменты разработчика (Ctrl + SHift + I) и посмотри.

>>1113746

Ох, какой страшный код, прямо как из учебника 10-летней давности.

Включи у себя локально вывод всех ошибок в php.ini (display_errors = On , error_reporting = -1) и ты увидишь предупреждение по поводу строки 13.

Вместо preg_match_all надо использовать preg_match.

Что ты хотел проверить регуляркой, непонятно. Она просто проверяет что в строке есть хотя бы 2 буквы среди прочих символов.
Ответы: >>1113792 >>1113862 >>1113968
Аноним 2017/12/29 12:16:17  №1113789 309
>>1113760

Ты какие-то странные советы даешь.

htmlspecialchars надо использовать при выводе данных.

Как и зачем использовать регулярку в SQL, я не понял.
Ответы: >>1113804
Аноним 2017/12/29 12:22:03  №1113792 310
>>1113788
>Что ты хотел проверить регуляркой, непонятно. Она просто проверяет что в строке есть хотя бы 2 буквы среди прочих символов.
Ну, чтобы была заполнена хоть чем-то, это "чем-то" не символы или цифры.
Ответы: >>1113795
Аноним 2017/12/29 12:28:08  №1113795 311
>>1113792

Твоя регулярка пропустит строку "??????aa&&&&".
Аноним 2017/12/29 12:29:52  №1113797 312
>>1109863 (OP)
Подскажите пожалуйста.
Допустим я хочу сделать свой автозагрузчик для создания объектов, но я не понимаю как сделать чтоб он автозагружал не только сам класс, но и родителя и интерфейсы и примеси для класса, если они есть. В двух словах можно намекнуть?
Ответы: >>1113800
Аноним 2017/12/29 12:31:34  №1113800 313
>>1113797

Не надо ничего специально делать. PHP сам вызовет автозагрузчик для каждого дополнительного класса (родителя, интерфейса итд).
Ответы: >>1113801
Аноним 2017/12/29 12:40:10  №1113801 314
>>1113800
Ах да, забыл сказать, у меня еще неймспейсы, не вызывает.
Cам класс лежит в условном classes/main, его абстрактный родитель в classes/abs, интерфейсы в classes/intefaces, если неймспейс глобальный то и проблем нет, я не спорю, а с "кастом" неймспейсами просто вываливается ошибка что для класса SomeItem не найдем родитель Item и так далее.
Ну либо я дурак и чего-то не догоняю.
Есть разве что мысль чтоб автозагрузчик как-то ловил исключения и по ним подключал нужные интерфейсы и родителей, но я при мысли об этом чувствую как едет крыша.
Ответы: >>1113803 >>1113805
Аноним 2017/12/29 12:47:32  №1113803 315
>>1113801
если у тебя труктура неймспейса дублирует структуру папки, проблем быть не должно. если не дублирует, а все неймспейсы различаются префиксом, то используй автозагрузчик композера и там все их прописывай типа
{
"autoload": {
"psr-4": {
"MyLibrary\\": "src/",
"MyApp\\Plugins\\": "plugins/"
}
}
}

пример отсюда https://github.com/codedokode/pasta/blob/master/php/autoload.md
Ответы: >>1113806
Аноним 2017/12/29 12:49:32  №1113804 316
>>1113787
1. Да, БД не оч, но преобразовать под свои нужды все де можно. Поэтому юзай какую-нибудь тулзу визуальную для редактирования

2. Хорошо

3. У тебя в коде не видно коннекта к БД и не понятно что регулярка проверяет. Шаблон есть, а входных данных не видно.

>>1113789
Эта функция экранирует спец символы и как разультат защищает от ввода в поле > <script>touch_my_tra_lya_lya()</script>

По сиквелу еще раз повторяю, для сопоставления данных введенных в поле и взятых из базы.
Ответы: >>1113826
Аноним 2017/12/29 12:49:38  №1113805 317
>>1113801

Не изобретай свои схемы наименования папок, а используй PSR-4, тебе ссылку уже выше дали на урок.
Аноним 2017/12/29 12:49:53  №1113806 318
Аноним 2017/12/29 13:04:13  №1113811 319
Привет пацаны!
Тут возникают периодами вопросы что нужно знать для прохождения собеса. Я вот хожу на них и вот такой списочек возник.

1. Что такое ооп? Ну и каждый пункт.
2. Как работает сервер.
3. Виды протоколов. http ftp smtp pop
4. Рестфулл апи?
5. SQL. select insert join having вы будите писать запросы на бумажке.
6. Проектирование бд, нормализация.
7. Вы будете писать php код на бумажке тоже!!! Маленькие функции, но все равно будете. Задачки будут на рекурсию точно. Факториал, Фибоначчи. Два раза попались задачки из учебника Опа.

Ни разу не спросили про хтмл и цсс.

Еще возможно будет тестовое. Тут разные вариации. Я делал
приложение с авторизацией и динамической загрузкой страниц с помощью AJAX. Древовидные комментарии.

На самом собесе главное не волноваться. Это очень сложно было для меня. Кроме похода на собес не в девелоп контору. Там было похуй.
Ответы: >>1113812 >>1116767
Аноним 2017/12/29 13:08:13  №1113812 320
>>1113811
>код на бумажке
сразу нахуй таких
Ответы: >>1113814
Аноним 2017/12/29 13:14:05  №1113814 321
>>1113812
Вакансии июнек. Мне кажется это норм, как ты еще подтвердишь что хоть что-то знаешь умеешь? Хули ты три строчки факториала не сможешь написать? Я читал про долбоебов которые заказывают решение тестовых, у которых знаний хуй. И вот чтобы таких отсеять и делают это. Конечно ебаная практика. Я привык хуярить код, а потом тестить его. И с первого раза у меня ничего не работает. Опыта же нуль. Но с другой стороны это просто покажет что ты хоть с синтаксисом знаком.
Аноним 2017/12/29 13:29:48  №1113818 322
Аноним 2017/12/29 13:45:10  №1113826 323
>>1113804
https://ideone.com/6zjEBp

Вот вторая часть кода.

Не могу понять, почему у меня не выводится результат.
Ответы: >>1113828 >>1113870
Аноним 2017/12/29 13:52:37  №1113828 324
>>1113826
Логин/пасс точные при подключении?

В сиквеле у тебя явная ошибка: ты выбираешь id и сравниваешь с именем.
Ответы: >>1113829
Аноним 2017/12/29 13:53:49  №1113829 325
>>1113828
Логи пассы я заменил ололо! дианон1 хотя, кому я нахуй нужен...

>ты выбираешь id и сравниваешь с именем.
В смысле?
Ответы: >>1113837
Аноним 2017/12/29 14:13:35  №1113837 326
>>1113829
Про логин/пасс я уточнил, а то вдруг ты не додумался их заменить.

> $str_sql_query = "SELECT id FROM dbCountries WHERE name LIKE '%$word%' OR alias LIKE '%$word%' ";

После селекта пишешь name вместо id
Ответы: >>1113841
Аноним 2017/12/29 14:42:28  №1113841 327
>>1113837
Не. Мне нужнро, чтобы юзер вводил "Турция", а ему вываливался id-шник "65".
Ответы: >>1113843
Аноним 2017/12/29 14:47:53  №1113843 328
Ответы: >>1113846
Аноним 2017/12/29 14:56:10  №1113846 329
>>1113843
Меня больше интересует, как выводить значения из $result = mysql_query($str_sql_query, $link);
Ответы: >>1113848 >>1113872
Аноним 2017/12/29 15:02:28  №1113848 330
>>1113846
Самый просто способ echo $result
Ответы: >>1113851
Аноним 2017/12/29 15:11:43  №1113851 331
>>1113848
Не, херня получается.
Ввожу "Абхазия". В БД у неё ид = 1.

Ответ через echo:
Resource id #5
Ответы: >>1113867
Аноним 2017/12/29 15:59:09  №1113862 332
15145523496750.jpg (34, 520x234)
234x520
>>1113788
>Не гадай, а освой инструменты разработчика (Ctrl + SHift + I) и посмотри.
ф12 клацнуть проще.
И что я там должен увидеть?
Ответы: >>1113871
Аноним 2017/12/29 16:08:52  №1113867 333
>>1113851
Всё правильно. Так и должно быть. Если ты хочешь увидеть содержимое ввиде текста, самоое легкое это через var_dump посмотреть
Ответы: >>1113874
Аноним 2017/12/29 16:15:15  №1113870 334
Ответы: >>1113874
Аноним 2017/12/29 16:16:23  №1113871 335
>>1113862

Там для каждого элемента выводится его размер, паддинги и маргины, примененные CSS праивла. Можно увидеть, в чем проблема.
Аноним 2017/12/29 16:17:52  №1113872 336
Ответы: >>1113874
Аноним 2017/12/29 16:23:41  №1113874 337
>>1113872
Прости, Анон, но я никак не пойму, что мне нужно сделать, чтобы вытянуть из mysql_query id-шник.

>>1113867
Мне его обязательно нужно будет передать.

>>1113870
Сейчас для меня это не особо важно, т.к. срок горит.
Обещаю, что в следующей задаче (а это первая на моем счету) постараюсь сделать все "по-взрослому", но вот прям щас хоть на костылях.
Ответы: >>1113887 >>1113908
Аноним 2017/12/29 16:53:51  №1113887 338
Ответы: >>1113889 >>1113894 >>1113990
Аноним 2017/12/29 17:15:00  №1113889 339
>>1113887
>Вообще, тебе надо еще учиться
Слушай, я, как бэ, даже не заикался про то, что я там супер-пупер дохуя джедай, который ебет всех в рот.

Просто есть я и задача. И я не понимаю, как добиться результата.

Вот например:

Я посмотрел, что mysql_connect можно подключать напрямую к БД, без mysql_select_db

Написал :
mysql_connect(localhost, Uname, Upass, BDname) и потратил 15 минут, пытаясь понять. почему не работает. Как итог - вернулся назад.
Ответы: >>1113908
Аноним 2017/12/29 17:50:33  №1113894 340
>>1113887
https://ideone.com/N0rYXs

Все! Сделал. Теперь осталось придумать, как вложить это в цикл, где будет sql запрос получать значения из массива.
Ответы: >>1113908
Аноним 2017/12/29 18:02:07  №1113902 341
Ответы: >>1116767
Аноним 2017/12/29 18:17:00  №1113908 342
>>1113894
>>1113874
>>1113889
Распиздяйничество уноси отсюда, ты сам не умеешь думать чтоле блять? Я с вас в шоке просто, как вы треды находите? Или ты самый хитрый хуесос, который решил, что за него будут задачи делать? Ты совсем дурак чтоле сука!?
Ответы: >>1113910
Аноним 2017/12/29 18:25:10  №1113910 343
preg_match_all возвращает массив в массиве.
А есть способ возвращать обычный массив, при использовании регулярного выражения?

>>1113908
>бабах
Спасибо, мне очень важно твое мнение.
Аноним 2017/12/29 18:47:57  №1113914 344
Аноны, не разводите бесполезный флуд на полтреда. Если вы хотите помочь, напишите ему сразу решение, а не выясняйте полтреда, что ему нужно. Если вы недовольны - просто молча пройдите мимо.
Аноним 2017/12/29 18:48:51  №1113915 345
>>1113910
Я с тобой ничем не делился сука, на тебя мнение тратить хуже быть червем пидором, сьеби отсюда ибо тебе уже никто не поможет, ты потерян сука. Ты хуже спортсмена Гоши который программирует лучше чем ты.
Аноним 2017/12/29 18:51:37  №1113917 346
>>1113910
Зачем ты пишешь сюда и засоряешь тред своими мыслями вслух? Нам твое каждое движение не интересно, поверь.
Ответы: >>1113990
Аноним 2017/12/29 20:18:52  №1113943 347
>>1113910
тебе подсказали про mysqli и pdo, а ты такой "ну щас накостылить надо, а учиться потом". после таких слов вряд ли кому-то будет интересно что-то обсуждать. за тебя никто костылить не будет.

иди на фл.ру и там тебе за 300 рублей решат твою задачу как раз с помощью mysql. тут не сайт бесплатных решений
Ответы: >>1113990
Аноним 2017/12/29 22:16:52  №1113968 348
Аноним 2017/12/29 23:37:34  №1113990 349
>>1113943
>тебе подсказали про mysqli и pdo
Посоветовали улучшить код, в виде улучшения защиты от взлома.

Вот скажи, нахуя это нужно, если 0-ая угроза взлома?

>за тебя никто костылить не будет.
Лол, и не требуется.
Вон тот анон >>1113887 дал мануал, я побился головой и решил задачу.

Сирисли, ты какой-то выебистый. Меньше мни из себя спасителя, к которому приходят с протянутой рукой.

>>1113917
Ну это да.
Ответы: >>1114054 >>1114224
Аноним 2017/12/30 04:47:27  №1114054 350
>>1113990
Ой пошел нахуй отсюда.
Ответы: >>1114099
Аноним 2017/12/30 11:18:01  №1114099 351
Аноним 2017/12/30 13:26:01  №1114124 352
>>1112993
> Также, композер умеет сам проверять свои обновления и обновляться, посмотри справку по нему.

Я только узнал, что после 60 дней необновления он выводит сообщение Warning: This development build of composer is over 60 days old. It is recommend
ed to update it by running "C:\ProgramData\ComposerSetup\bin\composer.phar self-
update" to get the latest version.

Но можно ли его как-то сконфигурировать, например изменить кол-во дней, не смог узнать.
По поводу автообновления, нашел советы по типу добавить в планировщик задач команду self-update.

> На странице гитхаба с релизами есть RSS-лента
Вот это как раз то, что нужно. Подписался
Ответы: >>1116767
Аноним 2017/12/30 16:33:26  №1114151 353
Аноны, где скачать темплейты для интернет магазина. Все что нашел уебанские какие-то
Аноним 2017/12/30 17:49:46  №1114168 354
Где можно почитать про empty, isset, !=null и их отличия?
Ответы: >>1114226 >>1114233
Аноним 2017/12/30 20:04:19  №1114224 355
Ответы: >>1114379
Аноним 2017/12/30 20:05:05  №1114226 356
Аноним 2017/12/30 20:40:04  №1114233 357
>>1114168
Ну это вообще пиздец какой-то.

php --rf empty/isset

Ну и конечно не забываем, что есть php.net с поиском и документацией...
Аноним 2017/12/30 21:47:11  №1114247 358
https://phpclub.tech/pr/res/1097438.html#1109855
Спасибо за ответ!

> Зачем в каждой папке лежит пустой gitignore?

Создаётся командами типа make:controller. Поудаляю

> Почему имя файла начинается с подчеркивания?

Подсмотрел у knpuniverse. Без подчеркивания - это страница, с подчеркиванием - какой-то элемент: форма, модуль, и т.п. По-моему удобно. Да и в библиотеках такое встречал (вроде в EasyAdmin)

> "{{ path('tests', {'tag': tag.name}) }}"
> Вот это мне не нравится. Разве не лучше было бы написать getTestsByTagUrl(tag)? Так мы собираем код генерации URL в одном месте, а не размазываем по шаблонам, получаем тайп-хинты, можем делать дополнительные проверки. Можем как-то централизованно влиять на генерацию URL.

Че-то я не понял, о чем ты

> По переменным окружения - не стоит ли добавить им уникальный префикс вроде TH_..., чтобы они были гарантированно уникальными?

И тут тоже не понял, о каких переменных ты говоришь


> https://github.com/TheSidSpears/test_hub/blob/master/templates/tests/list.html.twig#L8
> 'attr': {
> 'value': searchValue
> Что-то выглядит как костыль. Значение в форму в контроллере прописать нельзя?

Я долго искал, как это реализовать. В итоге нашел вариант переопределить поле: $form->add('search', null, ['data' => $searchString]);
Но меня ждал облом: You cannot add children to a submitted form
Как переопределить аттрибут поля, а не всё поле целиком, я найти не смог. Но что-то мне подсказывает, что такая возможность должна быть

> Почему strict_variables включены только в режиме debug?
Почитал issue, понял о чем речь. С тобой согласен, поставил strict_variables: true
А вот в routing.yaml у меня стоит strict_requirements: ~ и я не знаю, что означает тильда

> Роуты в аннотациях
Один проект я уже сделаю с роутами в аннотациях, в этом перенесу в конфиге. По итогу мне будет понятно, что удобней

> Неудачная идея, по моему, делать присваивание внутри if.
В данном случае я исправил и код стал проше. Но в принципе, я не понимаю, что плохого в присваивании внутри if

> https://github.com/TheSidSpears/test_hub/blob/master/src/Migrations/Version20171208191454.php#L18
> Тут charset utf8 стоит, а не utf8mb4
Исправил. А для того, чтобы в миграциях автоматически проставлялась верная кодировка, мне пришлось добавить doctrine.dbal.default_table_options.charset: utf8mb4 и doctrine.dbal.default_table_options.collate: utf8mb4_unicode_ci, не смотря на то, что уже стоит doctrine.dbal.charset: utf8mb4
По-моему, это не круто, что придётся прописывать в каждом проекте настройки, которые для mysql являются дефолтными

> https://github.com/TheSidSpears/test_hub/blob/master/src/Repository/TestRepository.php#L19
> Для не меняющегося запроса, наверно короче будет написать его на DQL.
У меня короче не получилось https://ideone.com/6Wqs9R

Осталось разобраться с тестами. Алсо, выставляю на проверку https://github.com/TheSidSpears/test_hub
Ответы: >>1116765 >>1116766 >>1117687
Аноним 2017/12/30 23:15:28  №1114271 359
Здравствуйте. Решая задачу на палиндром столкнулся с проблемой.
1)Для начала хотел бы избавиться с пробелами и перевести строку $text в нижний регистр, но программа выдает ошибки, в чем проблема?(Код программы https://ideone.com/4ARugv)
2)В каких случаях нужно использовать строку mb_internal_encoding('udf-8')?
Аноним 2017/12/30 23:17:04  №1114273 360
Ответы: >>1114284 >>1114284
Аноним 2017/12/30 23:33:13  №1114284 361
15146659932870.png (78, 960x1042)
1042x960
>>1114271
>>1114273
>>1114271
>>1114273
1) utf-8 бро. у тебя udf.
Unicode (or Universal Coded Character Set) Transformation Format – 8-bit
2) Короткий ответ - всегда, так как эта кодировка кодирует символы из все алфавитов. Но на ideone не работают mb_ функции. Там до сих пор не поlключили нужный модуль к php.
А так твой код работает как надо.
Ответы: >>1114404
Аноним 2017/12/31 00:14:13  №1114297 362
У меня есть цикл с циклом внутри и выходит что то типо внешний цикл считает до 6, а внутренний с каждой итерацией внешнего только до 1.
Ответы: >>1114329
Аноним 2017/12/31 00:17:30  №1114301 363
15146686508010.jpg (496, 1000x1000)
1000x1000
Пагни я тут вкатываюсь в ПэХопЭмакакинг с нуля опытный пользователь, лел
Скилы:
-Лондон из зе кэпитал оф грейт бурито - 5\10, читаю фанфики, разговорный не качал пока зря, думаю - с ним можно работать без всяких пехапе
-Гуру пейнта, сони вегаса и прочих фотошопов - 4\10
-Администрирование, эникей и прочая "Почему принтер не работает и кто поставил VNC?!" - 4\10
-Матан - 1\10 я у мамки гуманитарий

Стоит ли вкатываться, если планирую рубить трафик с пиратского контента, или РЫНОЧЕК ПОДЕЛЕН? ха-ха не пиздите тут мне Подводных камней не боюсь, если они преодолимы. Работать буду соло. Какие подводные камни? Кроме того, что РОСКОМНАДЗОР щемит благородных господ?
Ответы: >>1114307 >>1114321 >>1114372
Аноним 2017/12/31 00:37:33  №1114307 364
>>1114301
Иди в воркач или бизнесач. Там все твои друзья.
Ответы: >>1114317
Аноним 2017/12/31 00:59:11  №1114317 365
15146711517610.jpg (38, 540x383)
383x540
>>1114307
>Иди в воркач или бизнесач. Там все твои друзья.
Таки вы считаете кодинг настолько унылым, или это я не вписываюсь в рамки индуса? Ближайшие полтора года у меня быдлоработка два на два, за это время я постараюсь освоить высшую нервную деятельность, в то время пока спинной мозг будет лепить гвнокод, я буду думать о запиливании/продвижении своих рамок/поисков/экстракторов медиа на чужое добро и конечно приготовлюсь стилить идеи с eng-сектора. Воркач от меня не уйдет он придет сюда
Ответы: >>1114319 >>1114372
Аноним 2017/12/31 01:06:19  №1114319 366
15146715792590.png (16, 500x500)
500x500
15146715792591.png (7, 512x320)
320x512
>>1114317
Не трогай ни эту часть «кодинга», ни сам «кодинг» в целом.
Ответы: >>1114328
Аноним 2017/12/31 01:12:48  №1114321 367
>>1114301

Я бы предложил тебе заняться нормальной деятельностью. Зачем делать какие-то незаконные сайты и рисковать, если можно заниматься нормальной легальной работой? Также, наш тред не поддерживает пиратство.

Матан для программирования сайтов не нужен.

Изучай PHP/JS либо верстку + JS и иди занимайся нормальной работой. Если ты умеешь работать с графическими редакторами, а тем более если у тебя есть вкус и понимание, что красиво, а что нет, что модно, какие цвета гармонично сочетаются, то это будет большим плюсом.
Ответы: >>1114331
Аноним 2017/12/31 01:19:21  №1114328 368
>>1114319
Хех не трогать веб своими грязными руками? После гуглов-яндексов-меилрушечек мне эту выебанную шлюху трогать не очень то хочется, однако единственное тело, готовое вкладывать трудочасы в мои концепты и делиться профитом - это я сам, засим избавлю вас от своего общества, извините за беспокойство, но глупо начинать что-то не спросив на двачах смачно рыгает и почесывает яица, вернусь через месяц надеюсь что нет
Ответы: >>1114372
Аноним 2017/12/31 01:19:24  №1114329 369
15146723643570.png (139, 638x613)
613x638
>>1114297
https://pastebin.com/YuE5zb8d
Этот код не запустится, но может кто глянет глазком почему при каждой итерации внешнего цикла, внутренний каждый раз делает только первую итерацию. Пикрелейтед.
Ответы: >>1116339
Аноним 2017/12/31 01:22:56  №1114331 370
>>1114321
Постараюсь, просто покоптив небо у меня сложилось устойчивое впечатление, что законы и налоговая - это две вещи, мешающие зарабатывать, этот травматический опыт будет сложно преодолеть.
Аноним 2017/12/31 04:46:06  №1114372 371
>>1114301
>>1114317
>>1114328
Ты оставайся, ты хороший. Только в конце пикчу не запостил, ублюдок ебаный
Аноним 2017/12/31 06:08:08  №1114379 372
Аноним 2017/12/31 11:04:33  №1114404 373
>>1114284
Спасибо дружище.
На http://sandbox.onlinephpfunctions.com/ все заработало.
Только вот я та и не понял зачем включать mb_internal_encoding(), если без него все работает? Для стиля что ли?) Ну да ладно.
ВСЕХ С НАСТУПАЮЩИМ НОВЫМ ГОДОМ!!!!
Ответы: >>1116339
Аноним 2017/12/31 14:34:33  №1114443 374
>>1109863 (OP)
В 2018 обещаю научиться программировать на PHP.
Торжественно клянусь.
Ответы: >>1114445
Аноним 2017/12/31 14:35:40  №1114445 375
>>1114443
Хе хе хе, я себе это с ~2008 года обещаю ;-)
Ответы: >>1114447
Аноним 2017/12/31 14:41:21  №1114447 376
>>1114445
Не, в 2018 точно выучу.
Ответы: >>1114490
Аноним 2017/12/31 16:03:31  №1114490 377
>>1114447
Ахахахахахха ну кончено
Ответы: >>1114492 >>1114493
Аноним 2017/12/31 16:05:34  №1114492 378
>>1114490
А чему не можешь научиться в php за ~10 лет?

мимо
Ответы: >>1114494
Аноним 2017/12/31 16:06:25  №1114493 379
>>1114490
Нет, срсли, уже учу.
Аноним 2017/12/31 16:09:40  №1114494 380
>>1114492
П — прокрастинация. Книгу пол года назад купил php 7 симдянова и котерова. До нее покупал рнр 5 в далеком 2008. До этого потинкту пытался учить рнр.

Давеча решил позырить тенденции в рнр, охуел он пеар, композер, как все разворачивают, ооп и прочие штуки. В мою бытность бралась ЦМС, и к ней искались/писались плагины. Сейчас проще с фреймворком работать, чем с ЦМС.

Меня больше рнр интересует как расширенный диалект Си. Одно удовольствие на нем писать утилиты для автоматизации. Сайты не мое, хотя я их 10 лет назад делал...
Ответы: >>1114495 >>1114547
Аноним 2017/12/31 16:16:05  №1114495 381
>>1114494
Почему ты знаешь Си, но не знаешь ООП и другие перечисленные тобой вещи, которые можно изучить за пол часа?
Ответы: >>1114500
Аноним 2017/12/31 16:23:12  №1114500 382
>>1114495
Я его когда-то давно учил из интереса. Хотел писать клиент-серверные gui приложения под линух, но из-за уебищности gtk+ скудоумия быстро забросил.

Я по профессии сись одмен, погромировааие хобби
Ответы: >>1114521
Аноним 2017/12/31 17:08:37  №1114521 383
>>1114500
ООП это изи

Придумываешь объект и какие у него свойства и методы могут быть и пишешь класс
Например, User

class User
{
private $name;
private $password;

...
}

Вся суть ООП

Дальше MVC (Model View Controller)
Модель занимается состоянием программы
Отображение выводит его пользователю
Контроллер дирижирует ими двумя

namespace App\Model;

use App\Model\User;

class Database
{

public function addUser(User $user)
{
...
}

public function getUser(int $id): User
{
...
}

public function deleteUser(int $id)
{
...
}

}


namespace App\Model;

class User
{
...
}


namespace App\View;

class View
{
public function render(...)
{
...
}
}


namespace App\Controller;

use App\Model\Database;
use App\View\View;

class Controller
{
//Dependency Injection (DI)
private $db;
private $view;

//DI
public function __construct(Database $db, View $view)
{
$this->db = $db;
$this->view = $view;
}

public function registration()
{
$user = new User(...);

$this->db->addUser($user);

$this->view->render(...);
}

}

index.php
require_once ...;

use App\Model\Database;
use App\View\View;
use App\Controller\Controller;

$db = new Database();
$view = new View();
$controller = new Controller($db, $view);

$controller->registration();

Дальше лучше изучить какой-нибудь фреймворк. Советую slim https://www.slimframework.com/ Его можно изучить за вечер. Он даст представление о том как должно выглядеть приложение в идеале.

Композер тоже изи

Устанавливаешь
Используешь команды require, install, update...

Не забываем под автоподгрузку классов https://getcomposer.org/doc/01-basic-usage.md#autoloading

https://getcomposer.org/doc/00-intro.md
https://getcomposer.org/doc/01-basic-usage.md


Готово! Теперь вы знаете php и вы восхитительны!

Надеюсь ты правда не знал всего этого и я не зря это писал
Ответы: >>1114528 >>1116338
Аноним 2017/12/31 17:29:09  №1114528 384
>>1114521
Спасибо, анон. В ООП пытался, писал простые классы, в твоём примере смотрю уже даже тип данных User есть, это сахар от какого то фрэймворка?
> public function addUser(User $user)

Все эти поля, пространство имён, приватные поля... сложна :-( и нудно но уж в этом-то году я точно выучу РНР ахахахха
Ответы: >>1114529 >>1114532 >>1116338
Аноним 2017/12/31 17:30:10  №1114529 385
Ответы: >>1114534
Аноним 2017/12/31 17:45:12  №1114532 386
Ответы: >>1114538
Аноним 2017/12/31 17:52:05  №1114534 387
Аноним 2017/12/31 18:07:36  №1114538 388
>>1114532
Лихо, даже не знаю, где такое может пригодиться. РНР развился со времен 5.0/5.1 которые я учил оч сильно. Спасибо, антош, за старания.
Ответы: >>1116338
Аноним 2017/12/31 18:12:19  №1114539 389
С наступившим всех! Желаю всем за год, а то и за меньший срок перестать быть двачерами и стать мега-супер-залупер программистами Не мамкиными и быть конкурентно-способными.

Скидываю MY JAAAAM
https://youtu.be/dSLcZ4yR-Ck?t=34m55s
https://youtu.be/dSLcZ4yR-Ck?t=36m10s
https://youtu.be/fkYIAdJvP5Q?t=38m45s
https://soundcloud.com/rootkitmusic/rootkit-good-2-go-feat-tylor-maurer
https://soundcloud.com/thisisechelon/ghastly-goldplate-dogs-in-the-house
https://soundcloud.com/mustdiemusic/hellcat-habstrakt-remix
https://soundcloud.com/jadebluemusic/bodyrox-ft-luciana-yeah-yeah-jade-blue-bootleg
Тут почти моя сокровищница, на следующий год еще раскрою. Но только избранный найдет путь дальше.
Аноним 2017/12/31 18:16:15  №1114540 390
Тут разговор про Си пошел смотрю. Но по факту - Если вы знаете Английский, да так что аж на C2 уровне, то естественно у вас есть доступ к стандартам, а это огромная сила, могущество.
Если знаете английский - Выучите все остальные языки без проблем и станете полиглотом.
Знаете Си - Знаете все языки программирования.
Ответы: >>1114549 >>1114550
Аноним 2017/12/31 18:41:13  №1114547 391
>>1114494
выброси книги котерова, бро. мой тебе совет. это говно мамонта. читай нормальные книги по ооп-языкам (джаве, например), мануал php и реальный код (симфони, например). еще есть http://www.phptherightway.com/ для ознакомления с тем, что изменилось с 2008.

алсо, странно ты зырил "тенденции". пеар уже давно почил, а композер - "тенденция" уже шесть лет лол

(сорри за нотки иронии)
Ответы: >>1114554 >>1114557
Аноним 2017/12/31 18:46:26  №1114549 392
>>1114540
если ты так думаешь, то ты очевидно не знаешь английский и себя обманываешь типа "вот в этом главная проблема". узнаешь и поймешь, что надо сидеть на жопе и каждый язык учить минимум полгода, погружаясь в хаос новой инфы и чувствуя себя беспомощным и никчемным достаточно долго, прежде чем придет какая-то уверенность.

также очень спорная мысль, что зная процедурный низкоуровневый язык программирования, ты типа легко выучишь высокоуровневый ООП. ну хз. ты сам на каком уровне знаешь си? хорошо? а какие еще языки?
Ответы: >>1114556
Аноним 2017/12/31 18:51:01  №1114550 393
>>1114540
то есть, ты может и знаешь, я хз. я вот знаю и просто читаю инфу на английском. не представляю, как можно быть программистом и не знать английский, а ждать, пока кто-то соизволит перевести. никакой супер форы это не дает, скорее я просто (как и многие тут) имею доступ к той инфе, которая открыта для всего мира (американцев, европейцев, индусов). а ведь по двум из трех самых популярных фреймворков на php даже нет русской документации.

но вот почему знание английского равно знанию всех остальных языков?
Аноним 2017/12/31 19:06:45  №1114554 394
>>1114547
Для меня это все стало открытием. Я понятия не имкл про пеар и композер. Я з говорю, брал нуленый цмс а ля DLE и к нему уже писали/искали плагины. Это сейчас composer init, composer install yoba-framework и у тебя почти готовый проект, осталось только пару зависимостей устранить и шаблон под себя в каком-нибудь css-шаблонизаторе переделать.
Ответы: >>1114568
Аноним 2017/12/31 19:09:39  №1114556 395
>>1114549
>если ты так думаешь, то ты очевидно не знаешь английский и себя обманываешь типа "вот в этом главная проблема".
Что? Знаю английский на уровне B2 и это за год с A2. Свободно читаю документацию, использую речь и понимаю диалоги. Пишу каждый день слова, заучиваю и все автоматизированно тащемта, даже грамматика.
>узнаешь и поймешь, что надо сидеть на жопе и каждый язык учить минимум полгода, погружаясь в хаос новой инфы и чувствуя себя беспомощным и никчемным достаточно долго, прежде чем придет какая-то уверенность.
Что? Ничего не понятно что ты пытаешься сказать, такое ощущение что ты проецируешь свои проблемы на меня, попытаюсь ответить. Ну во первых как человек который не говорил, что он ЗНАЕТ английский, а знает на уровне B2 отвечу, что язык не выучить НИКОГДА и НИКАКОЙ, это невозможно, можно выучить его составляющие и ими руководствоваться. (Английский кстати я подтянул только потому, что еще русский начал учить)
>также очень спорная мысль, что зная процедурный низкоуровневый язык программирования, ты типа легко выучишь высокоуровневый ООП.
Не знаю все учат без проблем и не жалуются, опять же как будто свои проблемы проецируешь или придумываешь там что-то, завязывай, тебе не знать что там у других людей.
>ты сам на каком уровне знаешь си? хорошо? а какие еще языки?
Не знаю критерии хорошего в Си, но думаю лапше-код избегаю. Другие языки: Паскаль, Фортран, Си/C++/C#, Java, LUa, Lisp, Go и все другие, ну еще Баш.
Сам Страуструп говорил, что без Си не понять С++, и в своей же книге пишет, что сначала нужно пройти курс Си, дабы понять содержимое, оно и верно, новичок не поймет С++ и зачем он, Си вообще должен быть базой после Фортрана или Паскаля.
>то есть, ты может и знаешь, я хз. я вот знаю и просто читаю инфу на английском. не представляю, как можно быть программистом и не знать английский, а ждать, пока кто-то соизволит перевести. никакой супер форы это не дает, скорее я просто (как и многие тут) имею доступ к той инфе, которая открыта для всего мира (американцев, европейцев, индусов). а ведь по двум из трех самых популярных фреймворков на php даже нет русской документации.
А еще переведенная информация передается не в том контексте в каком ее предоставляют и многие понятные места в русском переводе сложные в силу лексической аутентичности.
>но вот почему знание английского равно знанию всех остальных языков?
Английский язык состоит из Французского, Латинского, Греческого(Чуть-чуть), грамматические правила не имеют никаких исключений, есть единые правила, но например в одном языке, возьмем английский, есть отличные грамматические временные глаголы, сам язык аналитический и страдает дефицитом того, что есть в Русском синтетическом и замещает этот недостаток своими Tense глаголами. Т.е языковые отличия нулевые. Если есть опыт в освоении сути одного языка, то с каждым новым выученным языком все становится проще и проще, выучишь Латинский - Без проблем освоишь Испанский, или Английский, или Немецкий, или Французский. Т.е вся суть лежит в ядре.
Ответы: >>1114563
Аноним 2017/12/31 19:11:09  №1114557 396
>>1114547
У меня в электронном виде макулатуры по пограмированею отдельный внешний диск на 1 Тб, там асма до всяких бэйсиков... все в свое время пробовал изучать. Котеров и Симдянов мне по душе, стоит заметить, что их труд для уже представляющих что такое программирование. Стиль изложения сложноват, но это потому что книга не для новичков в программировании. В целом неплохая книга, объемная.

Я другие читал, в том числе от расмуса нашего лердорфа.
Ответы: >>1114568
Аноним 2017/12/31 19:22:23  №1114558 397
Аноним 2017/12/31 19:53:09  №1114563 398
>>1114556
>Паскаль, Фортран, Си/C++/C#, Java, LUa, Lisp
воу-воу, профессор, полехче

>Не знаю все учат без проблем и не жалуются, опять же как будто свои проблемы проецируешь или придумываешь там что-то, завязывай, тебе не знать что там у других людей.
у меня проблем нет, разве что с ленью.

вообще новые ЯП учат без проблем и без знания си, так-то. тем более современные бекенд-ООП-языки все похожи (сужу по php и java) и странно, если будут проблемы с выучиванием нового, если уже один знаешь.

так-то си - полезный язык. просто чем он тебе поможет выучить тот же php больше, чем другой яп - хз.

>Си вообще должен быть базой после Фортрана или Паскаля

нигде уже не используют паскаль как первый ЯП кроме кабинетов информатике в СНГ, т.к. учебные пособия от 1995 года лень переписывать. уже давно и в европе, и везде используют питон или джаву. про фортран я уж не буду говорить, это какие-то стереотипы из перестроечных НИИ.

в остальном мне ход твоей мысли понятен, но по мне так ты сильно теоретизируешь. чтобы выучить английский и испанский, никто не учит сначала латинский. все учат сразу то, что нужно, и нормально живут. также и с ЯП.
Ответы: >>1114576
Аноним 2017/12/31 19:59:37  №1114568 399
>>1114554
да, только проекты пропорционально усложнились и выросли в объеме по сравнению с тем, что было в ранние годы.

>>1114557
ну если нравится, то читай, но тогда еще рекомендую изучать реальный код - какие-то простые библиотеки можешь взять для контроля. потому что котеров на мой взгляд в развитии остановился на уровне 5.3 и того стиля, в котором писали тогда.

может ошибаюсь, давно не интересовался его литературой. если актуальные скинешь примеры его кода, будет интересно.
Ответы: >>1114579
Аноним 2017/12/31 20:06:46  №1114576 400
>>1114563
Не я ничего против современных языков не имею, это даже хорошо что преподают как базу их вместо Паскалей и Фортранов, я просто не знаю чему там сейчас учат. Но Питон правда уши за этот год прожужжал, неплохой язык если так посмотреть, интересные вещи выдает. Мне понравилось как с ним ботнет создали для Твиттера.
Ну и Латинский учить не надо, но как пример сойдет. Си это Латинский если подумать. Не обязателен, но без него трудно будет познавать другие языки, чем с ним, что наоборот.
Аноним 2017/12/31 20:21:33  №1114579 401
Ответы: >>1114606 >>1114607
Аноним 2017/12/31 21:13:22  №1114606 402
>>1114579
котеров видимо не в курсе, что такое PSR
https://github.com/igorsimdyanov/php7/blob/master/phpdocs/PHP7/Page.php

if(empty($picture)) mail($mail_to, $thm, $msg);
else send_mail($mail_to, $thm, $msg, $picture);
за такое бьют по рукам в конторах, где следят за качеством кода. к сожалению, видимо, котеров о существовании таких контор за 40 лет преподавательской деятельности пока не узнал.

https://github.com/igorsimdyanov/php7/blob/master/mail/handler.php
блин, ну книга по ПХП7, а пишет так, как на ПХП4 писали на моей первой работе. это просто полный пиздец. там в каждой строчке пиздец.

https://github.com/igorsimdyanov/php7/blob/master/exec/dead.php
он упоротый что ли ставить ?>

это я навскидку зашел в три разных файла, везде наплевательское отношение к коду. что можно было бы ожидать от фрилансера васи пупкина из урюпинска, но не от автора книг по ЯП. это все печально.

я прошу прощения, что так реагирую. на мой взгляд это шарлатанство, которое вредит людям, которые покупают его книги.

короче, если тебе нравится, то ты читай конечно, список тем вроде обширный. но учитывай, что писать код как он - не надо.
Ответы: >>1114616 >>1114636 >>1114640
Аноним 2017/12/31 21:17:06  №1114607 403
>>1114579
писать код как он - не надо, а так как программирование - это наука про код, лучше сожги это говно. больше приобретешь

это как учить детей русскому языку и самому на уроках употреблять слова типа "ложить" или "созвОнимся". невежество
Ответы: >>1114617
Аноним 2017/12/31 21:54:36  №1114616 404
>>1114606
Так это код, скорее всего, с 5.0/5.1 версии немного адаптированный местами под 7 версию. На то время это может норма была?

Мне как новичку в 2008 понравилась книга, хоть я её так до конца и не осилил. Ошибок там, кстати, хватало, у Котерова есть форум, где пишут про косяки, их там...

Я тебя услышал, анон. Советуй норм лит-ру for dummies beginners
Ответы: >>1114624
Аноним 2017/12/31 21:54:54  №1114617 405
Аноним 2017/12/31 22:30:43  №1114624 406
>>1114616
котеров пытается делать книги а-ля англоязычные по джаве и плюсам (например от герберта шилдта), но не хватает скиллов и желания что-то там изучать. подозреваю, что он последний реальный код писал на заре двухтысячных годов, а потом только учил людей.

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

есть учебник ОПа, но там совсем основы. также есть его паста на гитхабе (ссылки вверху темы). я еще рекомендую курсы от pr-of-it, у них есть три курса, внезапно php1, php2 и php3. там по качеству кода и по самой подаче материала все охуенно и хитро построено. если жалко денег, можешь качнуть с торрентов. я сам частично качал, а частично за бабло проходил.

https://github.com/jupeter/clean-code-php вот скорее не книга (очень уж урезана по сравнению с оригиналом), а портированный с джавы сборник best practices, тоже полезно посмотреть.
Ответы: >>1114627 >>1114632
Аноним 2017/12/31 22:46:57  №1114627 407
>>1114624
Спасибо, ещё раз. Не знаю на какой хуй ты на меня воемя тратишь, но тем не менее спачибо. Почитаю.
Аноним 2018/01/01 00:29:53  №1114632 408
>>1114624
Чем именно тебя Котеров не устраивает. Читал его последнюю. По моему вполне себе вышло неплохо.
Ответы: >>1114636
Аноним 2018/01/01 00:48:44  №1114636 409
>>1114632
братюнь, вот тут >>1114606 примерно ответил. если в последней книге ситуация поменялась, скинь примеры кода, обсудим и сравним с тем, что было раньше (на примере https://github.com/igorsimdyanov/php7)
Аноним 2018/01/01 00:58:12  №1114640 410
>>1114606
Какая-то критика уровня батхёрта. За что бьют по рукам. Где конкретно неправильно? А как надо было?
>там в каждой строчке пиздец.
Что конкретно не так? Опять не объяснил.
>он упоротый что ли ставить ?>
В чём неправота то? Так можно делать. Или объясни почему ты считаешь это неправильным?
Я не защищаю Котерова, но такая критика - это просто размещение ссылок на гитхаб и "Фу пидор , код говно." Как-то хочется из треда научиться как кодировать стоит а как нет. А в итоге после таких комментариев сидишь в шоке и думаешь "А что конкретно то не так?"
И да, я понимаю что мб ты работешь в теме лет 10 и для тебя всё очевидно. Но для новичка типа меня нет.
Ответы: >>1114646 >>1114649
Аноним 2018/01/01 01:45:40  №1114646 411
>>1114640
я не 10 лет работаю, но не надо работать 10 лет, чтобы понимать как следовать стандартам.

давай по пунктам, которые есть
1. есть такая штука http://www.php-fig.org/psr/psr-2/ это разработчики языка и некоторых важных вещей в нем (например, популярных фреймворков) собираются и обсуждают гайдлайны, по которым хорошо бы писать код, чтобы каждый не выдумывал свои стили, отступы и прочее. котеров на эти гайдлайны кладет болт https://github.com/igorsimdyanov/php7/blob/master/phpdocs/PHP7/Page.php
посмотри сам и сравни с примером кода
2. у котерова
if(empty($picture)) mail($mail_to, $thm, $msg);
else send_mail($mail_to, $thm, $msg, $picture);

надо
if (empty($picture)) {
mail($mail_to, $thm, $msg);
} else {
send_mail($mail_to, $thm, $msg, $picture);
}

в отличие от js, в пхп для читаемости и очевидности пишут фигурные скобки ВСЕГДА.

3. ставить закрывающий тег в файле, который содержит только php-код (без html), не нужно, т.к. это может привести к появлению лишних пробелов при выполнении и к ошибке во всяких конструкциях include, require, работе с буфером и некоторых других функциях. поэтому его не используют - чтобы не объебаться. котеров на это кладет хуй, т.к. не видел реальный код.

4. по поводу пиздеца в каждой строке, я конечно не буду комментировать каждую строку, но навскидку

> if (!preg_match($pattern, $_POST['mail_to'])) {
exit("Введите адрес в виде somebody@server.com");
}
видимо, автор книг по php не слышал про исключения.

> $_POST['mail_subject'] =
>htmlspecialchars(stripslashes($_POST['mail_subject']));
зачем это на разных сточках?

> $_POST['mail_msg'] =
>htmlspecialchars(stripslashes($_POST['mail_msg']));
> $msg = $_POST['mail_msg'];

я может чего-то не понимаю, но почему не сделать $msg = htmlspecialchars ... ?

> if (!$fp) {
> print "Файл $path не может быть прочитан";
> exit();
> }

почему выше написано exit("Введите адрес в виде somebody@server.com") а тут сначала print, а потом exit без сообщения?

> if(empty($_POST['mail_to'])) exit("Введите адрес получателя");
> if (!empty($_FILES['mail_file']['tmp_name'])) {
> if(!mail($to, $thm, $multipart, $headers))
> {

чем обсуловлено то, что в каждой строчке по-разному написано?

короче и так далее. там много всего. самый главный косяк в файле - это то, что все сделано в стиле "простыня кода", т.е. если функция выполнилась (не вернув нихуя), то идем дальше на header. это полное говно, так в реальности делать нельзя из-за того, что ты такой код будешь отлаживать в 10 раз дольше.

и по другим файлам я не смотрел, просто чувак живет в каком-то параллельном мире, где все пишут код на 486-х и выходят в интернет по модему. мне немного обидно за всю ситуацию, т.к. он позволяет себе учить новичков и берет за это деньги. а новички потом такие "оп, заебись!", и идут работать в битрикс за копейки на всю жизнь, хороня свою карьеру php программиста лол
Ответы: >>1114647 >>1116337
Аноним 2018/01/01 01:49:56  №1114647 412
>>1114646
Спасибо анон, теперь я всё понял. Ты няша.
Ответы: >>1114650
Аноним 2018/01/01 01:55:32  №1114649 413
>>1114640
алсо, чем плоха простыня кода

согласно PSR-1:
>Files SHOULD either declare symbols (classes, functions, constants, etc.) or cause side-effects (e.g. generate output, change .ini settings, etc.) but SHOULD NOT do both.

там же в одном файле и функция, и объявление переменных, и выходы с сообщениями, и редирект.

если мы представим, что нам запрещено использовать ООП (в учебных целях), то должно быть так: в одном месте все функции, которые выполняют нужные вещи (каждая свой маленький кусок) и возвращают какое-то булево значение. в другом у нас что-то типа контроллера - там мы эти функции вызываем и задаем условия

if (!sendMail($params)) {
throw new Exception(...);
} else {
redirect($address);
}
Аноним 2018/01/01 01:55:52  №1114650 414
Аноним 2018/01/01 17:06:15  №1114711 415
Как в Апаче настроить отдельный сайт?

В PHP делал так:

>C:\prоject\public>php -S 127.0.0.1:9001 rоuter.php

>C:\anоther-prоject\public>php -S 127.0.0.1:9002 rоuter.php

и хорошо. А теперь понадобился PDО, но он требует какой-то драйвер:

>PDOException: could not find driver

Поставил Апач, майэскуэль. Настроил. Если все кинуть в htdоcs (она вроде как корень?), лезут одни фатальные ошибки класс куд нот би лоадед и т.п. Бился, бился с путями, так ничего не заработало.

Как сделать чтобы как в PHP: прописал паблик папку, роутер и все работает?
Ответы: >>1114716 >>1114832 >>1116336
Аноним 2018/01/01 17:29:37  №1114716 416
>>1114711
В php.ini удалить ; перед строкой extension=php_pdo_mysql.dll
Ответы: >>1114717
Аноним 2018/01/01 17:34:09  №1114717 417
>>1114716
О! Заработало в PHP!

А что по Апачу? Или он устарел и не стоит в нем разбираться?
Ответы: >>1114718 >>1114723 >>1115175
Аноним 2018/01/01 17:36:06  №1114718 418
>>1114717
если задаешь такой вопрос, то да, лучше nginx поставь. там намного гибче можно настраивать конфиги, разные версии пхп для разных сайтов, регулярки в путях папок и прочие радости.
Ответы: >>1114721
Аноним 2018/01/01 17:49:22  №1114721 419
>>1114718
Хорошо, попробую его, спасибо!
Аноним 2018/01/01 18:03:41  №1114723 420
>>1114717
Апач не устарел. Подключай РНР к апачу и создавай виртуальные хосты для своих сайтов.

на мой взгляд, тебе лучше взять lamp/denwer и не засирать ветку своими сообщениями
Ответы: >>1114742
Аноним 2018/01/01 18:35:01  №1114726 421
fat free vs slim. Что лучше? Почему первый практически не используется, а второй щас в тренде?
Ответы: >>1114728
Аноним 2018/01/01 18:43:33  №1114728 422
>>1114726
Почему joomla говно, а wordpress тоже говно, но в тренде?
Ответы: >>1114729 >>1114828
Аноним 2018/01/01 18:48:31  №1114729 423
>>1114728
ну я посмотрю ты философ дохуя, а мне интересно что выбрать для разработки, потому что индустрия развивается быстрее, чем я успеваю за ней следить
Ответы: >>1114734
Аноним 2018/01/01 19:06:23  №1114734 424
>>1114729
Изучай перманентно все что в тренде. Либо работай со студией какой-нибудь, которая пилит сайты на своем движке. Ларавел или зенд в штатах в почете. Слим/берд/вордпресс для одностраничников. Никоо всерьез на этой залупе не работает. Будешь до конца дней своих хеллоу ворлды писать на этиц фреймворках.
Ответы: >>1114741
Аноним 2018/01/01 19:30:07  №1114741 425
>>1114734
мне для своих проектов надо, а не на дядю. расклад такой, что для крупного проекта я бы выбрал Ларавел, даже несмотря на то, что он тормозной, но я такие проекты не разрабатываю. чаще это одностраничники, где даже не всегда авторизация есть, но нужны всякие плюшки типа мультиязычности, поэтому совсем уже деревянные фрейморки не подходят. вот и выбираю.
Ответы: >>1114743
Аноним 2018/01/01 19:30:09  №1114742 426
https://habrahabr.ru/post/267721/ сравнение апача и нжинкса. также стоит учитывать, что статье больше двух лет, сейчас на новых больших проектах никто апач не использует.

>>1114723
какой нахуй денвер? он с 5.3 не обновляется. 5.3 вышел в 2011 году, кажется. на мой взгляд, не надо давать плохие советы
Ответы: >>1114744
Аноним 2018/01/01 19:35:28  №1114743 427
>>1114741
> Одностраничники
> без авторизации
> не на дядю
> мультиязычность, тормоза и т.п.

Ахахаххахахаха спешите видеть кретина итт. Набигаем ололо гнобим и гоним отсюда сраными тряпками.

Дебил или изучай езык погромирования хтмл5, джейси и цэсэс в придачу. Клоун ебаный. Сажи тебе уебку.
Ответы: >>1114745
Аноним 2018/01/01 19:35:59  №1114744 428
>>1114742
Я в душе не ебу в какой там стадии денвер, ибо не юзаю.
Ответы: >>1114748
Аноним 2018/01/01 19:40:11  №1114745 429
>>1114743
этот петушок порвался, выносите его из треда
Аноним 2018/01/01 19:55:12  №1114748 430
>>1114744
а зачем тогда советовать
Ответы: >>1114749
Аноним 2018/01/01 19:58:38  №1114749 431
>>1114748
Я же не знаю какую именно версию пхп учит вопрошающий. Может ему и денвера за глаза хватит. Ну и потом, я же приоритеты расставил на первом месте ламп, чо доебался то до меня?
Ответы: >>1114750
Аноним 2018/01/01 20:05:40  №1114750 432
>>1114749
чтобы придать огласке уебищность денвера, конечно же.

алсо, у денвера есть современный аналог для винды - open server. там пхп вплоть до 7.2 и на выбор нжинкс с апачем. кому лень ставить по-взрослому на линуксе, можно использовать его.
Ответы: >>1114753
Аноним 2018/01/01 20:16:36  №1114753 433
Аноним 2018/01/01 22:49:04  №1114790 434
>>1113402
Ну вот смотри. На дваче, если выложить картинку, то текст будет с боку. Без редактирования картинка просто находится в строке и распидорашивает её. Мне нужно чтоб в одном случае картинка была справа как на вики и в другом случае слева как на дваче.
Ответы: >>1115182 >>1116337
Аноним 2018/01/01 23:02:04  №1114792 435
Как жить, если идея, казавшаяся тебе супер-крутой, уже реализована каким-то фреймворком. Конечно, можно использовать его, но как же досада?
Ответы: >>1114809
Аноним 2018/01/01 23:46:22  №1114809 436
>>1114792
Хитро усмехнуться, погуглить чем их реализация кого-то не устраивает и сделать лучше.
Ответы: >>1114831
Аноним 2018/01/01 23:56:08  №1114811 437
Блин, ничего не понимаю в ассоциативных массивах. Как их распарсивать то?
Ладно когда есть один ассоциативный, а когда он многомерный, ещё и вместо индексов имена? Как рогом упёрся и нифига понять не могу.
Какие-то => появляются, а как они работают я понять не могу. Я ведь по обе стороны => вообще любую переменную пишу. Прямо голова взрывается.
Ответы: >>1114812 >>1114813 >>1116337
Аноним 2018/01/01 23:59:44  №1114812 438
>>1114811
что значит "как распарсивать"? в чем проблема-то?
напиши конкретную задачу, что тебе надо с ним сделать.
Ответы: >>1114826
Аноним 2018/01/02 00:00:14  №1114813 439
>>1114811
На самом деле это просто переменные с индексом-переменной.
Аноним 2018/01/02 00:47:37  №1114826 440
>>1114812
https://ideone.com/qdHhd0

Ну вот я накидал пример.
И если обработать какой-нибудь одномерный массив просто. Но например из многомерного массива $cars вывести просто имена фирм, например "Nissan" оказалось довольно сложно. Думал над этим часа два наверное. А когда в итоге написал, то понял что скорее методом тыка получилось. И вообще не понимаю как это работает.
Например почему $key распарсивается в итоге на $params и $value? Как он узнаёт что там правильные данные? Какая-то каша в голове от этого. А если например там виесто одного из параметров - массив вложенный?
Ответы: >>1114833 >>1114834 >>1115036
Аноним 2018/01/02 00:49:29  №1114828 441
>>1114728
Потому-что Wordpress выглядит няшно и имеет адекватный интерфейс.
Аноним 2018/01/02 00:55:49  №1114831 442
>>1114809
Так появилась Mongo в своё время.
Аноним 2018/01/02 00:58:07  №1114832 443
>>1114711
Что-то каша какая-то. У тебя ошибки сыпятся
>лезут одни фатальные ошибки класс куд нот би лоадед и т.п. Бился, бился с путями, так ничего не заработало.
А ты уже в PDO полез. Для начала настрой и выведи хотя-бы helloworld. А лучше просто поставь OpenServer. А уже потом к базе подрубайся.
Ответы: >>1114836
Аноним 2018/01/02 01:09:24  №1114833 444
15148445646620.jpg (66, 728x728)
728x728
>>1114826
>там виесто одного из параметров - массив вложенный

А читал ли ты документацию, дружок?

http://php.net/manual/ru/language.types.array.php
>key может быть либо типа integer, либо типа string. value может быть любого типа.

>Массивы (тип array) и объекты (тип object) не могут использоваться в качестве ключей. При подобном использовании будет генерироваться предупреждение: Недопустимый тип смещения (Illegal offset type).

На твоем примере https://ideone.com/7RmzCn
Ответы: >>1114835 >>1114843
Аноним 2018/01/02 01:18:14  №1114834 445
>>1114826
во-первых, посмотри этот пример: https://secure.php.net/manual/ru/function.array-search.php#116635

он показывает, как использовать функцию array_column() в многомерном массиве. ты можешь ее использовать в своей задаче.

также у тебя путаница с названием переменных внутри foreach. там всегда пишут конструкцию $array as $key => $value; в каждом элементе массива $array есть ключ и значение.
>key может быть либо типа integer, либо типа string. value может быть любого типа.
https://secure.php.net/manual/ru/language.types.array.php

то есть, может быть строка, массив, объект или ресурс в качестве значения для ключа.

как он узнает что там правильные значения? ну это задача интерпретатора, можешь посмотреть сишные исходники php и сам выяснить. я не смотрел, как именно это реализовано.
Ответы: >>1114843
Аноним 2018/01/02 01:18:50  №1114835 446
>>1114833
о, братюнь, опередил меня с цитаткой из мануала
Аноним 2018/01/02 01:19:10  №1114836 447
>>1114832
Я ж говорю, настроил, ит воркс. Даже PHP подрубил, если смотреть из локалхоста, работает. Но если раньше у меня на каждый урок своя папка была и один вендор на все проект на уровень выше, композером хуяк хуяк зависимости, в цмд одной строчкой запустил урок — холосо! а тут одна папка эштидокс, как мне блджажд разграничить уроки, если он не видит больше мой вендор?
Ответы: >>1114837 >>1116336
Аноним 2018/01/02 01:21:16  №1114837 448
>>1114836
В папке htdocs создай папку "mypornsite.com".
Профит.
Ответы: >>1114840
Аноним 2018/01/02 01:37:13  №1114840 449
15148462339990.jpg (18, 402x223)
223x402
>>1114837
Ну я понял твою мсль, но...
Ответы: >>1116336
Аноним 2018/01/02 01:47:24  №1114843 450
>>1114833
>>1114834
Как всегда помог разобраться. Как же хорошо что ты есть. Спасибо тебе анон.
Аноним 2018/01/02 01:57:47  №1114847 451
Простенькая задачка. Хочу снизить количество запросов к API и увеличить скорость загрузки и отображения данных на моём сервере. API генерит данные в зависимости от запроса и данные поступают почти что всегда разные. Параметры запроса передаются в URL при обращении к API.

Придумал алгоритм. Беру URL, делаю запрос, получаю данные. Далее, беру только что использованный URL и получаю из него MD5 хэш, использую его в качестве ключа, под которым положу только что полученные данные в memcached. При следующем запросе получаю MD5 хэш из ссылки и спрашиваю memcached, лежит ли в нём что-то под этим ключом. Если да, беру данные из memcached и возвращаю на клиент.

Норм алгоритм? Почему-то меня преследует мысль,
что можно сделать намного проще, но я тупой(
Ответы: >>1114852 >>1114866 >>1116336
Аноним 2018/01/02 02:14:16  №1114852 452
>>1114847
Спиздил и запатентовал твою идею. Единственный вопрос, может ли переполниться memcached? Не, серьезно, идея годная, нужно попробовать.
Ответы: >>1114854
Аноним 2018/01/02 02:20:52  №1114854 453
>>1114852
>может ли переполниться memcached?
Ну я не планирую класть что-то в memcached навсегда. У API есть эндпоинт, позволяющий по IP-адресу клиента определить его город, страну и координаты города. Эти данные я могу положить к кэш на месяц, например. Есть эндпоинт, позволяющий получить среднюю цену на билет из %город_нейм% в %город_нейм% на текущий месяц. Эти данные я планирую класть в кэш на 24 часа. Пока пользователь будет лазить по сайту и периодически запрашивать эти данные, ему они будут отдаваться из кэша. Если цена спустя сутки изменится, то зайдя на сайт повторно клиент уже увидит новые данные, которые сразу же будут опять закэшированы на 24 часа. Щас напишу, кароч.
Ответы: >>1114862 >>1114869 >>1116336
Аноним 2018/01/02 02:37:32  №1114859 454
Насколько реально джуну вкатититься и устроиться на работу программируя симфони, ларавел?
Ответы: >>1114867 >>1115174
Аноним 2018/01/02 02:52:16  №1114862 455
Аноним 2018/01/02 03:14:45  №1114866 456
>>1114847
... В итоге и тебя 9000 ключей, по которым 9000гигов закешированных данных лежит?
Ответы: >>1114871
Аноним 2018/01/02 03:15:58  №1114867 457
>>1114859
Примерно на 78.675% реально. Задавай пожалуйста более конкретные вопросы.
Аноним 2018/01/02 03:17:12  №1114869 458
>>1114854
Чот хрень. А если данные изменились за час? На кой там кешированные данные?
Ответы: >>1114871
Аноним 2018/01/02 03:29:50  №1114871 459
>>1114869
Актуальность некоторых данных не критична. К тому же, я более чем уверен, что API тоже не проводит ежеминутную проверку актуальности данных и тоже отдаёт мне их из кэша. Свой же кэш я пишу только для того, чтобы ускорить загрузку некоторых страниц и как можно скорее отдать пользователю контент. Это важно. Например, есть отрывочек кода, где мне нужно получить данные на год вперёд по каждому месяцу, но API разрешает мне за раз взять данные только за один месяц. на таких страницах колесо загрузки крутится по 2-3 секунды Приходится в цикле отправлять 12 запросов. Чтобы избежать этой бомбёжки API и не получить пизды от моих партнёров, предоставивших доступ к API я и пишу кэш.

>>1114866
Ну, сомневаюсь, что там прям так дохуя это всё будет весить. Буду следить за размером кэша. Вдруг что - у моего хостера дополнительный SSD-диск на 50GB стоит 7$.
Ответы: >>1114875
Аноним 2018/01/02 04:19:01  №1114875 460
>>1114871
>Буду следить за размером кэша. Вдруг что - у моего хостера дополнительный SSD-диск на 50GB стоит 7$.
А, я еблан. Memcached же в оперативку всё складывает.
Ответы: >>1114878
Аноним 2018/01/02 04:50:41  №1114878 461
Аноним 2018/01/02 18:12:28  №1115021 462
Как проверить ассоциативный массив имеют ли все его элементы значение null или нет?
Ответы: >>1115024 >>1115036 >>1115040
Аноним 2018/01/02 18:27:07  №1115024 463
Ответы: >>1115054 >>1115202
Аноним 2018/01/02 19:14:09  №1115036 464
>>1115021
как бы в пхп вообще поебать, ассоциативный массив или нет. ты почему-то к этому привязываешься (если ты >>1114826 анон), мол ассоциативные массивы - это принципиально что-то другое. а нихуя, у них просто в качестве индекса буковки, а не циферки
Ответы: >>1115054 >>1115171
Аноним 2018/01/02 19:21:26  №1115040 465
>>1115021

function isArrayEmpty(array $data): bool
{
foreach ($data as $value) {
if (is_null($value)) {
return false;
}
}
return true;
}
Аноним 2018/01/02 19:26:47  №1115042 466
>>1115040
Что это у нас тут?

Г О В Н О К О Д
О
В
Н
О
К
О
Д

Ответы: >>1115065 >>1115067
Аноним 2018/01/02 20:04:42  №1115054 467
>>1115024
>>1115036
>>1115040
Я сделал так: if (in_array(!null, $array)) {
...} Это говнокод?
У меня от валидатора приходит ассоциативный массив с ошибками. Нужно чекнуть если он пустой, то тогда добавляем данные в БД.
Ответы: >>1115202 >>1116336
Аноним 2018/01/02 20:37:31  №1115065 468
>>1115042
ну предложи свой вариант
Ответы: >>1115119
Аноним 2018/01/02 20:43:25  №1115067 469
>>1115042
Аргументируй, а то несерьезно как-то.
Ответы: >>1115119
Аноним 2018/01/03 00:23:29  №1115119 470
>>1115065
>>1115067
Вам разрабы пыхи дали in_array, array_filter и array_walk. Вы же пишите свой говнокод велосипед.

Мне не хочется давать рабочий пример, я вам указал путь. Считайте удочку дал, а уж рыбку съесть или на хуй сесть это уже вы как нибудь сами.
Ответы: >>1115121 >>1115148 >>1116335
Аноним 2018/01/03 00:32:45  №1115121 471
>>1115119
Ебет, зашёл в тред по пыхе, а тут злой дядя
Ответы: >>1115123
Аноним 2018/01/03 00:40:48  №1115122 472
Сколько в среднем времени потребуется для изучения PHP? Немного знаю C# на базовом уровне.
Ответы: >>1115124 >>1115154 >>1116335
Аноним 2018/01/03 00:44:47  №1115123 473
>>1115121
Злой пиздец. Была бы возможность, я бы прутом вам по рукам бил за говнокод ведосипедостроительство. Есть же дока, изучайте. Нет блядь, my way... и пусть весь мир подождёт. Поверьте, ваш максимум в программировании на рнр — использование готового кода, функций, который был написан, когда вы представляли из себя семенную субстанцию в тестикулах ваших прородителей.

Вам надо просто взять готовую функцию из стандартной либы рнр и передать ей свои значения.

Всё.

На этом все ваше программирование и закончилось.
Аноним 2018/01/03 00:46:56  №1115124 474
>>1115122
От недели до бесконечности. Зависит от того, как ты будешь подходить к процессу. Что именно ты хочешь писать.

Сам язык прост. Сложнее вникать в фреймворки, шаблонизаторы и ООП. Но это практически идентичные базовые вещи для любого ЯП.
Аноним 2018/01/03 01:01:35  №1115128 475
>>1115123
А я бы дал тебе отхлестать себя прутом.
Ответы: >>1115130
Аноним 2018/01/03 01:02:32  №1115129 476
>>1115123
Это не на меня ори, я не имею к челу выше отношения, я лишь зашёл в тред помочь, а тут злые
Аноним 2018/01/03 01:03:05  №1115130 477
>>1115128
Ты доску перепутал, козлик.
Аноним 2018/01/03 01:03:51  №1115132 478
>>1115040
пых это си от веба, жаль парней, чо уж, я тоже с пыха начинал когда-то
Ответы: >>1115136
Аноним 2018/01/03 01:11:19  №1115136 479
>>1115132
Пых хорош тем, что он многогранен. Не так как низкоуровневые ЯПы, но, например, я себе несколько скриптов написал а ля телефонная книна и напоминалка и запускаю все в терминале. Можно было бы на Си писать, но заняло гораздо больше времени.

А тут тебе и работа с субд, и никакой компиляции и синтаксис как у си... короче плюсов хватает.

Имхо, не самый плохой вариант для вкатывания в программирование.
Аноним 2018/01/03 02:02:06  №1115147 480
Доброго времени суток, анон. Пишет тебе веб-макака, писатель кода пальцами на php. Опыт работы на данный момент около 8 месяцев в офисе, честно говоря - говнокожу и ничего более, шаражкина конторка с плохо налаженными процессами.
Довольно много приходится писать и на js, я стараюсь не быть идиотом и изучать инструмент хорошо. С недавних пор вообще загорелся мечтой укатиться в светлые дали js разработки, а конкретно - в Ангуляр.
И вот пришел спросить у вас совета, если найдутся люди шарящие. Я выполнил на сайте ангуляра туториал (tour of heroes), что бы вы дальше мне посоветовали, какие шаги предпринять?
Ответы: >>1116335
Аноним 2018/01/03 02:04:07  №1115148 481
>>1115119
во-первых, отложи свое высокомерие.

во-вторых, почитай, что такое lazy loading. если массив состоит из миллиона элементов, а надо отловить только первое не-null значение, то моя функция завершится при нем же и не будет перебирать остальные элементы. а данные тобой функции не остановятся там, где нужно - ресурсоемко получается. в итоге ты либо невнимательно прочитал задачу, либо не знаешь основ.
Ответы: >>1115155 >>1115173 >>1116335
Аноним 2018/01/03 02:11:30  №1115149 482
>>1115123
ты судя по манере речи и ценности твоих "советов" никакой не опытный, а банально петушок, рисующийся перед анонами. я опытных знаю, они отвечают нормально и по существу, а не "дают удочки". при реальном общении со мной ты бы свою удочку (или прут, что там у тебя в фантазиях) засунул себе в жопу, поверь
Ответы: >>1115155
Аноним 2018/01/03 02:21:45  №1115154 483
>>1115122
да, тема в том (наверняка сам знаешь, если писал на шарпе, но все же), что в программировании тебе платят не за то, что ты знаешь язык, а за то, что ты знаешь, что на нем написано (фреймворки, реальные проекты).

то есть по аналогии с языками, программист - это не чувак, который знает итальянский, а который знает итальянскую прозу и пишет ее сам.

пхп простой, но после других языков немного ломающий мозг. если заебись знаешь шарп и писал реальные проекты, знаешь все смежное говно (sql, git и прочее), то месяц на сам язык (плотненько) и еще месяц на фреймворк, на котором хочешь работать.
Аноним 2018/01/03 02:23:26  №1115155 484
>>1115148
Во-первых, не указывай как с вами себя вести
Во-вторых, про lazy loading мне можешь не рассказывать.
В-третьих, если у тебя массив ищ миллиона значений, то ты удостоен медали — говнокодер -2018. Твое место в шапке треда с подписью:
не будь как он.

>>1115149
Давай фейкопочту, я тебе предоставлю ирл шанс.
Ответы: >>1115247
Аноним 2018/01/03 04:45:55  №1115170 485
>>1115040
>Доходишь такой до изучения массивов.
>Развитие тебя как программиста останавливается.
>Надо передать данные - В МАССИВ
>Надо обработать - В МАССИВ
>Надо создать ряд элементов - В МАССИВ
>Надо вытереть задницу - МАССИВ
>Надо выйти из-за компа и пойти в магазин покушать купить - МАССИВ
У меня от таких программистов бомбит почему-то. Ещё со времён когда 5 лет назад Java изучал. Там это вообще поголовная болезнь терминальной стадии. Доходит до того, что они не понимают как задачу решать не через массив.
Ответы: >>1115247 >>1116335
Аноним 2018/01/03 04:56:45  №1115171 486
>>1115036
Что то какой-то бред. Там методы обработки разные. Смотри код.
Аноним 2018/01/03 07:17:43  №1115173 487
>>1115148
Читайте пожалуйста анализ алгоритмов в худшем случае оно закончится за N операций где N и есть кол-во элементов массива и другого решения этой задачи нет.

Но другой вопрос что ты миллионы данных обрабатываешь массивами, аноны беспокоятся, неужели нельзя использовать базы?
Аноним 2018/01/03 07:25:46  №1115174 488
>>1114859
Джуны это не про фреймворки, джуны это про отсутсвие опыта, первое что надо выкинуть из головы джуну это привязываение к фреймворкам, будь готов за короткое время выучить любую хуйню и разобраться в чем угодно
Аноним 2018/01/03 07:27:41  №1115175 489
>>1114717
С апачом разбирайся,ровно столько чтобы поднять локальное окружение, а вообще все суровые сайты используют нжынкс в него можешь углубиться по самые гланды, лишним точно не будет.
Ответы: >>1115184 >>1115259 >>1115337
Аноним 2018/01/03 08:24:07  №1115182 490
>>1114790
У тебя с флоу проблемы?
Ответы: >>1115216
Аноним 2018/01/03 09:09:15  №1115184 491
>>1115175
Кому кроме васянов из колхозов в 2018 приходится nginx настраивать? Обычно всё навтраивает за тебя админ или хостер.
Ответы: >>1115186 >>1115249 >>1115257
Аноним 2018/01/03 09:28:49  №1115186 492
>>1115184
ну когда у тебя наступит такой момент когда тебе например какое то особенное кэширование надо на энжинксе настроить или какой то редирект интересный сделать так станет ясно кому оно надо, а так хорошо что тебе его настраивать не приходится, но понимать что там к чему крайне полезно.
Ответы: >>1115187
Аноним 2018/01/03 09:41:41  №1115187 493
>>1115186
> особенное кэширование надо на энжинксе настроить
Делается либо через ТП провайдера, либо через предоставленную веб морду.
>или какой то редирект интересный сделать
Что значит реддирект интересный сделать? Берёшь и делаешь. Можно даже не ковырять Nginx а тупо в PHP прописать или в JS.
>понимать что там к чему крайне полезно.
Ага, мне это уже лет 10 говорят. Надо ли говорить что за 10 лет я настраивал апач 1 раз, когда начинал PHP учить. Больше никогда к нему не прикасался.
Ответы: >>1116334
Аноним 2018/01/03 10:14:17  №1115196 494
>>1109863 (OP)
Решил хотя бы попытаться вкатиться к вам. И черт возьми "http://archive-ipq-co.narod.ru/" это веселая хуйня, анонасы которые это делали вы ахуенные. Хоть и амублядки
Ответы: >>1115198 >>1116334
Аноним 2018/01/03 10:19:07  №1115198 495
15149639475920.jpg (25, 400x400)
400x400
Ответы: >>1115202
Аноним 2018/01/03 10:25:07  №1115202 496
Вы тут ругаетесь по поводу функции проверки массива на наличие null элементов, но почему-то никто не обратил внимания, что автор вопроса явно неправильно работает с ошибками валидации.

>>1115054
>У меня от валидатора приходит ассоциативный массив с ошибками. Нужно чекнуть если он пустой, то тогда добавляем данные в БД.

Вот эта проблема. Валидатор должен возвращать массив с ошибками, а не массив со всеми ключами. Тогда и не нужно обходить весь этот массив и проверять null'-ы, достаточно будет проверки:
$errors = $validator->validate($entity);

if (count($errors)) {
// вернуть пользователю ошибки
} else {
// сохранить сущность
}

Так например сделано в Symfony:
- http://symfony.com/doc/current/validation.html#using-the-validator-service

>>1115024
array_map это о том, как преобразовать один список в другой, применяя к каждому из элементов функцию-преобразователь. Количество элементов на входе будет равно количеству элементов на выходе: https://ru.wikipedia.org/wiki/Map

>>1115198
Тут не чатик, к чему этот пост?
Ответы: >>1115203 >>1115376 >>1116334
Аноним 2018/01/03 10:27:52  №1115203 497
>>1115202
К чему оскорбления в мой адрес на ровном месте?
Ответы: >>1115240
Аноним 2018/01/03 11:44:15  №1115216 498
>>1115182
Я пока учусь, стараюсь всё делать руками.
Ответы: >>1115236
Аноним 2018/01/03 12:57:32  №1115236 499
>>1115216
Float и есть руки. Я не понял в чем проблема, что ты хочешь? Если хочешь сделать так чтобы в одном случае картинка была справа, в другом была слева просто создай 2 класса.
Ответы: >>1115242
Аноним 2018/01/03 13:03:07  №1115237 500
Не советую больше использовать Float, он - Всё.
Аноним 2018/01/03 13:03:58  №1115240 501
>>1115203
Бля а ты веселый паря как я погляжу.
Аноним 2018/01/03 13:06:22  №1115242 502
>>1115236
Я вообще не могу так сделать.
Ответы: >>1115250
Аноним 2018/01/03 13:16:48  №1115247 503
>>1115155
чтобы выдавать медали, нужен авторитет. у тебя его нет. я не знаю сколько элементов в массиве, этого нет в условиях задачи, может 10, а может 100000. а ты начинаешь оправдываться "неправильни массив кококо"
>>1115170
> еще со времен когда 50 лет назад был гендиром в майкрософте
иди выебывайся в перезвоним-тред, пожалуйста
Ответы: >>1115248
Аноним 2018/01/03 13:17:57  №1115248 504
>>1115247
Я всегда думал что медали для долбоебов.
Аноним 2018/01/03 13:18:59  №1115249 505
>>1115184
>васянов из колхозов
>хостер
лол, крутой парень на шаред хостинге
Ответы: >>1115251
Аноним 2018/01/03 13:19:44  №1115250 506
Ответы: >>1115267
Аноним 2018/01/03 13:20:01  №1115251 507
>>1115249
ты наверное когда у тебя сайт ломается, пишешь хостеру "кококо, товарищ хостер, у меня НЕ РАБОТАЕТ, почините срочно кококо!"
Ответы: >>1115257 >>1115386
Аноним 2018/01/03 13:20:58  №1115252 508
Ебать петушинный бой в ПХП ТРЭДЭ! ВОЗЬМУ ПОПКОРМ
Ответы: >>1115273
Аноним 2018/01/03 13:23:24  №1115257 509
Ответы: >>1115386
Аноним 2018/01/03 13:24:35  №1115259 510
>>1115175
>а вообще все суровые сайты используют нжынкс
Nginx в паре с апачем чаще всего работает как прокси, отдает статику сам, а другие запросы передает апачу.
Так что и то, и другое надо уметь настраивать.
Ответы: >>1115285
Аноним 2018/01/03 13:28:35  №1115267 511
>>1115250
Чтоб с боку от картинки был текст.
Ответы: >>1115270
Аноним 2018/01/03 13:29:11  №1115268 512
15149753520990.jpg (3, 252x200)
200x252
Блять почему я всегда ору с этой хуйни? Они это до сих пор не убрали, заняты своими Grid'ами и Flex'ами.
>How to center the text of a block element horizontally (more precisely: in the inline direction) even if (part of) the block is next to a float?
Ответы: >>1115387 >>1116333
Аноним 2018/01/03 13:29:54  №1115270 513
Ответы: >>1115284
Аноним 2018/01/03 13:32:15  №1115273 514
>>1115252
да, лол. видимо, не все программисты используют каникулы для написания своих опесорс-проектов
Ответы: >>1115279
Аноним 2018/01/03 13:33:51  №1115279 515
Аноним 2018/01/03 13:34:18  №1115281 516
15149756589380.gif (447, 320x240)
240x320
Аноним 2018/01/03 13:36:03  №1115284 517
>>1115270
Спасибо, посмеялся над собой. Пойду таки сначала выучу всё, а потом буду пытаться закрепить.
Ответы: >>1115287
Аноним 2018/01/03 13:36:19  №1115285 518
>>1115259
это ты скорее говоришь про проекты, запущенные несколько лет назад. новые проекты чаще всего используют просто нжинкс из-за того, что php-fmp работает быстрее, чем php как служба апача. ну и из-за удобства.

на шаред-хостингах конечно ситуация другая (там ценна возможность использовать .htaccess), но мы же не про них говорим?

если ты агитируешь за связку апач+нжинкс для новых проектов, то подскажи плюсы апача, будет интересно
Ответы: >>1115288 >>1116334
Аноним 2018/01/03 13:37:48  №1115287 519
>>1115284
Ну я бы советовал параллельно все делать, быстрее прогресс пойдет.
Аноним 2018/01/03 13:39:36  №1115288 520
>>1115285
>php-fpm
фикс
а то такой анон пошел доебчивый
Аноним 2018/01/03 15:38:20  №1115337 521
>>1115175
Мне и надо локальное, но походу php -S это мой предел. 2 дня читал, ничего не откладывается в голове, боюсь браться за майэскуэл (что, теперь на каждый чих документации сотни страниц? А я думал PHPnet это самый сложный шаг).
Ответы: >>1115442
Аноним 2018/01/03 16:17:46  №1115348 522
15149854668640.png (16, 467x417)
417x467
Есть ли смысл в сущностях доктриновской орм прописывать type-hints у геттеров и сеттеров, если в аннотациях они и так стоят?
Ответы: >>1115402 >>1116334
Аноним 2018/01/03 17:18:31  №1115376 523
>>1115202
да, но это анон написал уже после того, как задал изначальный вопрос. ты рассуди нас, корректно ли использовать foreach чтобы ускорить обработку больших массивов или нет?
Аноним 2018/01/03 17:41:18  №1115386 524
>>1115257
>>1115251
Вангую что ты школьник без опыта работы вообще. Сейчас у меня 126 сайтов на том или ином хостере. Никогда за всю практику такой ситуации небыло.
Ответы: >>1115400
Аноним 2018/01/03 17:42:27  №1115387 525
>>1115268
<center>
Но местные этот метод хуесосят. Пушо "УСТОРЕЛ БЛЯЯЯЯЯЯЯЯЯЯЯ"
Ответы: >>1115593 >>1116333
Аноним 2018/01/03 18:21:09  №1115400 526
>>1115386
вообще не угодал.
31, последние два года работаю в достаточно большой конторе с саас-продуктом. я понимаю, что ты клепаешь лендосы (ну ладно, не только лендосы), поэтому у тебя вопросы решаются хостингом, но серьезные проекты всегда работают на своих vds и там полезно представлять работу сервера, даже если ты не админ.

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

плюс у меня на локальной машине всегда стоит нжинкс с последним пхп и днс-сервером, чтобы всегда иметь возможность разворачивать свои проекты сначала у себя. а у тебя, полагаю, нет.
Ответы: >>1115403 >>1115439
Аноним 2018/01/03 18:36:37  №1115402 527
>>1115348
Я дублирую. Это же по сути разные вещи - аннотации смотрит доктрина, а тайп-хинт аргуметов и ретурна сам интерпретатор
Ответы: >>1116334
Аноним 2018/01/03 18:37:15  №1115403 528
>>1115400
Последний проект принёс мне контракт на 10 000$ Где был отдельный админ на Nginx и закуп 2 серверных стоек под него. Если ты сам настраиваешь что-то внутри сервака, то у тебя уровень фронтенда в 31 год.
Ответы: >>1115404 >>1115405 >>1115410
Аноним 2018/01/03 18:41:37  №1115404 529
>>1115403
У меня есть OpenServer и мне этого достаточно. Я лучше новый гайд почитаю по PHP или разберу что нового добавили, чем буду ковыряться в Nginx. Ибо на практике это в итоге не нужно. И тот факт что ты даже примеры привёл которые можно решить вообще не касаясь Nginx только подтверждает это.
Ответы: >>1115408
Аноним 2018/01/03 18:42:23  №1115405 530
>>1115403
наверное у тебя больше развит талант бизнесмена (или пиздобола), если ты думаешь, что серваки настраивают фронтенды.
Ответы: >>1115409
Аноним 2018/01/03 18:45:58  №1115408 531
>>1115404
опен сервер - хорошая штука. когда сидел на винде, тоже им пользовался. но практика такова, что ты почитаешь новый мануал по 7.2, а потом выкатишь сайт на хостинг, где в лучшем случае 7.0
Аноним 2018/01/03 18:46:08  №1115409 532
>>1115405
Да, я считаю что администрирование сервака - это значительно проще чем программирование. В конце концов по тому-же Nxinx есть куча документации. А как сделать ту или иную фичу на бэкэнде с 4 миллиардами записей в БД - хрен найдёшь.
Аноним 2018/01/03 18:48:56  №1115410 533
>>1115403
алсо, работа одмина в больших конторах - это в основном давать доступы к впн и прокладывать провода. настройками веб-сервера, бд и производительности занимаются чуваки из отдела эксплуатации, где обычно сидят самые крутые и прошаренные программисты, знающие нутро проекта и среды.
Ответы: >>1115411 >>1115441
Аноним 2018/01/03 18:50:54  №1115411 534
>>1115410
Ты слишком высокого мнения о них. Раз в пол года шевельнут мизинцем и то радость.
Аноним 2018/01/03 20:32:30  №1115439 535
>>1115400
Спасибо что пояснил этому колхознику, мне было лень печатать
Аноним 2018/01/03 20:35:17  №1115441 536
>>1115410
Прошаренные девопсы
Аноним 2018/01/03 20:36:29  №1115442 537
>>1115337
будешь браться за базы советую прорешать любой задачник по SQL запросам, так будет проще, вообще не читай ничего, а занимайся сразу практическими задачами параллельно гугля вопросы которые у тебя появятся.
Аноним 2018/01/03 20:46:11  №1115446 538
Анон, подскажи, какую книгу по PHP стоит купить в бумаге?

Я понимаю, что так-то весь материал можно в инете прочитать, но есть ли что-то, что в наш цифровой век, следует сохранять в аналоговой форме?
Ответы: >>1115450 >>1115454
Аноним 2018/01/03 20:50:40  №1115450 539
>>1115446
не стоит у меня вся полка этим мусором завалена
Ответы: >>1115466
Аноним 2018/01/03 20:54:06  №1115454 540
>>1115446
по джаве дохуя хороших книг, по php нихуя. мой совет - читай по джаве, а потом переноси. по основам читай мануал. у других языков обсосные мануалы, а у php норм.
Ответы: >>1115466
Аноним 2018/01/03 21:01:30  №1115466 541
>>1115454
>>1115450
Странно, лол.
Так-то у меня эта идея появилась от того, что я когда сети изучал, то купил себе Олифера в бумаге и не прогадал.
Аноним 2018/01/03 22:40:04  №1115509 542
>>1109863 (OP)
Анонсы, это нормально, что у меня не получаются задачки про регулярки? я тупой? все, что было до них легко решалось, а тут на тебе, ничего не понятно, мда. Может стоит почитать что-то, кроме того гайда для чайников?
вкатился полторы недели назад, до этого к погромированию вообще отношения не имел
Ответы: >>1115513 >>1115537
Аноним 2018/01/03 22:51:19  №1115513 543
>>1115509
Показывай что не получается
Ответы: >>1115515
Аноним 2018/01/03 22:56:31  №1115515 544
15150093919290.png (48, 603x608)
608x603
>>1115513
С задачей про номера проблем не было, а вот остальное вообще никак
Ответы: >>1115519
Аноним 2018/01/03 23:23:15  №1115519 545
>>1115515
ты код-то свой покажи
Ответы: >>1115525
Аноним 2018/01/03 23:31:05  №1115524 546
Ворвусь со своей прохладной историей. С пхп да и вообще с нормальными языками никогда не работал, пишу на 1с всякую пиздоту.
В новом году понадобилось завести магазин так, чтобы данные о товарах грузились с 1с. Говно вопрос сказал я себе, задача казалось вполне простой:
Выгрузить - > Передать по соап -> загрузить
Такую задачу я много раз решал между 1с системами и тут мне казалось, что проблем не будет.
За основу я наугад выбрал opencart, оказалось что он на пхп, ну да и хуй с ним. Развернуть на локалке и поднять сервак оказалось очень простым. В целом никаких проблем.
Вопросы начались, когда стал решать задачу загрузки со стороны сайта. Решил по старой схеме передавать с помощью типизированного хмл wsdl схема. Включил соап сервер и оказалось, что всдл надо руками формировать, никаких механизмов из коробки по формированию исходника я не нашел. Оказывается существуют множество всяких библиотек типа php2wsdl, которые делают это декларативно. В общем полдня я ебался просто с установкой этого модуля, классы не грузились, автозагрузка хуй его знает как работает, поставил композер, разобрался с автолодом. Потом стал формировать всдл, еще полдня разбирался как работать с этими классами и методами, каждая ошибка вгоняла в гугол. В 1с классического ооп нет, поэтому для меня вся эта бодяга с классами немного напрягала. В общем на следующий день я посмотрел на сформированный всдл и понял, что к нему надо еще писать обработчик. Тут я подумал и решил что нахуй он не нужен этот всдл.
Решил использовать json, тем более один раз с ним уже работал. Удалив всё что наработал начал заного и внезапно пришла в голову идея, что наверно у опенкарта должно быть апи, так и оказалось, но нужных методов там не было. Но при разборе структуры апи внезапно столкнулся с mvc и охуел. Ничего подобного я раньше не видел и это меня сильно удивило. Сегодня написал свой первый контроллер с моделью и всё-таки удалось выгрузить данные, но авторизацию пока не победил. Завтра буду ебаться с токенами и прочей хуйней.
Мир пхп такой забавный, кек.
Ответы: >>1115543
Аноним 2018/01/03 23:31:53  №1115525 547
Ответы: >>1115526 >>1115702 >>1116334
Аноним 2018/01/03 23:34:29  №1115526 548
>>1115525
это про граммар нази, остальные вроде как норм получились
забыл дописать туда
Аноним 2018/01/04 00:16:42  №1115537 549
>>1115509
брось регулярки если они тебе прям не нужны и занимайся программированием, регулярки заебная хуйня
Аноним 2018/01/04 00:28:45  №1115543 550
>>1115524
почему ты битрикс то не взял
Аноним 2018/01/04 04:36:22  №1115593 551
>>1115387
Ну он не сколько устарел сколько неудобен. Из блока нужно делать плавающую строку и накладывать кучу свойств на него чтобы выровнять. Сейчас все само делается парой строчек и стандартными средствами, тут уже вопрос об производительности.
И опять же, Float - Не нужен, бросайте его использовать, надеюсь его удалят.
Ответы: >>1115629 >>1116333
Аноним 2018/01/04 10:55:20  №1115623 552
Ребята, у меня такой вопрос.

Глядя на современные веб приложения я все больше замечаю, что php больше используется как веб-сервис для взаемодействия с бд, а все остальное пишется на каком-то js фреймворке.

Я сейчас на работе пишу все на php и по необходимости свистелки-перделки дописываю на jquery и мне кажется, что это старо и не правильно.

Что вы думаете по этому поводу. Видимо придется подучивать еще какой-то js фреймворк?
Ответы: >>1116114 >>1116333
Аноним 2018/01/04 11:36:55  №1115629 553
>>1115593
Я вообще вместо пары строк предлагаю 1 тег. Чем он неудобен то? Написал и забыл.
Ответы: >>1115642 >>1115690
Аноним 2018/01/04 12:20:51  №1115642 554
15150576520570.jpg (3, 252x200)
200x252
Ответы: >>1115645
Аноним 2018/01/04 12:41:44  №1115645 555
>>1115642
Что не так-то, аргументировал бы хоть.
Аноним 2018/01/04 15:12:34  №1115678 556
Анон, помоги понять, как решить задачу (ну т.е. какие функции могут пригодится).

Сама задача простая:

Пользователь вводит названия продуктов.
Потом эти продукты проходят проверку на наличие.

Первый вопрос:
Как задать, чтобы через HTML-форму входил целый массив, а не строка?
Ответы: >>1115686 >>1116332
Аноним 2018/01/04 15:27:01  №1115686 557
>>1115678
Несколько полей ввода с именем вида name[]
Ответы: >>1115691
Аноним 2018/01/04 15:34:02  №1115690 558
>>1115629
покажи на примере, а то не понятно
Аноним 2018/01/04 15:36:40  №1115691 559
>>1115686
Не, поле только одно.

А так только вариант с преобразованием строки в массив?
Ответы: >>1115692
Аноним 2018/01/04 15:43:17  №1115692 560
>>1115691
>вариант с преобразованием строки в массив
а чем тебе этот вариант не нравится?

мимо
Ответы: >>1115703
Аноним 2018/01/04 15:52:36  №1115695 561
Не могу решить это
W5.1. Школьник решил купить айфон и для этой цели взял кредит. Сумма кредита — 40000 р., банк в начале каждого месяца (включая первый) начисляет 3% от остатка долга за пользование кредитом и 1000 р. комиссии (да, а ты думал, обойдешься процентами?). После этого, в конце каждого месяца, наш герой идет в банк и пытается выплатить долг, но он не может заплатить более 5000 р за раз (сэкономленных на школьных завтраках). Вопрос, когда он избавится от долга? Во сколько школьнику обошелся айфон?
код примера на http://codepad.org/nm9jPcpd
Ответы: >>1116332
Аноним 2018/01/04 16:17:03  №1115702 562
>>1115525
https://ideone.com/MtOprg

у меня вот так получилось. полагаю, что надо еще сделать буквы заглавными, но не могу придумать как. если кто подскажет, буду рад.

только не надо подсказывать в стиле чсв-анона "сделай preg_replace_callback, вошь, я даю вам удочку" лол. конкретную реализацию напишите
Ответы: >>1115845 >>1116332
Аноним 2018/01/04 16:20:21  №1115703 563
>>1115692
Не то чтобы "не нравится". Просто решил проработать несколько вариантов.

Так значит, через форму можно вводить только что-то простое?
Ответы: >>1115721
Аноним 2018/01/04 17:06:13  №1115721 564
>>1115703
Можешь использовать множественный селект, но для этого нужно будет еще ручками дописать функционал (можешь погуглить 'multiple select') либо заюзать какую-то библиотеку, например, select2.
Аноним 2018/01/04 18:55:30  №1115776 565
Крч, есть билд на С++, а сайт (интерфейс) на пыхе, нужно соединить
Как ?
Ответы: >>1115786 >>1115846
Аноним 2018/01/04 19:23:55  №1115786 566
Ответы: >>1115811
Аноним 2018/01/04 20:24:31  №1115811 567
>>1115786
Можно ссылкой, где пхп и С++ ?
Ответы: >>1115816 >>1115837
Аноним 2018/01/04 20:33:01  №1115816 568
>>1115811
что за "интерфейс" на пыхе?
Ответы: >>1115826
Аноним 2018/01/04 20:58:11  №1115826 569
Ответы: >>1116331
Аноним 2018/01/04 21:23:14  №1115837 570
>>1115811
в смысле ссылкой? это как просить ссылку "как водить солярис". мол мне все вождение похую, только солярис бы научиться водить. если ты оба языка знаешь, то проблема только в жопочасах. по рест апи инфы миллион.
Аноним 2018/01/04 21:46:58  №1115845 571
>>1115702
так, чтобы буквы становились заглавными я делал в своем варианте, хотя оно почему-то не работало, хз почему, лол
Аноним 2018/01/04 21:55:30  №1115846 572
Аноним 2018/01/04 22:47:23  №1115862 573
Котята, что-то я не понимаю. Сейчас остановился на задание из шапки про игру с компом в кубики. Вроде все сделал, все играется. Но как только ставлю exit, нихуя не работает. Почему так? Код https://ideone.com/dIhueJ и само задание http://archive-ipq-co.narod.ru/l1/conditions.html .
Ответы: >>1115865 >>1115866
Аноним 2018/01/04 22:47:33  №1115863 574
Подскажите годную книгу по верстке.
Аноним 2018/01/04 22:55:30  №1115865 575
>>1115862
Разобрался, просто не добавлял после if скобочку {. Но все равно, в задание оно есть, а у меня нету. Значит что-то не так
Ответы: >>1116331