• Как прибавить к текущей дате дни?

    Newto
    @Newto
    $plus_days = 3;
    $sql = "INSERT INTO `order` SET ";
    $sql .= "user_id = '" . (int)$user_id . "', ";
    $sql .= "status = '0', ";
    $sql .= "date = NOW()";
    $sql .= "date_end = NOW() + INTERVAL {$plus_days} DAY";
    $db->query($sql);
    Ответ написан
  • Как в столбец SQL-таблицы записать массив?

    Newto
    @Newto
    $a = ['first' => 1, 'second' => 2, 'third'];
    $a = json_encode($a);

    Записываете $a в базу. А когда достаете, делаете
    $a = json_decode($a);
    и получаете свой массив.

    Так, пожалуй, проще всего.

    Если этот ответ вам покажется верным, то отметьте решением ответ от mletov, он написал, по сути, то же самое, но с упоминанем xml варианта.
    Ответ написан
  • Как выходить из ситуации, когда 2 действия возвращают один результат?

    Newto
    @Newto
    Просто проверяйте формат входящего URLa, перед проверкой удаляйте лишние слеши. И если он валиден, то делайте с ним дальше что хотите, тогда не придется писать две ошибки вместо одной.
    Ответ написан
    Комментировать
  • Как прикреплять пользователей к проектам?

    Newto
    @Newto
    В таблицу projects добавьте поле user_id и записывайте туда id пользователя из таблицы users.
    Ответ написан
  • Как правильно отправлять почту через PHP?

    Newto
    @Newto
    https://github.com/PHPMailer/PHPMailer

    Библиотека умеет оправлять почту через удаленный SMTP, вам останется только её подключить и указать реквизиты доступа к вашему почтовому серверу.
    Ответ написан
    Комментировать
  • Нормально ли в PHP определять переменную при вызове функции в списке аргументов?

    Newto
    @Newto
    В данном случае определять переменную $matches не нужно. Если вы посмотрите на документацию к функции preg_match (https://www.php.net/manual/ru/function.preg-match.php) то увидите валидный пример кода:

    <?php
    preg_match('/(foo)(bar)(baz)/', 'foobarbaz', $matches, PREG_OFFSET_CAPTURE);
    print_r($matches);
    ?>


    Эта переменная возникает из использования данной функции и пытаться определять её заранее не нужно. Если, конечно, этого не требуют особенности вашей программы.
    Ответ написан
    Комментировать
  • Как изменить тег а после ajax запроса?

    Newto
    @Newto
    $.post('/basket', 'checkbusket':1, function(data){
    	if(data == 'пусто'){  
    		вашаФункцияМодальногоОкна('сообщение');
    	} else {
    		location='/basket';
    	}
    })

    А в /busket проверяйте есть что в корзине или нет и в зависимости от проверки отдавайте 'пусто' или 'есть'.

    p.s. 'пусто' и 'есть' написал для наглядности, так, конечно, делать не надо, отдавайте 1 или 0.
    Ответ написан
    Комментировать
  • Как правильно создать шаблон пустого нового базового проекта?

    Newto
    @Newto
    Вам тут много чего могут насоветовать. Разные есть взгляды на построение файловой архитектуры на сервере.
    Лучшее решение -- это решение, которое примете вы сами. Можно придерживаться только нескольких правил:
    1. Отдельная папка для CSS. Не кладите CSS файлы туда, где лежит что-то еще.
    2. Отдельная папка для ОБЩЕГО js. Т.е. js который вы используете на более чем одной странице, а так же библиотека js функций должны лежать в отдельной директории. Если для отдельных страниц вы используете отдельный js, который нигде более не используется, то его можно положить в папку с отвечающим за страницу php скриптом, как пример: /registration(тут register.php)/js/register.js
    3. Что касается php файлов, то тут так просто не ответить. Обычно есть автоматом подключающиеся файлы с классами и файлы отвечающие за отдельные модули(упрощённо -- страницы). Так, автоподключающиеся файлы вы можете положить в /auto/classes(как вариант), а файлы отвечающие за отдельные страницы структурировать по типу "page/page.php".

    Это если упрощённо.
    Ответ написан
    Комментировать
  • Почему JS-скрипт не срабатывает при выводе из PHP?

    Newto
    @Newto
    alert(thrownError + '\\r\\n' + xhr.statusText + '\\r\\n' + xhr.responseText);}
    Ответ написан
    1 комментарий
  • Глюк с header location, как это так?

    Newto
    @Newto Автор вопроса
    Ответ найден. Штука интересная: https://stackoverflow.com/questions/7485111/weird-...
    По ссылке про фейсбук. А гугл отправляет #

    Самое интересное, что при перенаправлении это все будет добавляться к адресу в любом случае, если только вы не добавите свой собственный якорь.
    Ответ написан
    Комментировать
  • Как изменить видимость блока с помощью php?

    Newto
    @Newto
    <?php
    
    if(!is_int(my_price_replace($price, $product))) {
        $text = "<div class='no-price' style='display:block;'>Текст пояснения</div>";
    } else {
        $text = "<div class="no-price" style="display:none;">Текст пояснения</div>";
    }
    ?>

    И <?= $text; ?> в нужном вам месте в вашем HTML.
    Ответ написан
    Комментировать
  • Как реализовать смену форм на одной странице?

    Newto
    @Newto


    <?php 
    if(isset($_POST['form1'])) print $form2; // где $form2 это <form><input type="hidden" name="form2"><input type=submit></form>


    И так сделаете сколь угодно форм.
    Ответ написан
  • Как контролировать логин пользователя с другого компьютера?

    Newto
    @Newto
    Это банальная проверка IP адреса.
    Пользователь заходит на сайт => сайт запоминает его IP. Если пользователь авторизовывается из под другого IP, то сайт шлет ему письмо, с темой типа "это вы или не вы?".

    С точки зрения программирования(на PHP) делается так: $_SERVER['REMOTE_ADDR'] -- ip пользователя, получается при заходе на сайт. Когда пользователь регистрируется -- его ip запоминается в базе данных. И потом, при каждом посещении сайт кем-бы то ни было, проверяется ip. Т.е. вы зашли на сайт, ввели логин и пароль, программа проверяет -- совпадает ли ваш ip с тем, который у вас был раньше и если нет, то отправляет вам письмо.

    Это в самом простом варианте. Однако обычно проверяют не только ip адрес, но и его привязку к локации. Т.е. есть множество ip адресов, которые привязаны, например, к Москве. Программа может смотреть -- ваш ip не совпадает, но он привязан к Москве и вы в прошлый раз заходили с ip, который тоже был московским -- тогда все ок. Но если вы зайдете на сайт и ваш ip будет привязан к Екатеринбургу, а в прошлый раз вы заходили с ip который был привязан к Москве, то сайт пришлет вам письмо, что произошел странный вход в систему.
    Ответ написан
    3 комментария
  • Как в цикле в последнем значении не ставить /?

    Newto
    @Newto
    $string = "1/2/3/";
    $string = substr($string, 0, strlen($string)-1);
    print $string;
    Ответ написан
    Комментировать
  • Как записать в кавычках переменную с индексом?

    Newto
    @Newto
    Правильных советов вам тут уже дали пару штук. Код от generate будет работать так же если вы там двойные кавычки поставите:

    $html = <<< HTML
    
    <div class="{$object["class"]}"></div>
    
    HTML;


    А вообще говоря обычно разработчики не парятся и просто переопределяют переменные. Так оно выглядит красивей и без всяких ухищрений с кавычками:
    $class = $object['class'];
    $string = "<div class='{$class}'></div>";
    Ответ написан
  • Не удается авторизоваться через curl, почему?

    Newto
    @Newto
    Все зависит от того, как построена авторизация на сайте.
    Попробуйте
    CURLOPT_HTTPHEADER => array(
        'Authorization: Basic ' . base64_encode($user.':'.$password)
    );
    Ответ написан
    Комментировать
  • Как защититься от спама на лендинге без потери конвертации?

    Newto
    @Newto
    Я могу вам предоставить идею как это сделать без сессий и кук. Но мне важно знать, вы сами понимаете как происходит защита отправки данных от ботов? Технология капчи -- она уже проверена годами и нормальных альтернатив ей просто нет и то что я вам смогу предложить, это изврат. Вопрос защиты от спама это вопрос о качестве исполнения капчи. А любая качественная капча -- это сессии и куки. Тут речь идет именно о возможности первой отправки вашей формы, а не о обработке нескольких. Если первая нармальная -- окей. Если нет -- то ошибка. Любой другой алгоритм по определению ущербен.
    Ответ написан
  • Как запустить несколько php скриптов одновременно?

    Newto
    @Newto
    function sendPostInstant(string $url, string $postfields)
        {
            $ch = self::init();
            
            curl_setopt($ch, CURLOPT_URL, $url);
            curl_setopt($ch, CURLOPT_POST, 1);
            curl_setopt($ch, CURLOPT_POSTFIELDS, $postfields);
            curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
            curl_setopt($ch, CURLOPT_TIMEOUT_MS, 1000);
            curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
            
            curl_exec($ch);
            
            self::close($ch);
        }
    $result = sendPostInstant('путь к вашему скрипту', '');

    Этот код запустит ваш скрипт столько раз, сколько вы вызовите sendPostInstant('путь к вашему скрипту', '').
    А в $result будет результат выполнения.
    Ответ написан
    Комментировать
  • Как обновить страницу у пользователя при выполнении условия?

    Newto
    @Newto
    Правильная реализация сказана выше Алексеем -- это нужно делать через сокеты.
    Более простая, но нежелательная реализация -- через аякс. Выглядит это примерно так: 1) администратор клацает галочку -> ставится запись в БД (admin_klazz = 1). На стороне пользователей стоит скрипт, который раз в, скажем, 10 секунд проверяет статус этой самой admin_klazz. Если admin_klazz изменяется с 0 на 1, то перезагружается страница. Но если это реляционная база типа MySQL то дергать ее каждые 10 секунд еще и многими пользователями -- очень плохая идея. Однако если у вас стоит, скажем, Redis, и вы будете записывать этот флаг admin_klazz в него, то это сильно минимизирует затраты серверных мощностей.

    Но, как я и сказал выше, правльно -- через сокеты. Остальное -- костыли.
    Ответ написан
    Комментировать
  • Как изменить кодировку символов в PHP PhantomJs?

    Newto
    @Newto
    А если вы на сайт перейдете просто через строку браузера, с GET переменными (типа https//site.com/?a=кириллица), то там символы нормально отобразятся? Просто если нет, то это не у вас проблемы, а на том сайте.
    А вот если нормально и вы забираете контент после GET запроса через, например, Curl, то это уже проблема на вашей стороне. В таком случае просто проставьте кодировку UTF-8.

    header('Content-Type: text/html; charset=utf-8');

    В скрипте.
    И
    <meta charset="utf-8" />
    в html коде страницы.

    Если не поможет и сайт куда вы отправляете запрос находится не на локалке, а в сети, то дайте ссылочку, я посмотрю :)
    Ответ написан
    Комментировать