Php вывод результата exec: PHP, вывод результата команды exec

mysql — Вывод результата поиска на страницу Php


Вопрос задан


Изменён
6 лет 4 месяца назад


Просмотрен
567 раз

Я не силен в php, прошу помочь мне с таким вопросом.

Есть задача: сделать сайт с поиском по БД.

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

  • php
  • mysql






1

Вопрос достаточно абстрактный. ..

  1. Вы сделали поиск.
  2. Находите много каких-то элементов, у каждого есть Id.
  3. При перечеслении всех элементов вы формируете ссылку для
    просмотра этого элемента, например:

    echo '<a href="/show.php?id="' . $row['id'] . '...</a>';
    
  4. При клике на ссылку вы попадаете в созданный вами скрипт-файл
    php (тут show.php)

  5. В этом файле вы получаете одну строку (row) зная Id ( $_GET['id']
    ) и всё там и выводите:

    echo $row['id'] . ' ' . $row['name'] . .....;
    

Очень расплывчивый вопрос.

Такое можно сделать многими способами. Например:

  1. Результат поиска это ссылка вида {ваш сайт}/?res={идентификатор строки поиска}
  2. После клика на такой линк, запрос переходит на ваш скрипт, где вы сначала хорошо фильтруете запрос от всяких иньекций, а потом берете {идентификатор строки поиска} и на основании него возвращаете шаблон с релевантной информацией

тебе нужно разобраться с тем, что такое get, post запросы. Тогда все поймешь. Ссылка на запись должна быть с id этой записи из БД, далее при переходе на страницу берешь id (из адресной строки, это get запрос) и ищешь нужную информацию в БД. Самый быстрый и оптимальный вариант.







Зарегистрируйтесь или войдите

Регистрация через Google

Регистрация через Facebook

Регистрация через почту

Отправить без регистрации

Почта

Необходима, но никому не показывается

Отправить без регистрации


Почта

Необходима, но никому не показывается




Нажимая на кнопку «Отправить ответ», вы соглашаетесь с нашими пользовательским соглашением, политикой конфиденциальности и политикой о куки


Отключение опасных функций в PHP

#apache
#debian
#php
#security

21122

0

Если Вы хоть немного задумываетесь о безопасности своего веб-сервера, то следует отключить некоторые функции PHP, которые несут в себе потенциальную угрозу. Например, такие функции как exec() или system() позволяют выполнять внешние программы в системе, что, согласитесь, в большинстве случаев не требуется для веб-приложений. Данные функции, несомненно, помогают получить практически безграничные возможности для разработчика, однако, в то же время, при несанкционированном доступе к серверу злоумышленник может получить над ним полный контроль.

Это одна из причин, по которой ещё на этапе планирования проекта стоит избегать идей с вызовом внешних программ.

Для отключения функций следует открыть файл php.ini и добавить их в параметр disable_functions, например:

disable_functions = exec,passthru,php_uname,popen,proc_open,shell_exec,show_source,system

После сохранения конфигурации необходимо сообщить Apache об изменениях выполнив команду:

Онлайн тесты

  • Тест на знание основ HTML
  • Тест на знание основ PHP
  • Тест на знание ООП в PHP

Все тесты

apachectl graceful

А вот список функций, рекомендуемых к отключению. Описание прилагается.

exec() - вызов внешней программы
proc_open() - выполняет команду и открывает файловый указатель для ввода/вывода
shell_exec() - выполняет команду в оболочке/shell и возвращает полный вывод в виде строки
system() - вызов внешней программы и вывод результата
passthru() - вызов внешней программы и вывод "сырых" результата
popen() - открывает файловый указатель процесса
show_source() - вывод исходного текста текущей веб страницы
disk_free_space() - получить размер доступного пространства в каталоге
diskfreespace() - псевдоним функции disk_free_space
disk_total_space() - возвращает общий размер диска
eval() - вычисляет строку, заданную в параметре, как код PHP
fileperms() - получить информацию о правах на файл
fopen() - открывает файл или URL
opendir() - возвращает дескриптор каталога для последующего использования с функциями closedir(), readdir() и rewinddir()
phpinfo() - выводит всю информацию о PHP, ОС
phpversion() - выводит версию php
posix_getpwuid() - возвращает информацию о пользователе по его user id
posix_getgrgid() - возвращает информацию о группе по её group id
posix_uname() - получает системное имя, возвращает хэш строк с информацией о системе
php_uname - возвращает информацию об ОС, на которой php был построен
ini_get() - получает значение опции конфигурации
ini_get_all() - получает все опции конфигурации
parse_ini_file() - разбирает файл конфигурации

#apache
#debian
#php
#security

21122

0

Функция PHP exec не выводит

ryanmhuc

Я использую PHP 5. 1.6 (cli) в Linux. Когда я использую команду exec($cmd,
$output, $return), массив $output всегда пуст, если в команде
была ошибка. Есть только значения, если команда
прошла успешно. Как зафиксировать возвращенный текст ошибки?

28 окт. 2007 г.
#1

1 14293

Новое сообщение

Эта тема была закрыта, а ответы отключены. Пожалуйста, начните новое обсуждение.

Похожие темы

exec() не работает с исполняемыми файлами C/C++

автор: Хемант |
последнее сообщение от:

Привет,

Я новичок в PHP. Я пытаюсь запустить простой php
script (на Linux-машине Red Hat с веб-сервером apache)
через винду веб…

получение значений из оператора «exec»

автор: Тоби Дональдсон |
последнее сообщение от:

Всем привет,

Я разрабатываю образовательное приложение, которое будет запускать код Python и
проверьте вывод по заранее заданному ответу. Я хочу использовать…

Python

exec выдает исключение… почему?

автор: Ник Джейкобсон |
последнее сообщение от:

Это отлично работает:

х = 1
функция execfunc():
распечатать х
выполнение()

Так почему это не так?

с = \

Python

exec и глобальная головоломка

автор: Андре? Роберж |
последнее сообщение от:

У меня есть следующие два файла:

#—testexec.py—
def exec_code(co):
пытаться:
исполнительный директор
кроме:
напечатать «ошибка»

#— test.py—

Питон

Проблема с оператором exec

автор: TPJ |
последнее сообщение от:

У меня есть следующий код:

—————————————————
защита f():

деф г():
a = ‘a’ # отмеченная строка 1
exec ‘a = «b»‘ в. ..

Python

exec перестал работать?

автор: Риккей |
последнее сообщение от:

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

Проблемы с exec

автор: JahMic |
последнее сообщение от:

У меня проблема с exec на моем хостинг-сервере. К сожалению,
поддержка хостинга кажется совсем не полезной.

Следующие работы…

Функция Exec() не работает так, как я хочу (OSX)

автор: Маартен |
последнее сообщение от:

Привет,

Недавно я перешел с ПК с Windows на Mac OS-X 10.5 (php v5.2.6) и
У меня небольшая проблема с одной функцией в моем управлении компакт-дисками. ..

Доступ к DevCon 2023

автор: isladogs |
последнее сообщение от:

Доступ к DevCon: четверг, 27 + пятница, 28 апреля 2023 г.

Сегодня, вторник, 25 апреля, последний день регистрации на DevCon, крупнейшую англоязычную…

Microsoft Access/VBA

90 005 matplotlibcpp plt::text

автор: ufm123 |
последнее сообщение от:

Как сделать текст цветным?
Эта опция Python отсутствует в matplotlibcpp в Visual Studio -> работает только в ч/б!
У кого есть решение…

Python

matplotlibcpp plt::text

автор: ufm123 |
последнее сообщение от:

Как сделать текст цветным?
Эта опция Python отсутствует в matplotlibcpp в Visual Studio -> работает только в ч/б!
У кого есть решение. ..

C/C++

Как вывести результат ant.exec() на консоль? — Старый форум

Максим_Неага
(Максим Няга)


1

Предположим, у меня есть файл helloworld.php, который выполняет простое

эхо «Hello World!»;

затем у меня есть задача

задача привет << {

ant.exec (исполняемый: «php») {

arg (значение: «helloworld.php»)

}

}

Когда я запускаю

gradle hello

, я просто получаю вывод «BUILD SUCCESSFUL». Как я могу также получить вывод «Hello World»?

Заранее спасибо!

Петер_Нидервизер
(Питер Нидервизер)


2

Прежде всего, почему вместо этого вы не используете задачу Exec?

Максим_Неага
(Максим Няга)


3

Я пробовал что-то вроде

task hello(type:Exec) {

commandLine ‘php helloworld.php’

}

Но я получаю сообщение об ошибке:

Возникла проблема при запуске процесса ‘command’ php hell мир .php»

Не знаю, как это сделать правильно. К сожалению, я не нашел примеров того, как это сделать в документации.

Петер_Нидервизер
(Питер Нидервизер)


4

Я думаю, что это должно быть «командная строка «php», «helloworld. php». Например, см. «Exec» в справочнике по языку сборки Gradle.

Максим_Неага
(Максим Няга)


5

Спасибо! Меня смутило следующее утверждение в документации:

commandLine

Полная командная строка, включая исполняемый файл и его аргументы.

Я думал, что и исполняемый файл, и аргументы должны идти вместе.

Еще раз спасибо!

Конрад_Гарус
(Конрад Гарус)


6

Здравствуйте,

Мне нужен ответ на тот же вопрос. И чтобы ответить на ваш вопрос — мне нужен ant.exec, потому что Exec не возобновляется, пока процесс не завершится.

Максим_Неага
(Максим Няга)