【问题标题】:passing the '>' sign to PERL from PHP将“>”符号从 PHP 传递给 PERL
【发布时间】:2014-02-20 07:16:44
【问题描述】:

我想使用 PHP 将两个值(我从 php 表单获取)传递到 perl 脚本中,以便处理这些值。 我可以对所有字符都做到这一点,但不是 '>' 符号,我可以做些什么来修复这个..?

这是我的 php 代码:

<?php   
    $val="$_POST['val']";
    $val2="$_POST['val2']";
      system("/usr/bin/perl script.pl $val $val2",$retval); 
    if($retval!=0){
        echo ("<p> There was an unknown error.");
    }
?>

谢谢!

【问题讨论】:

    标签: php perl post character parameter-passing


    【解决方案1】:

    正如@po_taka 已经提到的,您需要清理 $_POST 数据,请使用 PHP 函数 escapeshellarg

    system("/usr/bin/perl script.pl ".escapeshellarg($val)." ".escapeshellarg($val2),$retval);
    

    【讨论】:

    • 可能还值得在参数周围添加' '(或" ",如果在@po_taka 建议的Windows 上。文本中的空格很可能会混淆script.pl
    【解决方案2】:
    system("/usr/bin/perl script.pl '$val' '$val2'",$retval);
    

    如果您在 $var1 或 $var2 中有 ' 字符,则应将其转义。

    无论如何,通过 $_POST 而不进行清理,是非常非常危险的!

    【讨论】:

    • 也许你可以举个引用'的例子
    猜你喜欢
    • 2014-11-30
    • 2011-11-28
    • 1970-01-01
    • 2013-08-16
    • 2011-08-11
    • 1970-01-01
    • 2013-09-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多