Ответы пользователя по тегу PHP
  • Вычисления datetime if()?

    cyber-jet
    @cyber-jet
    Мой рецепт, хранить в базе Unix Timestamp, time() - чтобы получить Unix timestamp в php. Но если так случилось что в базе дата хранится в формате date time, есть два способа это исправить, либо сделать запрос к базе с функцией конвертации SELECT UNIX_TIMESTAMP(dateTimeFieldName), либо воспользоваться функцией php strtotime($mysqltime) для конвертации в Unix timestamp.

    PS: "...отсчитать определённое время, например 30 минут чтобы сделать определённое действие..."
    if($date < date("Y-m-d H:i:s", time() - 1800) ) {
       // Ранее 1800 сек от текущего времени
    }

    или:
    if(strtotime($date) < (time() - 1800) ) {
       // Ранее 1800 сек от текущего времени
    }
    Ответ написан
  • Как создать матрицу в php?

    cyber-jet
    @cyber-jet
    В этом блоке точно ошибки нет:
    $students = [
                ['name' => 'John', 'age' => 20, 'grade' => 'A'],
                ['name' => 'Jane', 'age' => 22, 'grade' => 'B'],
                ['name' => 'Alex', 'age' => 19, 'grade' => 'C']
          ];
    Ответ написан
    Комментировать
  • Как удалить из массива?

    cyber-jet
    @cyber-jet
    Если нужно в цикле удалить
    $arr[1]['one'] = "1";
    $arr[1]['two'] = "2";
    
    echo '<pre>';
    print_r($arr);
    echo '</pre>';
    
    // Array
    // (
    //     [1] => Array
    //         (
    //             [one] => 1
    //             [two] => 2
    //         )
    // )
    
    echo '<form method="POST">';
    foreach ($arr as $key => $row) {
    	foreach ($row as $val => $name) {
    		echo "<button name='del[$key]' value='$val'/>удалить $name</button>";
    	}
    }
    echo "</form>";
    
    if ($_POST && $_POST['del'] && is_array($_POST['del'])) {
    
    	echo '<pre>';
    	print_r($_POST['del']);
    	echo '</pre>';
    
    	// Array
    	// (
    	//     [1] => one
    	// )
    
    	foreach ($_POST['del'] as $k => $v) {
    		unset($arr[$k][$v]);
    	}
    }
    
    echo '<pre>';
    print_r($arr);
    echo '</pre>';
    
    // Array
    // (
    //     [1] => Array
    //         (
    //             [two] => 2
    //         )
    // )
    Ответ написан
  • Как исправить ошибку с бд?

    cyber-jet
    @cyber-jet
    Очевидно, что поле формы с множественной загрузкой файлов выдает массив, чтобы записать значения в базу надо всё-же :
    $uploaddir = "../uploads-gallery";
    
    foreach ($_FILES["images"]["error"] as $key => $error) {
        if ($error == UPLOAD_ERR_OK) {
            $tmp_name = $_FILES["images"]["tmp_name"][$key];
    
            // Функция basename() помогает защититься от атак на файловую систему;
            // иногда требуется дополнительная проверка или очистка имени файла
            $name = basename($_FILES["images"]["name"][$key]);
            move_uploaded_file($tmp_name, "$uploaddir/$name");
            ... функция записи в таблицу имени файла ($_FILES["images"]["name"][$key]);
        }
    };
    Ответ написан
    Комментировать
  • Fetch как передать строку в php?

    cyber-jet
    @cyber-jet
    Если нужно получить только строку:
    const photo = "https://blablabla.ru/sss.jpg?us=22&qq=11";
    fetch("https://example.site/example/example.php", {
      method: "POST",
      body: photo,
    });

    $string = file_get_contents("php://input");
    echo $string;
    Ответ написан
    Комментировать
  • Как с помощью php отдать react?

    cyber-jet
    @cyber-jet
    На проде обычно js код приложения проходит обфускацию и минификацию, понятно что это от не гарантия, но просто так открыть код и причитать не получится.

    В SPA всё приложение отдается целиком, дальше общается с бэком через api, получая только данные, в зависимости от состояния и полученных данных приложение отображает информацию. Т.е. в приложении изначально данных нет. Более того, приложение не обязательно должно общаться только с одним бэкм(доменом), оно может слать запросы куда угодно, где будут готовы дать ему ответ, таким образом реализуется структура микросервисов, когда каждый сервис выполняет свою задачу независимо от другого. Например учётные записи пользователей, номенклатура, остатки и цены, заказы - это всё могут быть независимые сервисы.

    Если не хотите всем подряд светить js файл с аппом, сделайте стандартную страницу авторизации на php, авторизованным пользователям в ответ отдавайте js файл приложения, который после получения будет запускаться.
    Ответ написан
    Комментировать
  • Как получить файл из формы с input type="file" в PHP или в целом получить файл любым способом?

    cyber-jet
    @cyber-jet
    Массив файлов, передаваемых формой выводится в $_FILES, ключом является название поля, например input type="file" name="avatar", тогда чтобы получить путь к файлу из временной директории:
    <?
    $tmp_dir = '/var/www/uploads/'; // путь к временной директории из настроек php.ini
    $tmp_file = $tmp_dir . basename($_FILES['avatar']['name']); // путь к временному файлу
    ?>

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

    Инфа на php.net.
    Ответ написан
    6 комментариев
  • Вылетает ошибка Index of / при попытке запустить форму. Что не так?

    cyber-jet
    @cyber-jet
    Предполагаю, что у вас нет в корне файла .htaccess или в нем не указана директива, указывающая на индексный файл директории? Попробуйте указать явно экшн файл в заголовке формы:
    <form action="/index.php" method="get">
    Ответ написан
    Комментировать
  • Можно ли так сделать на js и php?

    cyber-jet
    @cyber-jet
    Самое простое, результат выполнения php скрипта сохранять в базе. При помощи js запрашивать результат, с определенной периодичностью, например, раз в минуту.
    Ответ написан
    Комментировать
  • Как из foreach получить первое значение?

    cyber-jet
    @cyber-jet
    // первый элемент массива
    $first = $array[ 0 ];
    
    // текущий элемент массива, обычно первый, если не была перестановка указателя при помощи next(), prev()
    $first = current( $array );
    Ответ написан
    Комментировать
  • Как сделать кастомною верстку контеннта в Joomla?

    cyber-jet
    @cyber-jet
    Переопределение компонентов делается прямо из админки, менджер компонентов, менеджер шаблонов, в нужном шаблоне в переопределение компонентов зайти...
    Ответ написан
    Комментировать
  • Как добавить кастомный код в заголовок меню в Joomla 2.5?

    cyber-jet
    @cyber-jet
    Возможно я не уловил суть проблемы, но каждый пункт меню имеет свой собственный id, дальше сами думайте что с этим делать...
    Ответ написан
  • Как распарсить Яндекс.Маркет?

    cyber-jet
    @cyber-jet
    не проще парсить какой нибудь из известный магазинов? А вообще вся беда интернет-магазинов именно в этом, в характеристиках одно а на деле другое, и даже в яндекс-маркете. Подумайте.
    Ответ написан
  • Как сделать каталог для фирмы?

    cyber-jet
    @cyber-jet
    Joomla + Zoo - каталог. Мльтиязычность и новостные разделы в Joomla встроены.
    Ответ написан
    Комментировать
  • Где место в коде, когда VirtueMart отправляет новый заказ в бд?

    cyber-jet
    @cyber-jet
    Не сосем логично делать так как вы сказали, нужно чтобы прошло подтверждение заказа и оплата для начала. В вашем случае я бы предложил написать скрипт, который бы запускался по расписанию и делал нужные вещи, но только после того как заказ становится confirmed или даже shipped.
    Ответ написан
  • Какую бесплатную CMS выбрать?

    cyber-jet
    @cyber-jet
    joomla! + jbzoo
    Ответ написан
    Комментировать
  • Почему при логине в админку Joomla выдается 404-ая ошибка (какие бы данные ни вводил)?

    cyber-jet
    @cyber-jet
    попробуйте отключить поддержку ssl, исправив строку в файле конфигурации configuration.php:
    public $force_ssl = '0';
    Ответ написан
    1 комментарий
  • В какой CMS интернет-магазина есть синхронизация с 1С?

    cyber-jet
    @cyber-jet
    Есть немного платный модуль для VirtueMart для Joomla через CommerceML. Модуль со схожими функциями есть и для OpenCart. Bitrix нужной комплектации для организации Интернет-торговли обойдётся в 56к рублей + год бесплатной поддержки и обновления, потом за обновления нужно будет платить. Но платформа конечно крутая, там даже есть мобильные приложения для управления и для совершения покупок. Но как по мне, за такие деньги лучше написать своё приложение, используя "фреймвок".
    Ответ написан
  • Как убрать карусель с некоторых страниц Joomla?

    cyber-jet
    @cyber-jet
    Оставьте её только на главной странице, в чём проблема? Эта возможность является базовой функцией. Найдите слайдер в менеджере модулей, и в настройках модуля в разделе "привязка к пунктам меню" выберите нужное.
    Ответ написан
    Комментировать
  • Как на PHP отправить POST запрос программе через форму на сайте?

    cyber-jet
    @cyber-jet
    Самое простое, без каких либо проверок на заполнение, для отправки на почту:
    <form id="order_form" method="post">
        <input type="text" name="order_phone" value="1234567" />
        <input type="submit" name="order_submit" value="Отправить" />
    </form>
    
    if (isset ($_POST['order_phone'])) {
    	$to = 'Адрес ящика получателя'
    	$subject = 'Заполнена контактная форма с '.$_SERVER['HTTP_REFERER'];
    	$subject = "=?utf-8?b?". base64_encode($subject) ."?=";
    	$message = "Номер телефона: ".$_POST['order_phone'];
    	$headers = 'Content-type: text/plain; charset="utf-8"';
    	$headers .= "MIME-Version: 1.0\r\n";
    	$headers .= "Date: ". date('D, d M Y h:i:s O') ."\r\n";
    	mail($to, $subject, $message, $headers);
    	echo ('<p style="color: green">Ваше сообщение получено, спасибо!</p>');
    	$_POST['order_phone'] = '';
    }
    Ответ написан
    1 комментарий