PHP chamando Bash-script

0

Eu tenho problemas reais para obter este script PHP "search.php" que é chamado de um "form.htm" para funcionar. O que estou fazendo errado aqui?

<?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>";
?>

O script está chamando um script Bash "sokare" que é executável em todo o sistema e reside em "/ usr / local / bin" . As variáveis $ argument1 e $ argument2 são transmitidas do "form.htm" via $ term1 = $ _POST ['query1' ]; e $ term2 = $ _POST ['query2']; . O script Bash parece com isso. É suposto procurar qualquer arquivo PDF residente em "/ var / www / html / SOKHJALPMEDEL /" para páginas que contenham ambas as palavras de busca.

#!/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

Eu continuo recebendo este erro em "/ var / log / apache2 / error.log" : Aviso do PHP: Índice indefinido: $ term2 em / var / www / html / SOKHJALPMEDEL / search. php na linha 7, referenciador: link

Qualquer ajuda para limpar minha bagunça é linda: -)

/ Paul

    
por Paul Bergström 14.09.2016 / 15:27

1 resposta

0

Aqui está um script de trabalho fazendo o que eu queria:

<?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>";
?>

A chave para obter a funcionalidade que eu estava procurando é este trecho de código:

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

Isto cria a variável $ var que é usada como o argumento $ 1 e $ 2 usado pelo script Bash.

/ Paul

    
por 15.09.2016 / 10:15