Задать вопрос
  • Можно ли настроить несколько поддоменов на одну директорию, но разные index файлы?

    Ascendant
    @Ascendant
    PHP/AngularJS/Sphinx/nginx
    Можно. Если у вас PHP обрабатывает nginx можно использовать map. Вот выдержка из конфига:

    map $http_host $index_file {
            nginx-test.loc          index.php;
            one.nginx-test.loc      index1.php;
            two.nginx-test.loc      index2.php;
    }
    
    server {
            listen 80;
            server_name nginx-test.loc *.nginx-test.loc;
    
            root /var/www/nginx-test;
    
            index $index_file;
    
            # остальные параметры
    }


    Либо можно для каждого поддомена написать свой конфиг, в общем вариантов масса.

    Для Apache2 можно написать похожий конфиг.
    Ответ написан
    1 комментарий
  • Чем так хорош Django?

    @mamkaololosha
    А кто вам сказал, что джанго с нуля будет легко? Скорее всего вы слышали следующую фразу:"Легкотня, я 10 лет пишу на джанго. Правда понял его только месяц назад." Вторую часть фразы пропустили мима ушей.
    Ответ написан
    Комментировать
  • Есть ли у вас советы для начинающих фрилансеров?

    ByKraB
    @ByKraB
    Могу дать один совет.

    Хватит уже создавать вопросы про фриланс. Просто идите делайте свою работу и получайте опыт.
    Ответ написан
    6 комментариев
  • Почему лучшей практикой удаления сущностей из базы данных считается через форму, а не просто GET ссылкой?

    @Nc_Soft
    гетом не рекомендуется потому что
    img src="del.php?id=1"
    если разместить такую картинку где угодно можно заставить тебя удалить запись когда ты ее увидишь, если при этом нет защиты от csrf
    Ответ написан
    1 комментарий
  • Как узнать, является ли ключ массива последним?

    Sanasol
    @Sanasol Куратор тега PHP
    нельзя просто так взять и загуглить ошибку
    Откройте для себя: http_build_query
    Ответ написан
    1 комментарий
  • Возможно ли скрыть блок div?

    Kvarkas
    @Kvarkas
    IT (full stack)
    добавить ему свойство hidden
    <div hidden>
    	невидимый
    </div>

    если у вас недобраузер тогда добавте стиль:
    *[hidden] { display: none; }
    Ответ написан
    3 комментария
  • Сколько примерно стоит инвайтер?

    gadfi
    @gadfi
    https://gamega.org
    Сколько стоит машина?
    Возьмем цифру немного с потолка, пусть 5 000$. Если столько попросят за запорожец то вы вероятнее всего пошлете такого продавца, с еще большим энтузиазмом вас пошлют при попытки купить лаборджини за такие деньги, хотя и то и то машины.
    Нету внятного ТЗ результат хз © фрилансерское народное творчество
    pam_zak.jpg
    Ответ написан
    Комментировать
  • Как средствами php обрезать последнюю часть url до слеша?

    @Nc_Soft
    внезапно
    $url = [
        'http://domen.ru/der/der2',
        'http://domen.ru/der/der3/deros',
        'http://domen.ru/der/der4/index.html',
    ];
    
    foreach ($url as $url) {
        echo dirname($url),PHP_EOL;
    }
    Ответ написан
    5 комментариев
  • Замена SSD Macbook pro retina late 2013 имеет смысл (совместимость)?

    maaGames
    @maaGames
    Погроммирую программы
    Если не ошибаюсь, там вместо SATA флэш-накопитель подключен по PCI Express, так что нельзя купить любой SSD.
    Ответ написан
    Комментировать
  • Что за чудеса творится с исключениями php?

    socengel
    @socengel
    7 лет native php в продакшене, онлайн 20000+,
    Ошибка != Исключение. Это 2 разные сущности.

    set_error_handler() посмотрите.

    catch(Exception $e) - создаете ошибку а ловите исключение. чтобы поймать исключение нужно его выбросить через throw

    ваш код правильнее будет выглядеть так
    try{
       $a = 1;
       $b = 0;
    
       if ($b != 0){
           echo $a/$b;
       }
       else {
           throw new Exeption('Division by zero');
       }
    } catch(Exception $e){
      echo 111;
    }
    Ответ написан
    3 комментария
  • Что за чудеса творится с исключениями php?

    @Nc_Soft
    Потому что варнинг это не исключение..
    upd
    <?php
    set_error_handler("warning_handler", E_WARNING);
    
    echo 1/0;
    
    function warning_handler($errno, $errstr) { 
    	throw new Exception($errstr);
    }
    Ответ написан
    2 комментария
  • Для чего нужен отдельный пустой класс с исключением (Exception)?

    @Arik
    Чтоб понять откуда ноги растут ошибок и как на них реагировать. Допустим завтра захотите в отделный лог писать все ошибки работы mysql, а у вас уже класс готовый

    Exception // ошибки в php, скорее всего не в твоем коде в левых либах и т.д.
    
    class AppException extends Exception // ошибка в твоем приложении
    
    class MySqlException extends AppException // ошибка в твоем приложении, а именно в работе с базой
    
    class ControllerException extends AppException // ошибка в твоем приложении, а именно работа контроллера
    
    // и т.д.
    Ответ написан
    Комментировать
  • А какой ваш путь изучения ЯП?

    TekVanDo
    @TekVanDo
    Javascript Developer
    Язык программирования и быдлокодер это разные плоскости, писать плохо или хорошо можно на любом. Чтобы писать нормально - нужно читать. Сам начинал с php потом перешел на c#, но последний год мне интересен javascript.
    Ответ написан
    7 комментариев
  • Как прогреть IP SMTP сервера?

    oia
    @oia
    надо прописать в днс SPF звпись и DKIM , а то что выше прогреть сервер бред
    Ответ написан
    Комментировать
  • Какой смысл в использовании шаблонизаторов?

    Fesor
    @Fesor
    Full-stack developer (Symfony, Angular)
    Шаблонизатор шаблонизатору рознь. Но в целом следует выделить общие задачи. которые должны решать за вас шаблонизаторы. С blade не работал и не вижу смысла есть есть twig.

    Безопасность. Это пожалуй можно поднять на верх. Типичная картина в шаблонах на php - <?= $someUserInput; ?>. Частенько это можно встретить в выводе инпутов, при формировании ошибок поиска (мол "по запросу $userInput ничего не найдено. То есть вставляем в инпут подключение наших js скриптиков, если это форма поиска - делимся с "другом" и забираем его сессию. Ну или еще какие забавные штуки можно делать. А ведь все очень просто решается. Ставим какую-то функцию, которая по умолчанию будет фильтровать XSS инъекции при выводе, и не будет этого делать только если мы попросим. Если писать просто на php - появляются отвратные функции, которые можно просто забыть вызвать. А с шаблонизаторами мы пишем красивые {{ someUserInput }} и можем спать спокойно.

    Помогают соблюдать принцип DRY. Современные средства шаблонизации (twig например), предоставляют вам возможность разделять шаблоны на блоки, переиспользовать их несколько раз, выделять макросы, наследовать шаблоны... словом все что угодно. лишь бы вы могли реюзать куски html а не копипастить их.

    Ограничивают полет фантазии разработчика. Далеко не новость что разработчики ленивые засранцы. Особенно молодые. Если им в шаблоне внезапно понадобились какие-то данные из БД, или данные связанные с запросом, большинство не будет париться и зафигачит нужный код прямо в темплейте. Так же некоторые грешат тем что часть бизнес логики размазывают по шаблонам. Так же встречал проекты отданные на суппорт, где чуваки в шаблонах разбирали через xpath ответы от сторонней апишки (которая использовалась вместо базы данных. То есть это дело было размазано по всему проекту). Рефакторинг в случае изменения апишки будет болью.

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

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

    Так как за все эти приятные вещи мы по сути ничего не платим (шаблонизатор должен компилировать все это в нативный php так что оверхэда просто не будет), почему бы не пользоваться?
    Ответ написан
    1 комментарий
  • На чем написан Zopim?

    Prognosticator
    @Prognosticator
    TODO: Здесь будут ворованные умные мысли, типа мои
    v2.zopim.com/?zopim - js, но он возможно сформирован еще чем-то

    не поленился и задал вопрос поддержке ) что и вы могли сделать, вы же не копии исходников просите

    say on what technologies make your chat, besides javascript?

    и ответ они не заZopiли

    We've used Ajax, Python, Javascript, Flash, C# and HTML5
    Ответ написан
    Комментировать
  • Почему не работает функция foreach c PDO?

    FanatPHP
    @FanatPHP
    Чебуратор тега РНР
    Прекрасный, прекрасный пример того, что такое эти Q&A сайты.
    Ну неужели жалкий ручеек тафика, состоящего из убогих и ламеров всех мастей, стоит того, чтобы терпеть это позорище?

    Вопрос, который к ПДО имеет такое же отношение, как я - к балету, и - самое главное - ответы, прекрасно описываемые анекдотом про Вовочку "Я, конечно, не профессор..."

    Вопрос, код в котором принципиально не будет работать, поскольку аффтару надо либо крестик снять, либо трусики надеть, и опеределиться - нечеткое у него сравение (и добавить LIKE) или четкое (тогда убрать процентики).

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

    Ну и вишенка на торте - совершенно детская причина всех страданий - коварные переводы строк, возвращаемые file() по умолчанию.
    Ответ написан
    Комментировать
  • Как отображать в письме другой емайл отправителя?

    @inkvizitor68sl
    Linux-сисадмин с 8 летним стажем.
    > проблемы с доставкой на доменах где настроена spf запись.
    Это здесь не при чём. "Проблемы" у вас возникают из-за корректно настроенных почтовых серверов на принимающей стороне.

    В остальном ваш вопрос так : "Как мне рассылать спам, и чтобы мне за это ничего не было". Ответ - никак. Шлите письма с принадлежащего вам From, настройте свой почтовик на работу с этим From и всё будет хорошо.
    Ответ написан
    Комментировать