Ответы пользователя по тегу PHP
  • Как проверить переменную, содержит ли она вначале заданное число?

    pligin
    @pligin
    быдлокодер
    использовать регулярку
    готовый пример https://regex101.com/r/MUHU9v/1
    5e3315cfc6c54045127806.png
    if(preg_match("#^(8909|8961|8966)[0-9]{6,14}$#", $phone) ){
         return $phone;
    }else{
         return false;
    }


    регулярка для всевозможных мобильных кодов
    ^\+(91|994|82|372|375|374|44|998|972|66|90|81|1|507|7|77|380|371|370|996|9955|992|373|84)[0-9]{6,14}$
    Ответ написан
    Комментировать
  • Как можно заюзать прокси для curl?

    pligin
    @pligin
    быдлокодер
    установи тор на сервер и используй
    curl_setopt($ch, CURLOPT_PROXY, '127.0.0.1:9050');
         curl_setopt($ch, CURLOPT_PROXYTYPE, CURLPROXY_SOCKS5);

    а так меняем IP, если предыдущий будет блокирован
    function tor_change_proxy(){
      $fp=fsockopen('127.0.0.1','9051',$error_number,$err_string,10);
      if(!$fp){
          $received = "240 Error while changing Tor proxy identity: {".$error_number."} : {".$err_string."}<br />";
      }else{
          fwrite($fp,"AUTHENTICATE\n" );
          $received=fread($fp,512);
          fwrite($fp,"signal NEWNYM\n" );
          $received=fread($fp,512);
      }
      fclose($fp);
      $tor = explode(' ',$received);
      return $tor[0];
      }
    Ответ написан
  • Php cUrl ничего не возвращает, а в браузере все ок. Как исправить?

    pligin
    @pligin
    быдлокодер
    json_decode() возвращает объект.
    echo выводит строку.
    Поэтому echo $data = json_decode($result); ничего не выводит.
    Чтобы увидеть содержимое полученного результата
    $data = json_decode($result);
    print_r($data);
    Ответ написан
    Комментировать
  • Почему не получается парсить баланс своего яндекс кошелька?

    pligin
    @pligin
    быдлокодер
    Простой сапописный PHP класс для работы с кошельком Яндекс Денег
    https://drive.google.com/file/d/1AHb1buWaUpAQ0FlXS...
    include 'yandex.class.php;
    $ya = new yandex('YandexAccessToken');
    $r = $ya->accountInfo();
    if (!empty($r)){
         $balance = $r['balance'];
    }

    Как создать приложение и получить токен:
    - Скачать файлик yandex_uri.php с простой формой и положить в корень сайта
    https://drive.google.com/file/d/1AQa96ZG9OqOKgF0o5...
    - Создание приложения:
    Перейти по адресу https://money.yandex.ru/myservices/new.xml и создать приложение:
    - Название приложения: любое
    - Адрес сайта: адрес Вашего сайта
    - Email для связи: любой
    - Redirect URI: https://your_site.ps/yandex_uri.php
    - Использовать проверку подлинности приложения (OAuth2 client_secret): отметить
    - нажать "Подтвердить"
    На следующей странице Вам выдадут client_id и client_secret - сохраните их
    - Получение токена:
    - Откройте файл yandex_uri.php и вставьте вместо THIS_CLIENT_ID полученный ранее client_id и вместо THIS_CLIENT_SECRET полученный ранее client_secret. Сохраните файл
    - Перейдите по адресу https://your_site.ps/yandex_uri.php нажмите кнопку "Get Code"
    - На странице авторизации вашего приложения укажите суточный лимит, который можно использовать через приложение и разрешите доступ.
    - После предыдущего действия Вы вернетесь на https://your_site.ps/yandex_uri.php, нажмите кнопку "Get Token", после чего вы попадете на страницу яндекс денег, где будет указан Ваш access_token - сохраните его.
    Файл yandex_uri.php удалить
    Ответ написан
    Комментировать
  • Почему я не могу получить email через Яндекс.Деньги?

    pligin
    @pligin
    быдлокодер
    Email не участвует в формировании подписи.
    Label и secretKey поменяйте местами
    5e30b1000c477894810215.jpeg
    Для получения email в оповещении нужно его запросить в форме (сделано) и передавать данные по HTTPS. Если на сайте имеется https, но email не приходит, проверьте с каким протоколом указана ссылка для HTTP оповещений на странице настроек https://money.yandex.ru/myservices/online.xml . Возможно там Вы указали http, а не https .
    Как получите используйте его как угодно, он тут $_POST['email']
    Ответ написан
    Комментировать
  • Как принимать SMS сообщения через PHP?

    pligin
    @pligin
    быдлокодер
    Ты имеешь ввиду сим банк. Держать его будет накладно по деньгам. Лучше использовать уже готовые сервисы временных виртуальных номеров, которые предоставляют API
    Ответ написан
    9 комментариев
  • Почему в журнал не записывается инфа об ошибках?

    pligin
    @pligin
    быдлокодер
    Не используйте кириллицу в названиях каталогов и файлов
    Ответ написан
    Комментировать
  • Кнопка автонажатия на php?

    pligin
    @pligin
    быдлокодер
    Если задерживать пользователя на этой странице нет смысла, то зачем делать нажатие на кнопку?
    Может сделать просто редирект на эту ссылку?
    Например:
    Header("Location:" .$path."/get_file.php?hash=".$hash);
    Ответ написан
    Комментировать
  • Как убрать пробелы по обе стороны от нужного символа?

    pligin
    @pligin
    быдлокодер
    Рассказал бы хоть откуда такие записи берутся и зачем.
    <?php
    $text = 'Название | Значение';
    $data = explode('|',$text);
    echo trim($data[0]).'|'.trim($data[1]);
    //из файла
    $lines = file('файл');
    foreach ($lines as $num => $line) {
    	$data = explode('|',$line);
        echo trim($data[0]).'|'.trim($data[1]);
    }
    Ответ написан
    Комментировать
  • Как реализовать алгоритм группировки массива по значению?

    pligin
    @pligin
    быдлокодер
    В итоге получается массив с днями недели в упорядоченном виде. Осталось только придумать функцию, которая определит, что дни идут подряд без перерыва и ставить "тире", иначе запятую. Это на телефоне писал))) Как буду у компьютера, додумаю
    $openingHours = [
                ['day' => 'tuesday', 'time' => '08:00-20:00'],
                ['day' => 'wednesday', 'time' => '08:00-20:00'],
                ['day' => 'thursday', 'time' => '10:00-20:00'],
                ['day' => 'friday', 'time' => '10:00-18:00'],
                ['day' => 'saturday', 'time' => '10:00-16:00'],
                ['day' => 'sunday', 'time' => '10:00-16:00'],
                ['day' => 'monday', 'time' => '08:00-20:00'],
            ];
    $template = ['sunday','monday','tuesday','wednesday','thursday','friday','saturday'];
    $new = array();
    foreach ($openingHours as $key => $value){
    	$new[$value['time']][] = $value['day'];
    	$new[$value['time']] = array_intersect($template,$new[$value['time']]);
    }
    print_r($new);

    Array
    (
        [08:00-20:00] => Array
            (
                [1] => monday
                [2] => tuesday
                [3] => wednesday
            )
    
        [10:00-20:00] => Array
            (
                [4] => thursday
            )
    
        [10:00-18:00] => Array
            (
                [5] => friday
            )
    
        [10:00-16:00] => Array
            (
                [0] => sunday
                [6] => saturday
            )
    )

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

    pligin
    @pligin
    быдлокодер
    А я не вижу в CURL proxy...
    Поставь на сервер прокси Тор и добавь в CURL
    curl_setopt($ch, CURLOPT_PROXY, 'localhost:9050');
    curl_setopt($ch, CURLOPT_PROXYTYPE, CURLPROXY_SOCKS5);

    может поможет ;)
    Ответ написан
  • При добавлении в БД не добавляется скидка на партнёра, как исправить?

    pligin
    @pligin
    быдлокодер
    $newid не определена
    может вместо $newid в запросе нужно использовать $mpid ?
    больше ничего не могу сказать, т.к. формы я не видел и не знаю какие данные из нее приходят
    Ответ написан
  • Как вывести таблицу MySQL в html таблицу?

    pligin
    @pligin
    быдлокодер
    Простой вариант на PHP
    $result = mysqli_query("SELECT * FROM `table` ORDER BY `id` DESC LIMIT 15");
    if(mysqli_num_rows($result) > 0){
        echo '<table><tr><td>ID</td><td>DATA</td></tr>';
        while($data = mysqli_fetch_array($result)){
            echo '<tr><td>'.$data['id'].'</td><td>'.$data['data'].'</td></tr>';
        }
        echo '</table>';
    }else{
        echo 'Ничего нет (';
    }

    В HTML можно еще при помощи JS впихнуть данные, которые можно получить из PHP файла
    Ответ написан
    Комментировать
  • Как отправить данные без перезагрузки страницы и использования action в form?

    pligin
    @pligin
    быдлокодер
    js использует url, а не пути файлов как php. У тебя адрес получается https://site/this/./mail.php
    В отправке данных должен быть url
    url: "https://site/mail.php"
    или
    url: "/mail.php" - это от корня домена, т.е. будет использован https://site/mail.php
    или
    url: "mail.php" - будет использовано текущее расположение. https://site/this/mail.php
    И не забывай, что многие отключают js и для них нужно использовать стандартный post или get. Поэтому action тебе в этом понадобится. В url парсишь action формы и отправляешь туда данные, а если js отключен, то работает обычная форма.
    Как буду у компьютера напишу тут простую функцию jQuery для отправки любой формы на сайте.
    mail.php
    <?PHP
    if(!empty($_POST)){
        if($_POST['ajax'] == 1){//получили данные от JS, значит нужно вернуть JSON
            echo json_encode(array(
                'type' => 'success',
                'title' =>'Данные получены',
                'message' =>'Ваше имя '.$_POST['name'].', а телефон  '.$_POST['phone'].';)'));
        }else{
            echo 'Данные отправили';
            echo '<pre>';
            var_dump($_POST);
            echo '</pre>';
        }
    }else{
        echo 'Данных нет';
    }

    function.js - одна функция для отправки всех форм ;)
    $('form').submit(function() {
            var url = $(this).attr('action');
            var data = $(this).serialize()+'&ajax=1';
            $.post(url, data, function(result){
                console.log(result);
                swal(result.title, result.message, result.type)
            }, 'json');
            return false;
        });

    index.html
    <!DOCTYPE html>
    <html lang="ru">
    <head>
    	<!-- Required meta tags -->
    	<meta charset="utf-8">
      	<meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">
      	<link href="style.css" rel="stylesheet" type="text/css">
    	<title>Форма</title>
    </head>
    <body>
    
    <form class="message__form" action="mail.php" method="post">
            <!-- Hidden Required Fields -->
          		<input type="hidden" name="project_name" value="Site Name">
          		<input type="hidden" name="admin_email" value="......@gmail.com">
          		<input type="hidden" name="form_subject" value="Form Subject">
        		<!-- END Hidden Required Fields -->
            <p>
              <label class="visually-hidden" for="name">Ваше имя</label>
              <input class="name" id="name" type="text" name="name" value="" placeholder="Ваше имя" required>
            </p>
            <p>
              <label class="visually-hidden" for="phone">Ваше телефон</label>
              <input class="phone" id="phone" type="text" name="phone" value="" placeholder="Ваше телефон" required>
            </p>
            <button class="button-send button" type="submit" name="button">Отправить</button>
          </form>
    <script
      src="https://code.jquery.com/jquery-3.4.1.min.js"
      integrity="sha256-CSXorXvZcTkaix6Yvo6HppcZGetbYMGWSFlBw8HfCJo="
      crossorigin="anonymous"></script>
      <script src="https://unpkg.com/sweetalert/dist/sweetalert.min.js"></script>
      <script src="functions.js"></script>
    </body>
    </html>

    5d14fff38544b682702524.png
    Ошибка Ваша в том, что Вы не подключили jQuery и поэтому Ваша функция отправки не работала.
    При появлении вопросов можете смело писать на моем форуме PSWeb.ru
    Ваша форма в работе https://lolik777.psweb.ru/
    Ответ написан
  • Как сделать чтоб php скрипт сам выполнялся?

    pligin
    @pligin
    быдлокодер
    На моем сервере на бесплатном тарифе есть все, что нужно для работы. Просто у меня дохрена свободных ресурсов и я их раздаю и продаю, если нужно дохрена)
    Описание хостинга PSWeb
    Заказать
    Ответ написан
    Комментировать
  • Как правильно склеить данные у одинаковых ключей?

    pligin
    @pligin
    быдлокодер
    Ключи массива не могут быть одинаковыми
    Ответ написан
    Комментировать
  • Как задать условие PHP?

    pligin
    @pligin
    быдлокодер
    <?=!empty($APPLICATION->ShowViewContent('sotbit_seometa_bottom_desc'))?$APPLICATION->ShowViewContent('sotbit_seometa_bottom_desc'):$arSection["~UF_CATALOG_HTML"];?>

    Дословно:
    Если
    $APPLICATION->ShowViewContent('sotbit_seometa_bottom_desc')
    существует и не равна 0 и не false, то вынести
    $APPLICATION->ShowViewContent('sotbit_seometa_bottom_desc')
    иначе вывести
    $arSection["~UF_CATALOG_HTML"]
    Ответ написан
    Комментировать
  • Как поймать результаты GET запроса, которые пришли после выполнения POST запроса?

    pligin
    @pligin
    быдлокодер
    Суть не ясна.
    Но, если разрабатываешь ты, то ты должен в нужный тебе GET впихнуть нужный параметр и по нему ловить...
    А так я не могу даже представить где можно использовать то, что ты описал...
    Ответ написан
    Комментировать