PHP.SU

Программирование на PHP, MySQL и другие веб-технологии
PHP.SU Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи

Страниц (8): « 1 2 3 4 5 [6] 7 8 »

> Найдено сообщений: 117
Perun Отправлено: 15 Марта, 2019 - 00:29:13 • Тема: Разные обработчики для одной формы • Форум: Вопросы новичков

Ответов: 6
Просмотров: 409
dcc0 пишет:
Цитата:
Может тогда просто обработчик создавать как отдельную функцию с и вызывать в теле основного файла из файла функций без всяких include/require?




Можно коды обработчиков положить в функции, в один файл и вызывать их по условию.
В примере выше - простое разделение кода - функции из файлов подгружаются по необходимости.
Вызов функции из основного файла нужен для того, чтобы при обращении напрямую к файлу с обработчиком, ненароком не выполнить код. Файл с функцией, которая в этом файле не вызывается, условно-относительно безопасен при прямом обращении к нему из браузера, в обход логики.

спасибО!
Perun Отправлено: 14 Марта, 2019 - 21:57:02 • Тема: Разные обработчики для одной формы • Форум: Вопросы новичков

Ответов: 6
Просмотров: 409
dcc0 пишет:
В родительском файле,
где код после условия:

PHP:
скопировать код в буфер обмена
 
if(isset($_GET['name2'])) {
require_once 'some_file.php';
somefuncion ();
}
 

Зачем тогда в основном файле и подключение файла и вызов этой же функции?
Может тогда просто обработчик создавать как отдельную функцию с и вызывать в теле основного файла из файла функций без всяких include/require?
Perun Отправлено: 14 Марта, 2019 - 21:23:14 • Тема: Разные обработчики для одной формы • Форум: Вопросы новичков

Ответов: 6
Просмотров: 409
dcc0 пишет:

Во втором случае проверяется
PHP:
скопировать код в буфер обмена
  1. if(isset($_GET['name1'])) {
  2. [b]код какой-то[/b]
  3. }


PHP:
скопировать код в буфер обмена
  1. if(isset($_GET['name2'])) {
  2. [b]код другой какой-то[/b]
  3. }


Если я правильно вопрос понял. Можно в одном файле обрабатывать.
Вроде правильно)) Общая обработка формы в одном файле, обработчики по нажатию каждой кнопки - раздельно.
Эти коды предполагается иметь каждый в отдельном файле.
Т.е. по условию, в зависимости от того, какая нажата кнопка можно подключать в код вместо код какой-то ссылку на необходимый обработчик через include?
Perun Отправлено: 14 Марта, 2019 - 18:07:09 • Тема: Разные обработчики для одной формы • Форум: Вопросы новичков

Ответов: 6
Просмотров: 409
Суть вопроса - есть форма. На ней несколько кнопок. По нажатию одной, происходит обработка в одном отдельном файле. Нажатие второй кнопки обрабатывается в другом отдельном файле.
Как это правильно организовать? Делать две отдельный формы или форму в форме и каждой указывать свой обработчик?
Perun Отправлено: 12 Марта, 2019 - 10:28:54 • Тема: Доступ в админку • Форум: Вопросы новичков

Ответов: 3
Просмотров: 275
andrewkard пишет:
да, рбак
https://ru[dot]wikipedia[dot]org/wiki/%D[dot][dot][dot]0%BB%D0%B5%D0%B9

Что это? ссылка ведет к каким-то ошибкам..

andrewkard пишет:
вообще не выводить
Я наверное совсем-совсем новичок... Из кода понял только, что предлагается манипуляция с адресной строкой. Тернарный оператор вижу, но конкретные операнды и операторы не знакомы...

Очевидно не время еще...
Буду пока пользоваться вариантом "в лоб"
Perun Отправлено: 11 Марта, 2019 - 17:21:38 • Тема: Доступ в админку • Форум: Вопросы новичков

Ответов: 3
Просмотров: 275
1. Почитал варианты какие есть в сети, в основном речь о доступе по IP. Не знаю, почему этот метод настолько популярный, но он явно очень ограничен в возможностях. Я так понимаю нет смысла говорить о недостатках, все и так понимают. Вопрос с доступом по подсетям. какому-то ограниченному диапазону - тоже не подходит. т.к. есть много чисто пользовательских банальных ограничений. Может есть на сегодня какой-то более актуальный способ кроме IP и входа по паролю?

2. Собственно сам механизм входа в админку. Насколько корректно и в каком именно виде, прямо в разметке указывать условие видимости панели/закладки админки? Например по какому-либо условию задавать блоку видимость через задание параметра стиля формы/тега?
Как вариант - по тому же айпишнику(айпишник -это просто пример для понимания о чем речь) в меню навигации для элемента списка АДМИН прописывать прямо в теге <li> стиль и в качестве изменяемого параметра вставлять заранее определенную php переменную, или лучше это делать через указание тоже в теге <li> конкретного класса(видимый/невидимый), а свойства прописывать через CSS в соответствующем файле?
Или оба варианта - масло масляное - без разницы?
Perun Отправлено: 10 Марта, 2019 - 17:55:11 • Тема: Не видно параметры в адресной строке • Форум: Вопросы новичков

Ответов: 2
Просмотров: 228
Мелкий пишет:
Совершенно не удивлюсь, если ваш браузер не показывает query string.

Собственно отсюда и вопрос вылез))
Да, вроде элементарный вопрос, а сам не догадался проверить... На другом браузере все ок.
Perun Отправлено: 10 Марта, 2019 - 16:26:05 • Тема: Не видно параметры в адресной строке • Форум: Вопросы новичков

Ответов: 2
Просмотров: 228
Подскажите, в чем загвоздка. Запускаю страничку на локальном сервере. Вижу в адресной строке не дальше ...index.php Через $_GET получаю отдельные параметры. при наведении на гиперактивные элементы разметки в статус баре браузера вижу полный адрес ссылки, но в адресной стркое после перехода по ссылке - не вижу. Это какой-то конф файл за это отвечает?
Perun Отправлено: 10 Марта, 2017 - 18:01:03 • Тема: Автоподстановка данных в поля при редактировании • Форум: Вопросы новичков

Ответов: 7
Просмотров: 523
haveFun пишет:
2. приходит пустая строка = '', ее длина равна 0.
стоит обратить внимание например на то, что не выделенный чекбокс вообще не придет, в отличие от текстового инпута или селекта.

Так речь именно о полях, а не чекбокс, поэтому я и спрашиваю в этом контексте. Почему нельзя использовать поверку на '' ? В Вашем же варианте два развития событий - когда пустая строка и когда не пустая. Отсюда у меня и был вариант
if ($sValue == '') {} else{}
haveFun пишет:
проверка на пустой/не пустой массив - используется там где требуется именно эта проверка

Так тут как раз и нужно поверять, пустой ли массив. Разве нет?
Perun Отправлено: 09 Марта, 2017 - 17:27:23 • Тема: Автоподстановка данных в поля при редактировании • Форум: Вопросы новичков

Ответов: 7
Просмотров: 523
haveFun пишет:
1. селект нужно делать после апдейда, а не перед ним.

Почему??? Селектом я получаю старые значения из ДБ, и дальше в представлении в форме использую старые, а апдейтом(если будет подтверждение редактирования) заношу в БД уже новые значения...

haveFun пишет:
пустое значение (null) в посте не приходит.

А какое значение приходит? Если значение в поле не указано, элемент в массиве $_POST все равно создается. И собственно сама проверка на пустое значение работает. Объясните пожалуйста.

haveFun пишет:
тогда уж if (!empty($arSetUpdate)) - если наносекунды экономим.

Так какая разница между вариантами:
if (count($arSetUpdate) > 0)
if (count($arSetUpdate))
if (!empty($arSetUpdate))
и
if (strlen($sValue) == 0) {} else{}
Perun Отправлено: 09 Марта, 2017 - 14:11:31 • Тема: Автоподстановка данных в поля при редактировании • Форум: Вопросы новичков

Ответов: 7
Просмотров: 523
haveFun пишет:
лишний запрос из 3 и 4 строки можно не выполнять.

У меня дальше в части представления идет обращение к этим данным для вывода в форму уже имеющихся данных для этой новости. Чтобы видеть, чем уже заполнены поля.
$_GET['key1'] я обрабатываю (int). Не дописал...

haveFun пишет:
$arSetUpdate = [];

Это то же самое, что и
$arSetUpdate = array();
?
haveFun пишет:
if (strlen($sValue) == 0)

А если значение в поле будет именно "0"?
Почему не на пустое значение проверка?
haveFun пишет:
if (count($arSetUpdate) > 0)

Зачем проверять еще на ">0"
count же вернет в любом случае отличное значение от нуля, если массив не пустой
Почему не просто if (count()) {...}
Perun Отправлено: 08 Марта, 2017 - 21:29:58 • Тема: Автоподстановка данных в поля при редактировании • Форум: Вопросы новичков

Ответов: 7
Просмотров: 523
Есть форма с новостью - для редактирования. Задача - Если при редактировании случайно было очищено какое-то поле и отправлена форма, как отредактрованная - чтобы это поле в уже отредактированной новости не осталось пустым, как ошибочно удаленное, а перезаписалось значение, которое было там ранее, до редактирования.
Реализовал вот так:
PHP:
скопировать код в буфер обмена
  1. <?PHP
  2. // Getting of  the news' data from DB for an ID from GET array.
  3. $getset = "SELECT * FROM `news` WHERE `id` = ".$_GET['key1']." LIMIT 1 ";
  4. $edit = mysqli_fetch_assoc(query($getset));
  5. // If the "CONFIRM EDIT" button is clicked
  6. if (isset($_POST['news_cat'], $_POST['title'], $_POST['author'], $_POST['short_description'], $_POST['full_description'], $_POST['editconf'], $_GET['key1'])) {
  7.         $post = array('news_cat'=>$_POST['news_cat'], 'title'=>$_POST['title'], 'author'=>$_POST['author'], 'short_description'=>$_POST['short_description'], 'full_description'=>$_POST['full_description']);
  8.   foreach ($post as $postk => $postv) {
  9.     if ($postv == '') {
  10.       $_POST[$postk] = $edit[$postk];
  11.     }
  12.     else {
  13.       $_POST[$postk] = $postv;
  14.     }
  15.   }
  16. // Updating of news' details if the CONFIRM EDIT button is clicked  
  17.     query("  UPDATE `news` SET
  18.                `news_add_date`     = NOW(),
  19.                `title`             = '".arrrealstr($_POST['title'])."',
  20.                `cat`               = '".arrrealstr($_POST['news_cat'])."',
  21.                `author`            = '".arrrealstr($_POST['author'])."',
  22.                `full_description`  = '".arrrealstr(nl2br($_POST['full_description']))."',
  23.                `short_description` = '".arrrealstr($_POST['short_description'])."'
  24.              WHERE `id`            = ".$_GET['key1']."
  25.          ");
  26.   // Redirect to the news' list page  
  27.     $_SESSION['success'] = 'The choosen news has been successfully edited!';
  28.     exit_redirect('news/news');    
  29.   }
  30.  
  31. else { // If the "CONFIRM EDIT" button is not clicked
  32.   $newsmes = 'Edit the news field below and click "CONFIRM EDIT" or go back to the news list. The fields with the "*" mark are required.';
  33. }
  34.  
  35. ?>

Собственно строки 7-14...
Или лучше прямо в части UPDATE проверять не пустое ли поле для каждого значения?
Perun Отправлено: 08 Марта, 2017 - 18:25:23 • Тема: Использование классов для констант • Форум: Вопросы новичков

Ответов: 7
Просмотров: 411
спасибо за ответы!
Perun Отправлено: 07 Марта, 2017 - 20:44:44 • Тема: Использование классов для констант • Форум: Вопросы новичков

Ответов: 7
Просмотров: 411
OrmaJever пишет:
аналог неймспейсов

Начал читать про пространства имен относительно классов, запутался еще больше...
Строитель пишет:
Их можно и не обычным способом объявлять, вообще без класса :

Интересно именно использование классов в контексте констант
Perun Отправлено: 07 Марта, 2017 - 20:13:07 • Тема: Использование классов для констант • Форум: Вопросы новичков

Ответов: 7
Просмотров: 411
Видел такое применение. Есть ли для этого какие-т предпосылки? Какие преимущества при использовании классов для назначения констант по сравнению с обычным способом через define?

Страниц (8): « 1 2 3 4 5 [6] 7 8 »
Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB