【问题标题】:Call function and pass parameter over url PHP调用函数并通过url PHP传递参数
【发布时间】:2018-06-18 21:39:41
【问题描述】:

这是我的 PHP 脚本:

<?php

function myFunc($param1)
{
echo $param1;
}

if(isset($_GET['action'])){
    if(function_exists($_GET['action'])) {    
        $_GET['action']();
    }
}

?>

现在我想从其他 php 调用这个函数并传递参数:

http://localhost/data.php?action=myFunc

如何通过url传递参数给myFunc?

【问题讨论】:

  • 你想表达什么?你没有向函数传递任何东西。
  • 你也不需要2个ifs,if(isset($_GET['action']) &amp;&amp; function_exists($_GET['action'])){
  • 小心这种方法非常不安全!
  • 使用这个,任何人都可以调用any函数,包括任何PHP的内置函数。您应该有一个允许功能的白名单,否则事情可能会很快恶化。

标签: php


【解决方案1】:

这肯定是错误的并且不安全(想象一下如果您尝试使用action=unlink&amp;param=somefile.php 调用它会发生什么),但您可以执行以下操作:

网址:http://localhost/data.php?action=myFunc&amp;param=123

<?php

function myFunc($param1)
{
echo $param1;
}

if(isset($_GET['action'])){
    if(function_exists($_GET['action'])) {    
        $_GET['action']($_GET['param']);
    }
}

【讨论】:

    猜你喜欢
    • 2021-05-20
    • 1970-01-01
    • 1970-01-01
    • 2014-05-22
    • 1970-01-01
    • 2023-04-08
    • 1970-01-01
    • 2017-11-15
    • 1970-01-01
    相关资源
    最近更新 更多