• Можно ли вывести деньги из приложения?

    mourr
    @mourr
    Passionate JS developer
    Общий ответ - да, сможете
    Но придется договариваться с мерчантами для организаци выплат и немного повозиться с бумажками и другими ньюансами
    Ответ написан
    Комментировать
  • Сайт php + AJAX, приехали?

    MaEcTPo
    @MaEcTPo
    Конкретно с этим кодом, с минимальными затратами времени я бы сделал следующее:

    1. В функциях я оставил бы только формирование массивов данных. Переименовал бы их в `get_news()`, `get_news_menu()`. Они бы возвращали только массивы данных, например:
    $news = [
        0 => [
            'photo' => 'photoValue',
            'title'    => 'Title Value',
            'description' => 'Some long Description',
        ],
        1 => [
            'photo' => 'photoValue',
            'title'    => 'Title Value',
            'description' => 'Some long Description',
        ],
    ];


    С меню так же - возвращаете массив, только вместо photo, title, description уже будут url, title, что-то ещё.

    2. Всю HTML-разметку можно вынести в отдельный файл, например, который в данном случае подключить при помощи include(). Но это особо не повлияет на качество кода :)
    Саму разметку уже делать подобным способом, на примере с меню:

    <div class="card" style="height: 30px;">
        <?php foreach (get_menu_items() as $menuItem) : ?>
            <a href="<?= $menuItem['url'] ?>"><?= $menuItem['title'] ?></a>
        <?php endforeach; ?>
    </div>


    Потом, с опытом, придёт понимание того, что некоторые части повторяются и их можно и нужно выносить в отдельные блоки (Twig), паршалы (symfony1, zend1).

    3. Относительно аякса, то ничто вам не мешает, если это аякс возвращать на клиент json структуры ваших новостей, который клиент уже будет рендерить так, как пожелает. А на сервере это всего лишь `json_encode(get_news());` отправить в браузер.

    P.S. мог допустить синтаксических ошибок, так как в IDE не проверял. Надеюсь, что помог.
    Ответ написан
    5 комментариев
  • Сайт php + AJAX, приехали?

    skobkin
    @skobkin
    Гентушник, разработчик на PHP и Symfony.
    Тут очень, очень много чего можно приводить к божескому виду. Вам, наверное, надо попробовать какой-нибудь не очень сложный MVC-фреймворк для начала.
    Пока что весь код - сплошная каша, которую чуть проще поддерживать, чем если бы всё было в одном файле, но всё ещё значительно сложнее, чем уже проработанные решения.
    $data .=  '<div class="newsPhoto">';
            $data .=  '<img src="'.getImgUrl($news['photo']).'">';
            $data .=  '</div>';
            // ...

    Вообще, если вам так хочется всё это делать именно в PHP - можно использовать либо Heredoc/Nowdoc, либо просто записывать в кавычках без лишних конкатенаций кода с самим собой. Хотя лучше, конечно, всё это делать в слое View (см. MVC) - попробовав вы быстро поймёте - насколько это круто, когда логика (операции с данными) и представление (вывод данных) разделены.
    $sql = mysql_query("SELECT news_id, title, description, photo FROM news WHERE category='1' ORDER BY news_id DESC LIMIT 10") or die(mysql_error());

    Используйте PDO и подготовленные запросы с биндингом параметров.
    А ещё у вас везде одинарные кавычки (что хорошо), а тут - двойные. Зачем? Одинарную кавычку можно экранировать с помощью бэкслеша.
    if (isAJAX() == false) {
    echo head('Новости',array('common.css', 'news.css'),array('common.js'));
    echo body();
    echo news_menu();
    echo news();
    echo footer();
    }

    Это очень мило. Вы почти пришли к шаблонам :)

    Могу порекомендовать вам для приобретения понимания как лучше коду выглядеть сделать три вещи:
    1. Ознакомиться с PSR-2 как минимум.
    2. Прочесть и постараться максимально понять Php The Right Way.
    3. Переписать всё это на каком-нибудь более-менее современном, но ещё не очень сложном фреймворке, который из коробки имеет MVC. В памяти пока что всплывает, например, FuelPHP.

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

    skobkin
    @skobkin
    Гентушник, разработчик на PHP и Symfony.
    Давайте и я примажусь с наглядной демонстрацией, чтобы вам спокойней было :)
    f49b090c60e5450a91bbf73ccf1372d5.png
    Ответ написан
    2 комментария
  • Какие проблемы могут возникнуть при создании сервиса рассылок на шареде?

    skobkin
    @skobkin
    Гентушник, разработчик на PHP и Symfony.
    Могут помешать ограничения по памяти, по обращениям к диску. Могут заблокировать аккаунт за рассылки в больших количествах (то, что вы проверяете на спам никого волновать не будет).
    Ответ написан
    2 комментария
  • Как составить таблицы БД для многоуровневой реферальной системы?

    skobkin
    @skobkin
    Гентушник, разработчик на PHP и Symfony.
    Если хотите одним простым запросом выбирать из дерева - вам нужно смотреть в сторону хранения древовидных структур: Nested Set, Materialized Path, Adjacency List, Closure Table, etc.
    У них есть свои плюсы и минусы - вам нужно подобрать под вашу задачу в зависимости от того, какие операции с деревом вы будете производить.
    Вот здесь про них уже есть ответ. А вот здесь - статья.
    Ответ написан
    Комментировать
  • Почему PHP не определяет ajax запрос?

    skobkin
    @skobkin
    Гентушник, разработчик на PHP и Symfony.
    На stackoverflow.com прочитал что данная переменная $servers формируется на основе заголовков и мол, ей нельзя доверять (ссылку на сайт с вопросом потерял.)

    А вот разработчики Symfony - доверяют.

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

    UPD:
    Будете делать ответ - не забудьте устанавливать в заголовках Content-Type в соответствующий тому формату, в котором отдаёте.
    Ответ написан
    9 комментариев
  • Почему PHP не определяет ajax запрос?

    Surzhikov
    @Surzhikov
    Разработчик
    Почему две страницы? Можно обойтись одной.
    Даете ему понять, какого типа данные он вам должен вернуть.
    В ajax запросе передайте переменную (напр.: dataType). В ней указываете формат данных.

    if($_POST['dataType']=="giveMeJSON"){
    ... собираете массив и формируете из него джейсон
    }else{
    ... выводите данные в html (если вы это хотели)
    }
    Ответ написан
    3 комментария
  • Как сгруппировать элементы формы?

    skobkin
    @skobkin
    Гентушник, разработчик на PHP и Symfony.
    Не очень понятно, чего вы хотите.
    Но попробуйте поместить каждую группу в свой элемент <div>.
    Ответ написан
    Комментировать
  • Filesize php, как сравнить размер?

    skobkin
    @skobkin
    Гентушник, разработчик на PHP и Symfony.
    А с чего вы взяли, что он "пропускает" if?
    Дебаггером-то посмотрите, что у вас возвращается из обоих вызовов filesize().
    Ну и числа правильнее сравнивать со строгой типизацией:
    if (1 !== 2) {

    Кстати, вам оба filesize() могут возвращать false (и генерировать warning при определённом уровне показа ошибок) из-за ошибки.
    Ответ написан
    2 комментария
  • Как сохранить измененный значения после перезагрузки страницы?

    skobkin
    @skobkin
    Гентушник, разработчик на PHP и Symfony.
    Обновление надписи на кнопке при клике - одно. В целом, вам логично либо сделать отправку в корзину через AJAX, либо надпись на кнопке должен менять сервер при повторной загрузке страницы. Ведь он знает, что этот товар лежит в корзине.
    Сохранять статус вам вообще не нужно.
    Ответ написан
    Комментировать
  • Какой шаблонизатор посоветуете для OpenSource проекта на Yii2?

    skobkin
    @skobkin
    Гентушник, разработчик на PHP и Symfony.
    Twig. У него даже есть расширение PHP для ускорения работы.
    Ответ написан
    Комментировать
  • В какой последовательности изучать языки программирования?

    skobkin
    @skobkin
    Гентушник, разработчик на PHP и Symfony.
    Имеет смысл начать с C/C++, чтобы понять некий базис и строгую типизацию. Потом попробовать Python/PHP и посмотреть, что такое динамическая типизация. Осознать для себя плюсы этих двух подходов. И если душа ещё не легла к какому-то из языков - можно попробовать энтерпрайзную Java или C#.
    Ответ написан
    Комментировать
  • Какой php фреймворк достаточной гибкий?

    skobkin
    @skobkin
    Гентушник, разработчик на PHP и Symfony.
    Можете начать переносить код на компоненты Symfony, а потом перейти целиком на Symfony.
    Но, возможно, kapai69 прав и переписывание создаст слишком много проблем с любым фреймворком.
    Ответ написан
    Комментировать
  • Как заменить фотографию сущности?

    skobkin
    @skobkin
    Гентушник, разработчик на PHP и Symfony.
    Ну вы же в контроллере можете описать логику обновления сущности, а не только автоматически заполнить её новыми данными из формы.
    Ответ написан
  • Оплата на сайте через интернет. Как лучше сделать?

    skobkin
    @skobkin
    Гентушник, разработчик на PHP и Symfony.
    Если вам нужно принимать оплату только картами, может быть выгоднее заключить договор интернет-эквайринга с банком. Условия у всех разных - изучайте.
    Если вам нужно много способов оплаты - подключайте агрегаторов типа Робокассы, Яндекс.Кассы и прочих. Тысячи их.
    Ответ написан
    Комментировать
  • Как захостить статичный сайт на digitalocean?

    skobkin
    @skobkin
    Гентушник, разработчик на PHP и Symfony.
    Просто настраиваете nginx на отдачу статических файлов (проще простого).
    А вообще, зачем вам для этого виртуальная машина? Можно взять дешёвый shared-hosting.
    Ответ написан
    Комментировать
  • Административная-панель на поддомене (локальный сервер OpenServer). Как сделать?

    skobkin
    @skobkin
    Гентушник, разработчик на PHP и Symfony.
    На локалхосте вам не нужно думать о поддоменах. Просто создайте хост admin.mysite.com и направьте на 127.0.0.1 (возможно, OpenServer делает это сам).
    Ответ написан
    Комментировать
  • Как загружать страницы ajax, при использовании php роутинга?

    skobkin
    @skobkin
    Гентушник, разработчик на PHP и Symfony.
    Через файл index.php, если не ошибаюсь контроллер он называется

    Обычно он называется "точка входа" (entry point).
    Но если нужно подгрузить через ajax, то нужно делать доп. условия в index.php или в корне создать ajax.php и подгружать запросами через него?

    Если вы делаете единую точку входа, то зачем делать ajax.php?
    Как загружать страницы ajax, при использовании php роутинга?

    Очевидно, так же указать в роутере какой код будет отвечать за ответ на AJAX-запросы.
    index.php - отдать заголовок плюс контент
    index.php?get=file - отдать только контент

    Вы придумываете какие-то извращения и изобретаете велосипеды едущие на костылях. При этом боитесь фреймворков.
    Из другого вашего вопроса:

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

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