Ответы пользователя по тегу PHP
  • Как безопасно указать строковый параметр при формировании JS на PHP?

    @zkrvndm
    Софт для автоматизации
    Знаете как я сам обычно делаю в таких случаях, чтобы не путаться во всей этой мешанине скобок? Все JavaScript функции сохраняю в отдельные файлы и при необходимости просто вставляю их через file_get_contents("function_name.js") и тогда не приходится парится с экранированием. По аналогии, можно все хранить в базе данных, если нужна скорость.
    Ответ написан
    Комментировать
  • Как при успешной отправке формы сделать всплывающее окно на ajax?

    @zkrvndm
    Софт для автоматизации
    Для начала сверстайте само модальное окно - ведь нельзя вывести то, чего нет. В интернете полно примеров модальных окон. Функцию для вызова модального окна пихайте внутрь success, на этом все.

    P. S. Если вам лень верстать модальное окно, то тогда берите что-то готовое, например AlertifyJS здесь подойдёт.
    Ответ написан
    2 комментария
  • Как отправить файл через FormData + phpMailer?

    @zkrvndm
    Софт для автоматизации
    Попробуйте отправить форму на чистом JS, возможно так заработает:
    <script type="text/javascript">
    
      // По готовности страницы, вешаем на форму обрабочтик onsubmit инлайново:
      document.addEventListener('DOMContentLoaded', function() {
        document.querySelector('form#FORM_ID').setAttribute('onsubmit', 'event.preventDefault(); form_send(this);');
      });
    
      // Фуцнкция для отправки формы на чистом JavaScript:
      function form_send(form) {
        var url = form.getAttribute('action') + '?time=' + new Date().getTime();
        var xhr = new XMLHttpRequest(); xhr.open('POST', url);
        xhr.onreadystatechange = function() {
          if (xhr.readyState === XMLHttpRequest.DONE) {
            if (xhr.status === 200) {
              form.setAttribute('onsubmit', 'event.preventDefault();');
              form.innerHTML = xhr.responseText;
            }
            else {
              alert('При отправке формы произошла ошбика, детали смотрите в консоли.');
              console.log('При отправке формы произошла ошбика, ниже объект с деталями ошибки:');
              console.dir(xhr);
            }
          }
        }
        xhr.send(new FormData(form));
      }
      
    </script>

    Замените FORM_ID на идентификатор вашей формы. Убедитесь, что у вашей формы прописан атрибут action.
    Ответ написан
    3 комментария
  • Обработка формы в php с неизвестными переменными?

    @zkrvndm
    Софт для автоматизации
    В массиве $_POST будут лежать все переданные переменные, вы можете спокойно их перебрать через foreach()
    Ответ написан
    Комментировать
  • Как правильно составить регулярное выражение?

    @zkrvndm
    Софт для автоматизации
    Попробуйте так:
    $str = 'http://{РАНДОМНЫЙ-ДОМЕН}/';
    $url = preg_replace('/^[^\/]//', '', $str);
    $url = preg_replace('/\/.*$/', '', $str);
    echo str_replace($url, 'новый_домен', $str);
    Ответ написан
    Комментировать
  • Как реализовать загрузку файлов на сервер?

    @zkrvndm
    Софт для автоматизации
    Вы можете это легко сделать на чистом JavaScript. Пример кода конкретно для вашей формы:
    <script type="text/javascript">
    
    	// По готовности страницы, вешаем на форму обрабочтик onsubmit инлайново:
    	document.addEventListener('DOMContentLoaded', function() {
    		document.querySelector('form#FORM_ID').setAttribute('onsubmit', 'event.preventDefault(); form_send(this);');
    	});
    
    	// Фцнкция для отправки формы на чистом JavaScript:
    	function form_send(form) {
    		var url = form.getAttribute('action') + '?time=' + new Date().getTime();
    		var xhr = new XMLHttpRequest(); xhr.open('POST', url);
    		xhr.onreadystatechange = function() {
    			if (xhr.readyState === XMLHttpRequest.DONE) {
    				if (xhr.status === 200) {
    					form.setAttribute('onsubmit', 'event.preventDefault();');
    					form.innerHTML = xhr.responseText;
    				}
    				else {
    					alert('При отправке формы произошла ошбика, детали смотрите в консоли.');
    					console.log('При отправке формы произошла ошбика, ниже объект с деталями ошибки:');
    					console.dir(xhr);
    				}
    			}
    		}
    		xhr.send(new FormData(form));
    	}
      
    </script>

    Разместите этот html-код на странице с вашей формой и не забудьте заменить FORM_ID на ID вашей формы!

    P. S. Кстати, есть еще один вариант, без использования JS - можно просто разместить вашу форму внутри iframe.
    Ответ написан
  • Возможен ли парсинг на php через ssh tunnel?

    @zkrvndm
    Софт для автоматизации
    Вы можете использовать file_get_contents() для парсинга https сайтов. При этом, данная функция совершенно спокойно позволяет при запросе передавать любые заголовки от User -Agent и Cookie до так нужных вам POST-параметров. Можно легко имитировать нужный вам браузер и о обходить какие-то простые защиты.

    POST-запрос, инструкция.

    Ответ приходит в виде обычного html-кода страницы, который можно записать в переменную и обработать.
    Ответ написан
    Комментировать
  • Как вывести данные из txt или excel файла на страницу сайта?

    @zkrvndm
    Софт для автоматизации
    Разумеется парсить данные проще и удобнее будет из .txt, но никак не из excel. Для формирования таблицы, используйте php функции explode() и for() - этого в принципе достаточно. При желании, можно слегка разгрузить свой сервер и переложить генерацию таблицы на браузер посетителя, соответственно если делать на JavaScript вам понадобятся функции split(), for() и jQuery.ajax() для подгрузки.
    Ответ написан
    1 комментарий
  • Как сделать систему пользователей?

    @zkrvndm
    Софт для автоматизации
    Самый просто вариант авторизации не требует базы данных вообще. Например, для каждого e-mail вы можете вычислять некую уникальную контрольную сумму и выдавать его при регистрации, как пароль. Далее, при авторизации просто проверяйте, что e-mail подходит к введенному паролю (контрольной сумме) и уже в зависимости от этого или авторизуйте или выдаете ошибку. Само с собой, алгоритм вычисления суммы должны знать только вы.

    Насчет же хранения паролей в текстовом файле, идея откровенно плохая, так как при определенных обстоятельствах вы можете просто потерять их из-за перекрестной записи или сбоя сервера. Лучше делать без текстовой базы вообще.
    Ответ написан
    Комментировать
  • Как отправить данные на сервер в формате json, с связанными списками?

    @zkrvndm
    Софт для автоматизации
    Просто напишите свою функцию для сериализации (для сбора данных с формы). Не понимаю, в чём проблема.
    Ответ написан
  • Как отправить HTML-форму без нажатия на клавишу подтверждения?

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

    @zkrvndm
    Софт для автоматизации
    Если знаете JavaScript вы можете написать UserScript для веб-версии мессенджера, но это не оптимальный вариант. Лучше используйте официальное API.
    Ответ написан
    Комментировать
  • Как отрпавить почту через PHP, если функция mail не работает?

    @zkrvndm
    Софт для автоматизации
    Используйте это решение:
    https://vk-book.ru/novaya-versiya-klassa-sendmails...
    Лично меня оно ещё ни разу не подводило.
    Ответ написан
    Комментировать
  • Как сделать отправку геолокации с сайта на Whatsapp?

    @zkrvndm
    Софт для автоматизации
    Для отправки сообщений по WhatsApp, есть два способа. Первый способ, это зарегистрироваться в их системе как компания и использовать официальное API. Второй вариант, это написать JavaScript-бота для веб-версии мессенджера, вариант в чем-то проще, если есть знания, конечно.

    P. S. Если знаний нет, а бот сильно нужен, пишите в личку, договоримся.
    Ответ написан
    Комментировать
  • Как обработать данные?

    @zkrvndm
    Софт для автоматизации
    То что вы написали называетя JSON и практически в каждом языке программирования есть инструменты для работы с ним, просто воспользуйтесь поиском.
    Ответ написан
    Комментировать
  • Fetch отправка запроса к php обработчику?

    @zkrvndm
    Софт для автоматизации
    Попробуйте использовать XMLHttpRequest:
    function send_form() {
      var send_text = 'Проверка';
      var xhr = new XMLHttpRequest();
      var body = 'text=' + encodeURIComponent(send_text);
      xhr.open('POST', 'send.php');
      xhr.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
      xhr.onreadystatechange = function() {
        if (xhr.readyState === XMLHttpRequest.DONE && xhr.status === 200) {
          alert(xhr.responseText);
        }
      }
      xhr.send(body);
    }
    Ответ написан
    Комментировать
  • Как создать таблицу на RedBeanPHP?

    @zkrvndm Автор вопроса
    Софт для автоматизации
    Проблема решена, надо было просто убрать параметр true после пароля. В интернета пишут, что если добавлять true, то таблицы создаются на лету, но практика показала, что все наоборот - без этого параметра таблицы создаются на лету, а вот с ним уже почему-то нет.
    Ответ написан
    Комментировать
  • Как преодолеть 504 Gateway Time-out при выполнении долгого запроса на Open Server?

    @zkrvndm
    Софт для автоматизации
    Запускайте скрипт импорта через консоль, при запуске php через консоль не должно быть ограничений по времени выполнения.
    Ответ написан
  • Как защитить исходный код?

    @zkrvndm
    Софт для автоматизации
    Защитить код довольно просто, нужно просто запутать его ровно на столько, чтобы расшифровка была не выгодной и не имела смысла - дешевле будет купить, чем распутать. Чем более говнокодистее код напишите, тем лучше.
    Ответ написан
  • Как спарсить данные со страницы?

    @zkrvndm
    Софт для автоматизации
    На php ты здесь ничего не спарсишь, так как контент на сайте подгружается динамически. Фактически та страница, которую ты загружаешь через php, еще не содержит контент. Для парсинга такого рода сайтов нужно использовать JavaScript. Как правило, код для парсинга оформляется в виде браузерного плагина. У тебя явно недостаточно навыков, чтобы создать расширение для парсинга, так что тебе прямая дорога на биржи фриланса.

    P. S. Как вариант, ты можешь использовать любой-другой ресурс для парсинга информации. Например, я однажды писал парсер для championat.com и там результаты матчей доступы сразу в теле страницы - их вполне можно спарсить на php, без лишних заморочек.
    Ответ написан