$\u POST在PHP7.2.0中不起作用

$\u POST在PHP7.2.0中不起作用,php,forms,Php,Forms,我试图使用POST方法将表单数据发送到PHP函数,但它不起作用 这是我的表格: <form action="<?php echo $proc; ?>?function=edit" method="POST" enctype="multipart/form-data"> <div class="form-group"> <label>Name</lab

我试图使用POST方法将表单数据发送到PHP函数,但它不起作用 这是我的表格:

<form  action="<?php echo $proc; ?>?function=edit" method="POST" 
enctype="multipart/form-data">
                    <div class="form-group">

                        <label>Name</label>
                        <input type="text" name="firstName">
                    </div>                  
                    <input type="hidden" name="id" class="id">
                    <button class="btn btn-default btn-block" type="submit">Save</button>
                </form>
这是数据库类:

<?php

class Database {

    private static $db;
private $connection;

private function __construct() {
    $this->connection = new mysqli("localhost","root","","my_db");
}

function __destruct() {
    $this->connection->close();
}

public static function getConnection() {
    if (self::$db == null) {
        self::$db = new Database();
    }
    return self::$db->connection;
}
}

?>


奇怪的是,我没有收到任何错误消息。

对于get参数的作用似乎有些困惑,除非您有某种内部处理程序,它接受$\u get['function']值并调用相同名称的函数。如果这是你正在做的,就不要那样做

如果表单保持原样,可以通过以下操作在PHP中调用edit:

if(isset($_GET['function']) && $_GET['function'] == 'edit')
{
    edit();
}
此外,编辑函数将返回值。这取决于你如何利用这些价值观

$res = edit();
if($res){
    //do something
}
else
{
    // do something else
}

有很多方法可以更好地实现您正在做的事情,但是为了简单起见,让我们只说在url中放置“function=edit”不会调用相同名称的函数。据我所知,PHP从来没有这样做过。

what calls
edit()
@smith这不是真的。它将设置
$\u GET
值。警告:您完全可以使用,并且应该真正使用,而不是像那样手动生成查询。特别是因为你根本没有逃避用户的输入!由于
action=“?function=edit”
,表单数据将被发送到那里进行处理,这不是globals的工作方式。如果您想在函数内部使用
$connection
,您仍然需要使用
global$connection导入它函数内部(无论如何,使用
global
是不好的做法),或者您需要将其传递给您的函数(
function edit($connection)
)我有一个内部处理程序,它接受$GET['function']值并调用相同名称的函数,这样做不对吗?很抱歉回复太晚了,所以只要它是一个故意的公共功能,并且不能被利用,那么我想如果有人审计过代码,它不会损害任何东西,除了你的声誉。没有合理的理由这样做,除非你的代码效率太低,有数千个函数,而且你不想为所有函数编写isset案例。所以,你是说最好为每个函数编写isset案例。我试过这样做,但是编辑功能仍然不能工作,“更好”是一个视角问题。您可以保护您的代码,无论它是如何编写的。理想情况下,您不会采用冗长而奇怪的方式来处理常见的实用程序。如果没有看到你的代码,我就不知道你的处理程序有多合乎逻辑。至于编辑函数,请使用var_dump()和die()。杀死中间的过程,看看它是否击中功能。确保您的php错误设置为显示等。常见的调试实践
$res = edit();
if($res){
    //do something
}
else
{
    // do something else
}