Перейти из форума на сайт.

НовостиФайловые архивы
ПоискАктивные темыТоп лист
ПравилаКто в on-line?
Вход Забыли пароль? Первый раз на этом сайте? Регистрация
Компьютерный форум Ru.Board » Интернет » Web-программирование » Основы PHP...

Модерирует : Cheery

 Версия для печати • ПодписатьсяДобавить в закладки
Страницы: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26

Открыть новую тему     Написать ответ в эту тему

Vladsvn

Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору

Цитата:
зачем пользоваться таким старьем? уже 7 работает гораздо быстрее.
Может быть, и надо было использовать семерку, но на 5.6 у меня есть отработанные модули, которые можно применить. А теперь переходить на 7 и начинать все с самого начала уже не рационально.
 
С другой стороны, повышение быстродействия ничего существенного не даст, оптимизация и удаление всего лишнего дают несравненно больше. Страница открывается за 0.2 сек. Нагрузка на хостинг ничтожна. Тогда какой смысл все переделывать? Какая там версия, известно только мне и Вам. А пользователю это вообще безразлично.
На хостинге сейчас 75-80% сайтов на пятерке.

Всего записей: 342 | Зарегистр. 07-09-2016 | Отправлено: 09:50 06-03-2023 | Исправлено: Vladsvn, 10:14 06-03-2023
Mavrikii

Platinum Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Vladsvn
ну ок.. но все равно, лучше не с

Цитата:
<a href="https://siness.ru /">Академия</a>
<a href=mailto:pro@journal.ru target=_blank rel=noopener>Журнал</a>

а использовать теги.. тут придется еще обработать атрибуты, убрать все ненужное и санировать нужные отрибуты (чтобы не было ничего, что может быть использовано как js код

Всего записей: 15117 | Зарегистр. 20-09-2014 | Отправлено: 11:23 06-03-2023
Vladsvn

Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору

Цитата:
тут придется еще обработать атрибуты, убрать все ненужное и санировать нужные отрибуты (чтобы не было ничего, что может быть использовано как js код
Вот это самый интересный вопрос!  
Что бы Вы конкретно убрали и что бы оставили?

Всего записей: 342 | Зарегистр. 07-09-2016 | Отправлено: 16:20 06-03-2023
Mavrikii

Platinum Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Vladsvn

Цитата:
Что бы Вы конкретно убрали и что бы оставили?

вы серьезно?? очевидно, что раз ссылка, то нужен href, но и его нужно обезопасить, так как можно сделать ссылку javascript: код, что сработает при клике.
 
но как эту ссылку будут вводить в вашей форме пользователи?

Всего записей: 15117 | Зарегистр. 20-09-2014 | Отправлено: 21:21 06-03-2023 | Исправлено: Mavrikii, 21:35 06-03-2023
Vladsvn

Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору

Цитата:
но как эту ссылку будут вводить в вашей форме пользователи?
Я надеялся сделать это обычным образом - как-то так:
https://ibb.co/JqZxt6q
 
Сложным оказался вопрос, и эту сложность я не предвидел. Вероятно, где-то этот вопрос разработан - ведь я же не первопроходец в этом деле.
 
 
 
 

Всего записей: 342 | Зарегистр. 07-09-2016 | Отправлено: 10:54 07-03-2023
Mavrikii

Platinum Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Vladsvn
для этого вам понадобится wysiwyg редактор на javascript.
а так - делаете со значением атрибута href обработку filter_var($var, FILTER_SANITIZE_URL)

Всего записей: 15117 | Зарегистр. 20-09-2014 | Отправлено: 10:57 07-03-2023
Vladsvn

Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Вот здесь http://fh7929mi.bget.ru/pop-2-7.html находится макет страницы с окном, всплывающим по клику на цветочек.  
(Я не стал приводить здесь его код, поскольку на сервере лучше видно).
 
Можно ли сделать так, чтобы находящийся в HTML форме всплывающего окна РНР код исполнялся только после клика на цветочек?

Всего записей: 342 | Зарегистр. 07-09-2016 | Отправлено: 19:45 19-03-2023
Mavrikii

Platinum Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Vladsvn

Цитата:
Можно ли сделать так, чтобы находящийся в HTML форме всплывающего окна РНР код исполнялся только после клика на цветочек?

изучать AJAX запросы. либо, если данные от него не нужны, можно с помощью js создать любой элемент, создающий запрос - iframe, картинку и тд и тп. ссылкой будет ссылка на скрипт, который может ничего не возвращать.

Всего записей: 15117 | Зарегистр. 20-09-2014 | Отправлено: 22:23 19-03-2023
Vladsvn

Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Типа такого?
    <script type="text/javascript">
        $(document).ready(function() {
            $.ajax('/abc.php');
        });
    </script>

Всего записей: 342 | Зарегистр. 07-09-2016 | Отправлено: 22:48 19-03-2023
Mavrikii

Platinum Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Vladsvn

Цитата:
Типа такого?

не совсем, по клику, а не по загрузке документа.

Всего записей: 15117 | Зарегистр. 20-09-2014 | Отправлено: 22:55 19-03-2023
Vladsvn

Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
А как сделать по клику? Можете написать?
 
Что бы из файла abc.php  во всплываемом окне воспроизводилось
 
echo '
<div class="popup_uv_2">
    <div class="item_uv_1">1</div>
    <div class="item_uv_2"><p> 2 Variant <a href="https://siness.ru /">Академия</a> Sora</p></div>
    <div class="item_uv_3">3</div>
</div>
';

Всего записей: 342 | Зарегистр. 07-09-2016 | Отправлено: 23:07 19-03-2023 | Исправлено: Vladsvn, 23:11 19-03-2023
Mavrikii

Platinum Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Vladsvn

Цитата:
Что бы из файла abc.php  во всплываемом окне воспроизводилось


Код:
$('.item_uv_2 a').on('click', function() {
   $('#result').load('abc.php', function() {
      // некоторый js код, если нужно
    });
   return false;
});

https://api.jquery.com/load/
по клику загрузит ответ из abc.php в элемент с id='result'.
а как сделать всплывающим или еще что - уже не задача php, а сами делаете с помощью css и js
 
если данные от abc.php как нужно еще обработать, то вместо .load используется .ajax

Код:
$.ajax('abc.php')
  .done(function(html) {
    $('#result').append(html);
  });

Всего записей: 15117 | Зарегистр. 20-09-2014 | Отправлено: 23:19 19-03-2023
newhk



BANNED
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
народ, привет!
Помогите с кодом, плиз
Т.З.
надо, чтобы при наборе несуществующего адреса NGINX открывал страницу с ошибкой.
Для внутренних адресов она должна быть одна, а для внешних (все что не внутренний) другая.
 
Погулил, там-сям и наваял вот такой код, но что-то не работает.
 

Код:
 
<?php
  echo("<div style='font size="10" font color="magenta";'>"404);
  function get_ip()
   {
    $value = '';
    if (!empty($_SERVER['HTTP_CLIENT_IP'])) {
        $value = $_SERVER['HTTP_CLIENT_IP'];
    } elseif (!empty($_SERVER['HTTP_X_FORWARDED_FOR'])) {
        $value = $_SERVER['HTTP_X_FORWARDED_FOR'];
    } elseif (!empty($_SERVER['REMOTE_ADDR'])) {
        $value = $_SERVER['REMOTE_ADDR'];
    }
    return $value;
   }
   $localIP = (^10\.[0-9]+\.[0-9]+\.[0-9]+)|(^192\.168\.[0-9]+\.[0-9]+)
   if (get_ip('value') == $localIP)
     echo("<div style='font size="5" font color="purpure";'>"Неправильный адрес. Попробуйте, например, этот - https://www.google.ru);
   else
    {
     echo("<div style='font size="3" font color="darkgrey";'>"Доступа нету...);
    }
?>
 

 
Помогите понять что не так, только с учетом того, что я не особо шарю в PHP... )

Всего записей: 400 | Зарегистр. 02-02-2009 | Отправлено: 17:22 29-03-2023 | Исправлено: newhk, 17:28 29-03-2023
Mavrikii

Platinum Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
newhk

Цитата:
 $localIP = (^10\.[0-9]+\.[0-9]+\.[0-9]+)|(^192\.168\.[0-9]+\.[0-9]+)

это - регулярное выражение (и то, записанное с ошибкой), вы не можете делать просто == с ним.
вместо

Цитата:
   $localIP = (^10\.[0-9]+\.[0-9]+\.[0-9]+)|(^192\.168\.[0-9]+\.[0-9]+)
   if (get_ip('value') == $localIP)

написать  

Цитата:
if (preg_match('#^(10\.[0-9]+\.[0-9]+\.[0-9]+)|(192\.168\.[0-9]+\.[0-9]+)$#m', get_ip()))

а можно и без регулярки

Цитата:
if (!filter_var(get_ip(), FILTER_VALIDATE_IP, FILTER_FLAG_NO_PRIV_RANGE | FILTER_FLAG_NO_RES_RANGE))

 
ну и в echo хрень написана..вы, похоже, не только php не знаете, но и html с css тоже.
 

Цитата:
  echo("<div style='font-size:10px, color:magenta'>404</div>");
// пропущено
 
   if (!filter_var(get_ip(), FILTER_VALIDATE_IP, FILTER_FLAG_NO_PRIV_RANGE | FILTER_FLAG_NO_RES_RANGE)))
   {
     echo "<div style='font-size:5px, color: purpure'>Неправильный адрес. Попробуйте, например, этот - https://www.google.ru</div>";
    }
    else
    {
     echo "<div style='font-size:3px, color: darkgrey;'>Доступа нету...</div>";
    }

 
с размерностью единиц сами разберитесь, как и с вложенностью кавычек, как это делается.

Всего записей: 15117 | Зарегистр. 20-09-2014 | Отправлено: 21:02 29-03-2023
newhk



BANNED
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору

Цитата:
вы, похоже, не только php не знаете, но и html с css тоже

CSS - однозначно нет, HTML - немного
 
Спасибо!
 
Я тут нарыл и методом тыка получилось практически то что мне нужно.

Код:
 
<?php
  header('Content-Type: text/html; charset= utf-8');
  setlocale(LC_ALL, 'ru_RU.65001', 'rus_RUS.65001', 'Russian_Russia. 65001', 'russian');
  echo('<p style="color: white; text-align: center; font-size: 40px">.</p>');
  echo('<p style="color: magenta; text-align: center; font-size: 120px">404</p>');
  echo "\n";
  function get_ip()
   {
    $value = '';
    if (!empty($_SERVER['HTTP_CLIENT_IP'])) {
        $value = $_SERVER['HTTP_CLIENT_IP'];
    } elseif (!empty($_SERVER['HTTP_X_FORWARDED_FOR'])) {
        $value = $_SERVER['HTTP_X_FORWARDED_FOR'];
    } elseif (!empty($_SERVER['REMOTE_ADDR'])) {
        $value = $_SERVER['REMOTE_ADDR'];
    }
    return $value;
   }
   /*$localIP = '(^10\.[0-9]+\.[0-9]+\.[0-9]+)|(^192\.168\.[0-9]+\.[0-9]+)';*/
   $localIP = '(^172\.23\.[0-9]+\.[0-9]+)';
   if (preg_match($localIP, get_ip(), $matches, PREG_OFFSET_CAPTURE))
     echo('<p style="color: darkblue; text-align: center; font-size: 20px">Неправильный адрес. Попробуйте, например, этот - "https://www.google.ru"</p>');
   else
    {
     echo('<p style="font-size: 20px; color: darkblue; text-align: center">Доступа нету...</p>');
    };
?>
 

 
Я только хз как сделать сверху отступ и как выделить ссылку в тексте.
Был бы HTML, я бы написал <a href='ссылка'</a>
А тут ХЗ

Всего записей: 400 | Зарегистр. 02-02-2009 | Отправлено: 09:57 30-03-2023 | Исправлено: newhk, 10:02 30-03-2023
Mavrikii

Platinum Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
newhk

Цитата:
А тут ХЗ

php тут не причем. как генерите html код, так и создаете его вывод. можно вообще

Код:
<?php
  header('Content-Type: text/html; charset= utf-8');
  setlocale(LC_ALL, 'ru_RU.65001', 'rus_RUS.65001', 'Russian_Russia. 65001', 'russian');
?>
<p style="color: white; text-align: center; font-size: 40px">test</p>
<p style="color: magenta; text-align: center; font-size: 120px">404</p>
 
<?php
// продолжается
 

Всего записей: 15117 | Зарегистр. 20-09-2014 | Отправлено: 10:02 30-03-2023
Vladsvn

Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Добрый вечер!
 
В статье, посвященной защите  информации, говорится, что всю инфу, вводимую пользователем через форму ввода, нужно сразу  обрабатывать вот такой функцией:
 
    function test_input($data) {
        $data = trim($data);
        $data = stripslashes($data);
        $data = htmlspecialchars($data);
        return $data;
    }
 
Меня удивило использование  stripslashes. Это действительно нужно?
 
Я попробовал сделать так:
    function test_input($data) {
        $data = trim($data);
        addslashes($data);
        $data = htmlspecialchars($data);
        return $data;
    }
 
Для теста разместил в форме код JS-скрипта. После обработки этой функцией записал результат в текстовый файл. И получил в нем вот что:
&lt;script&gt; const checkboxes = [...document.querySelectorAll('[type=&quot;checkbox&quot;]')]; checkboxes.forEach(box =&gt; {     box.addEventListener('change', async () =&gt; {         let form = new FormData();         checkboxes.forEach(el =&gt; form.append(el.id, el.checked ? 'checked' : 'zero'));         let response = await fetch('storage.php', {method: 'POST', body: form});         response.ok ? console.log(`Всё пучком`) : console.log(`Засада`);     }); }); &lt;/script&gt;
 
Никакого экранирования я тут вообще не вижу.
 
Или так и должно быть?

Всего записей: 342 | Зарегистр. 07-09-2016 | Отправлено: 21:51 10-05-2023
Mavrikii

Platinum Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Vladsvn

Цитата:
addslashes($data);

почитайте описание функции, она возвращает измененные данные, а не модифицирует значение переменной в аргументе.
 

Цитата:
Меня удивило использование  stripslashes. Это действительно нужно?

зависит от настроек в php.ini статья, наверняка, древняя, и речь идет о ситуации когда включены magic_quotes_gpc
 

Цитата:
Я попробовал сделать так:

и зачем то заменили stripslashes на addslashes?

Всего записей: 15117 | Зарегистр. 20-09-2014 | Отправлено: 23:50 10-05-2023
Vladsvn

Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
magic_quotes_gpc на хостинге отключен.
 

Цитата:
и зачем то заменили stripslashes на addslashes?

 
Я сравнивал эти функции, для наглядности занеся их в ворде в две колонки таблицы. И смысла понять не смог.
 
stripslashes - Возвращает строку с вырезанными обратными слешами. (\' становится ' и т.п.) Двойные обратные слеши (\\) становятся одинарными (\). Зачем это в моем случае? Вроде бы, совершенно ни к чему.
 
addslashes - Возвращает строку с обратным слешом перед символами, которые нужно экранировать. Экранируются одиночная кавычка ('), двойная кавычка ("), обратный слеш (\) и NUL (NULL байт). В этом может быть смысл, но только в реальности ничего не заэкранировалось.
 
Так что ничего не понятно - какими функциями обрабатывать.
 
 

Всего записей: 342 | Зарегистр. 07-09-2016 | Отправлено: 09:35 11-05-2023
Mavrikii

Platinum Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Vladsvn

Цитата:
Зачем это в моем случае? Вроде бы, совершенно ни к чему.

затем, что добавление делает безопасным использование внтури строки, когда ваши кавычки могут быть закрыты чужими.
 
стрип их удаляет, если есть - например включены magic_quotes_gpc
эдд добавляет, если вам нужно использовать эти данные в своей строке - например в SQL запросе.

Всего записей: 15117 | Зарегистр. 20-09-2014 | Отправлено: 09:53 11-05-2023
Открыть новую тему     Написать ответ в эту тему

Страницы: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26

Компьютерный форум Ru.Board » Интернет » Web-программирование » Основы PHP...


Реклама на форуме Ru.Board.

Powered by Ikonboard "v2.1.7b" © 2000 Ikonboard.com
Modified by Ru.B0ard
© Ru.B0ard 2000-2024

BitCoin: 1NGG1chHtUvrtEqjeerQCKDMUi6S6CG4iC

Рейтинг.ru