У меня есть реальные проблемы с получением PHP-скрипта "search.php", который вызывается из "form.htm" для работы. Что я здесь не так делаю?

<?php
   $old_path = getcwd();
   chdir('/var/www/html/SOKHJALPMEDEL/');
   $term1 = $_POST['query1'];
   $argument1 = $_GET['$term1'];
   $term2 = $_POST['query2'];
   $argument2 = $_GET['$term2'];
   echo $nu_kor_vi1;
   $outcome = shell_exec("sokare $argument1 $argument2");
   chdir($old_path);
   echo "<pre>$outcome</pre>";
?>

Скрипт вызывает Bash-скрипт "sokare", который является исполняемым для всей системы и находится в «/usr/local/bin» . Переменные $ аргумент1 и $ аргумент2 передаются из «form.htm» через $ term1 = $ _POST ['query1']; и $ term2 = $ _POST ['query2']; , Bash-скрипт выглядит следующим образом. Предполагается искать любые PDF-файлы, находящиеся в "/var/www/html/SOKHJALPMEDEL/", страницы, содержащие оба поисковых слова.

#!/bin/bash

pdfgrep -Hn $1 /var/www/html/SOKHJALPMEDEL/*.pdf | cut -f1,2 -d':' > /tmp/sok1.tmp
pdfgrep -Hn $2 /var/www/html/SOKHJALPMEDEL/*.pdf | cut -f1,2 -d':' > /tmp/sok2.tmp
grep -f /tmp/sok1.tmp /tmp/sok2.tmp

exit 0

Я продолжаю получать эту ошибку в "/var/log/apache2/error.log" : PHP Примечание: неопределенный индекс: $ term2 в /var/www/html/SOKHJALPMEDEL/search.php в строке 7, реферер: http: //localhost/SOKHJALPMEDEL/form.htm

Любая помощь в устранении моего беспорядка прекрасна :-)

/Павел

1 ответ1

0

Вот рабочий скрипт, делающий то, что я хотел:

<?php
   $old_path = getcwd();
   chdir('/var/www/html/SOKHJALPMEDEL/');
   $term1 = $_POST['query1'];
   $term2 = $_POST['query2'];
   ob_start();
   echo "{$term1} {$term2}";
   $var = ob_get_clean();
   $outcome = shell_exec("/usr/local/bin/sokare $var");
   chdir($old_path);
   echo "<pre>$outcome</pre>";
?>

Ключом к функциональности, которую я искал, является этот кусок кода:

ob_start();
echo "{$term1} {$term2}";
$var = ob_get_clean(); 

Это создает переменную $ var, которая используется в качестве аргумента $ 1 и $ 2, используемых Bash-скриптом.

/Павел

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .