簡體   English   中英

從PHP將NULL變量傳遞給Perl?

[英]Passing NULL variables to Perl from PHP?

我有一個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>

這是調用perl腳本的php部分:

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

因此,如果我在SEARCH中沒有數據,似乎應該傳遞給$ DATE的數據現在以$ SEARCH結尾。

任何幫助,將不勝感激。

謝謝。

引用命令行參數。 如果$_POST[...]變量中有空格,這也將很有用:

system("perl search.pl \"$_POST[TYPE]\" \"$_POST[SEARCH]\" \"$_POST[STYPE]\" \"$_POST[DATE]\" \"$_POST[SERVER]\"", $return_val);

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM