У меня есть страница php, на которой я использую форму и передаю выборки / данные, которые сделаны в форме, в скрипт perl, который я создал. К сожалению, когда я передаю переменные, если есть какие-либо пустые переменные, мои переменные, которые я получаю в скрипте perl, не поступают в правильном порядке. Есть ли способ убедиться, что переменные, которые передаются в скрипт perl, дают правильный порядок, есть ли в них данные или нет?
<form action="index.php" method="post">
FTP/SFTP: <select name="TYPE">
<option value="">Select...</option>
<option value="ftpd">FTP</option>
<option value="sftpd">SFTP</option>
</select></t><Br>
Search String: <input type="text" name="SEARCH"></t><br>
Search Type: <select name="STYPE">
<option value="">Select...</option>
<option value="user">Username</option>
<option value="ip">IP Address</option>
<option value="pid">PID</option>
<option value="file">Filename</option>
</select><br>
Date (YYYY-MM-DD): <input type="text" name="DATE"></t><br>
Server: <select name="SERVER">
<option value="">Select...</option>
<option value="test1ftp">test1</option>
<option value="test2ftp">test2</option>
</select></t><Br>
<input type="submit" name="formSearch" value="Search">
</form></font></p>
</body>
</html>
Это часть php, которая вызывает Perl-скрипт:
<?php
if(isset($_POST['formSearch']) == "Search")
{
if(empty($_POST['SEARCH']))
$_POST['SEARCH'] = "undef";
if(empty($_POST['SERVER']))
$_POST['SERVER'] = "undef";
if(empty($_POST['DATE']))
$_POST['DATE'] = "undef";//system("perl search.pl $_POST[TYPE] $_POST[SEARCH] $_POST[STYPE] $_POST[DATE] $_POST[SERVER]", $return_val);}
?>
Когда дело доходит до сценария Perl, у меня есть переменные, которые передаются перейти к следующему.
my $TYPE = $ARGV[0];
my $SEARCH = $ARGV[1];
my $STYPE = $ARGV[2];
my $DATE = $ARGV[3];
my $SYSTEM = $ARGV[4];
Таким образом, если у меня нет данных в ПОИСКЕ, кажется, что данные, которые должны были быть переданы в $ DATE, теперь заканчиваются в $ ПОИСК.
Любая помощь будет оценена.
Спасибо.
Цитировать аргументы командной строки. Это также будет полезно, если $_POST[...]
переменные имеют пробелы в них:
system("perl search.pl \"$_POST[TYPE]\" \"$_POST[SEARCH]\" \"$_POST[STYPE]\" \"$_POST[DATE]\" \"$_POST[SERVER]\"", $return_val);
Других решений пока нет …