• Где взять UTM метку?

    @tempick
    Смотря, какая именно utm-метка вам нужна. А вообще
    $fromAddress = 'admin@domain.com'; //Адрес, с которого отправляем по умолчанию
    $utmSource = $_GET['utm_source']; //Получаем utm-метку, которая означает, откуда перешли
    
    //Проверяем значение utm-метки и указываем нужный адрес
    if ($utmSource === 'google') {
        $fromAddress = 'from-google@domain.com';
    } elseif ($utmSource === 'yandex') {
        $fromAddress = 'from-yandex@domain.com';
    }
    
    //Далее отправляем письмо, подставив переменную $fromAddress


    По аналогии и с другими метками. Надеюсь, суть вы поняли
    Ответ написан
    Комментировать
  • Как правильно удалять строки из таблицы?

    @tempick
    $('body').on('click', 'a.btn-warning', function() {
        $(this).parent('td').parent('tr').remove();
    });
    Ответ написан
    Комментировать
  • Как сгенерировать последовательность из пяти случайных чисел в заданном диапазоне на php или python?

    @tempick
    // 1) Извлечение минимального и максимального id из бд
    
    // Если чистым sql, то типа того:
    // SELECT MIN(id) AS min_id, MAX(id) AS max_id FROM Post
    //затем
    $minPostId = $queryResult['min_id'];
    $maxPostId = $queryResult['max_id'];
    //А так я хз что вы используете для работы с бд, но думаю, запрос сможете составить
    
    // 2. Генерируем числа
    
    $randomIds = [];
    for($i=0;$i<5;$i++) {
        $randomIds[] = rand($minPostId, $maxPostId);
    }
    
    // 3. Получаем посты
    //SELECT * FROM Post WHERE id IN ($randomIds[0],$randomIds[1],$randomIds[2],$randomIds[3],$randomIds[4])
    //Код выборки не могу написать ибо не знаю, какой библиотекой для работы с бд вы пользуетесь и какая бд вообще у вас
    Ответ написан
  • Как сделать сайт wordpress полностью независимым от Интернет сети?

    @tempick
    Открываете сайт — открываете инструменты разработчика (f12) и идете на вкладку Network. Смотрите все запросы, находите ресурсы, скачиваемые из интернета, скачиваете их и в теме меняете линки. Полчаса работы максимум
    Ответ написан
    2 комментария
  • Есть ли решение для android с возможностью отправлять входящие sms на удалённый сервер?

    @tempick Автор вопроса
    Решил проблему, используя приложение Remote Bot. Он присылает уведомления в telegram, оттуда по telegram bot api получаю смс
    Ответ написан
    Комментировать
  • Есть ли возможность на одном локальном сервере разместить два сайта?

    @tempick
    Можно. Ознакомьтесь с документацией/курсами по Nginx и узнаете как легко сделать хоть миллион сайтов на одном сервере - всё упирается только в ресурсы
    Ответ написан
    Комментировать
  • Как сделать свой REST API?

    @tempick
    Как вариант - использовать Yii2 - с помощью него легко делать REST API
    Ответ написан
    1 комментарий
  • Стили не работают при выводе сообщения в telegram?

    @tempick
    1) Стили вы выводите в браузер, а сообщение отправляется в телеграм. Как он узнает об этих стилях?
    2) Телеграм вообще не поддерживает css. Вот дока https://core.telegram.org/bots/api#formatting-options

    The Bot API supports basic formatting for messages. You can use bold, italic, underlined and strikethrough text, as well as inline links and pre-formatted code in your bots' messages. Telegram clients will render them accordingly. You can use either markdown-style or HTML-style formatting.
    Ответ написан
    Комментировать
  • Посчитать сумму JSON?

    @tempick
    JSON.parse() + for...in + if
    Ответ написан
    Комментировать
  • Как извлечь динамический контент на puppeteer?

    @tempick Автор вопроса
    Решил проблему с помощью метода waitForSelector()

    Вот (почти) готовый код для извлечения номера с авито (оформляем в виде функции и передаем ссылку как аргумент и всё :) )

    const puppeteer = require('puppeteer');
    
    let scrape = async () => {
        const browser = await puppeteer.launch({headless: true});
        const page = await browser.newPage();
        await page.setDefaultNavigationTimeout(0);
        
        //имитируем мобилку
        await page.setUserAgent('Mozilla/5.0 (Linux; Android 7.0; NEM-L51) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/85.0.4183.81 Mobile Safari/537.36');
        await page.setViewport({width: 480, height: 920});
        
        //переходим по ссылке
        await page.goto('https://m.avito.ru/samara/avtomobili/chevrolet_captiva_2009_2005746471');
        
        //кликаем по ссылке "позвонить"
        await page.click('a[data-marker="item-contact-bar/call"]');
        
        //ждем, когда загрузится блок с номером
        await page.waitForSelector('span[data-marker="phone-popup/phone-number"]');
     
        //извлекаем номер и возвращаем
        const result = await page.evaluate(() => {
            return document.querySelector('span[data-marker="phone-popup/phone-number"]').innerHTML;
    
        });
    
        return result;
    
    
    };
    
    scrape().then((value) => {
        console.log(value);
    });
    Ответ написан
    Комментировать
  • Что сейчас используют веб-дизайнеры Figma или Photoshop?

    @tempick
    если нужно что-то быстро налепить из готовых блоков и получить деньги - то фигма. Если хотите создавать реально крутые макеты и готовы потратить много времени на изучение инструмента - то фш или CorelDraw


    Это ответ моего знакомого, дизайнера с многолетним опытом.
    Ответ написан
    4 комментария
  • Какие языки нужны для создания сайта?

    @tempick
    Вместо реакта посоветую лучше Vue.js - для начинающих будет проще, но функционалу не сильно хуже. + для фронтенда посоветую сразу изучить node.js - не для бэкенда, а именно для создания и сборки фронтенда. Но вообще, это всё придёт само, не надо сразу изучать десяток технологий, а лучше начать с простого.
    Как самоучка - сейчас объясню.
    В первую очередь, главное определиться, что вам больше по душе - бэкенд или фронтенд (попробовать основы и того, и того), и отталкиваться от этого. Да, круто, когда знаешь всё, но сразу всё изучить не получится. Для фронтенда - в первую очередь научиться вёрстке (html, css), потом vaniliaJS и уже потом фрейворки. Можно начинать с jQuery, но лучше сразу взять Vue.js. jQuery дает "ложную" простоту, но как только проект будет больше чем лендинг или сайт-визитка - начнутся проблемы и лепка костылей. Когда почувствуете, что готовы расти дальше - устанавливаете node.js + npm, и далее уже выбираете по желанию vue.js/react/angular. Тут ещё можно расписать много, но, думаю, для начала хватит. Бэкенд - самый крутой язык для начинающих (да и не только для начинающих) - это, конечно же, PHP - классный синтаксис, куча встроенных функций, большое кол-во готовых решений на гитхабе на все случаи жизни. Плюс изучение баз данных. Самая оптимальная для старта - MySQL - простая, быстрая, удобная в использовании. Но чтобы создать полноценный бэкенд для сайта на чистом PHP это будет геморно да и нафиг не нужно, поэтому после изучения основ выбираете для себя фреймворк. Самые лучшие - это Laravel И Yii2. Многие рекомендуют именно Laravel. Я работал с обоими, но мне больше по душе именно Yii2. Поробуйте оба и выбирайте, что больше понравится.
    Ну и самое главное - не заостряйтесь на конкретном языке/фреймворке. Самое главное - это понять принцип работы, механизм. Если вы не просто будете копипастить код для фреймворка, а еще и постараетесь понять - как этот фреймворк работает, как устроен этот механизм, то в будущем перейти на другой фреймворк не составит большого труда. Главное - это понять алгоритмы, а реализация - это уже личные предпочтения.
    Ответ написан
    Комментировать
  • Fetch ничего не возвращает?

    @tempick
    браузер блокирует ваши запросы, т.к. это кроссдоменный запрос. Чтобы Можно было отправить запрос, используйте Javascript SDK или JSONP (всё есть в документации к vk api)
    Ответ написан
  • Как привязать сворачивание блока к определенному блоку, а не ко всем?

    @tempick
    Чтобы понять, как это сделать, сначала пробуйте разбираться в своем же коде
    $('.name_filter').click(function () {            //при клике по блоку с классом ".name_filter"
            $(".content_filter").slideToggle('noshow');      //сворачиваем (или разворачиваем) блок с ценой
            $('.icon-down-arrow').toggleClass('icon-up-arrow');  //сворачиваем (или разворачиваем) блок с предложениями
     });


    Попробуйте немножко подумать, провести параллель и самому ответить на вопросы:
    1) Как сделать, чтобы при клике на элементе сворачивался только нужный блок
    2) Как сделать, чтобы при клике по любому другому элементу сворачивался любой другой блок.
    И тогда окажется, что это ведь и несложно :))
    Ответ написан
  • Почему не устанавливаются cookie?

    @tempick
    Тут прикол, вот в чём - куки устанавливаются в момент ответа сервера, а значение из $_COOKIE извлекается до ответа. То есть, несмотря на то, что в коде вы сначала устанавливаете куки, а потом выводите - в реальности это происходит в другом порядке. Если обновите страницу ещё раз - то должны увидеть значение. Если же оно так и осталось null - значит, AUser0 прав, и у вас действительно происходит какой-то вывод данных до того, как вы пытаетесь установить куки. Тут как раз-таки та же самая проблема - куки передаются вместе с ответом сервера браузеру. Если что-то вывести в ответ до вызова setcookie() - то куки просто не передадутся браузеру
    Ответ написан
    Комментировать
  • Как сделать одну форму для нескольких товаров на сайте?

    @tempick
    1) Оставляете только одну форму, остальные убираете.
    2) Добавляете в форму элемент <input type="hidden" name="serviceType">
    3) В каждый элемент кнопки добавляете атрибут data-service-type="followers-1" (followers-2, followers-3... по аналогии)

    4) При событии клика по кнопке "заказать в 1 клик" показываете модалку с той самой единственной формой, а в input из шага "2" вставляете значение атрибута "data-service-type" у самой кнопки. Получить это значение и передать в форму можно вот так:
    let serviceType = $(this).attr('data-service-type'); //получаем атрибут у кнопки
    $('input[name="serviceType"]').val(serviceType); //вставляем в форму

    5) Создаем php-скрипт (у вас для каждой формы свой php-скрипт, не надо так. Оставьте один скрипт, остальные удалите). И в этом скрипте получаем скрипт услуги вот так: $_POST['serviceType']
    6) С помощью switch можно работать с этим значением. Например, если вы отправляете письмо себе на почту, то примерно это будет так:
    $emailSubject = 'Услуга: ';
    switch($_POST['serviceType']) {
        case 'followers-1':
            $emailSubject .= '2000 подписчиков';
            break;
        case 'followers-2':
            $emailSubject .= '5000 подписчиков';
            break;
        case 'followers-3':
            $emailSubject .= '8000 подписчиков';
            break;
        // и так далее
        default:
            die('Такой услуги нет!');
    }
    Ответ написан
  • Получение опыта?

    @tempick
    Просто заходите на условный hh, ищете вакансии по вашим критериям и отписываетсь, что хотите стажировку. Если повезет, то вам еще и ставку дадут. Я в Перми так искал производственную практику, так мне ещё и ставку 250 руб/час сделали. При том что там битрикс, в котором я ничего не понимал и много рабочего времени просто проходил курсы по битриксу.
    Ответ написан
    Комментировать
  • Как из "2462кккк43453" вычти цифры только до буквы "к" тобишь 2462?

    @tempick
    let str = "2462кккк43453";
    let result = '';
    for(let i=0;i<str.length;i++) {
        if(!isNaN(str[i])) {
            result += str[i];
        } else break;
    }
    console.log(result);
    Ответ написан
    Комментировать