通过表单获取用户输入,在一个PHP文件中进行验证,然后在另一个PHP文件中使用

时间:2018-10-08 11:58:58

标签: php

我正在获取有关如何使用名为“ receive_data.php”的PHP文件中的FORM数据来验证POST请求的信息(POST已经通过验证)。然后,我将使用“ receive_data.php”已验证的数据,然后将其发送到另一个名为“ Data_base.php”的PHP文件,以导出到文本文件。因此,基本上,我想知道如何使用class Database在另一个PHP文件中使用一个PHP文件中的变量。

我所拥有的片段:

Recieve_data.php

if (isset($_POST)) {

    $userName = getField('username');
    $userAge = getField('age');
    $userEmail = getField('email');
    $userPhone = getField('phone');
}

function getField($fieldName)
{
    if (isset($_POST[$fieldName])) {
        return trim($_POST[$fieldName]);
    }
    return '';
}


if (isset($_POST['username'])) {
    if (!ctype_alpha($_POST['username']) || (strlen($_POST['username']) < 2) || (strlen($_POST['username']) > 100)) {
        send_error($response400, $message3);
    }
} //Data checked if POST and validated unsure how to use in another php file

我用过include "recieve_data.php";,但似乎无法访问$userName中的data_base.php,更不用说上课了。

1 个答案:

答案 0 :(得分:2)

如果要在Database类中使用变量,则可以使用构造函数。

示例data_base.php

class Database {

    function __construct($username, $age, $email, $phone)
    {
        $this->username = $username;
        $this->age = $age;
        $this->email = $email;
        $this->phone = $phone;
    }

    public function someFunction() {
        echo "Username: ".$this->username;
    }

}

现在,您可以像这样创建Database类的实例:

$database = new Database("Foo", 19, "foo@example.com", 1234567);

现在您可以在班级中的任何地方使用数据。

例如:

public function someFunction() {
        echo "Username: ".$this->username; //output: "Foo"
    }

此调用将采用您在新实例中传递的用户名(在本例中为“ Foo”)。

编辑:例如,您不能在静态上下文中使用$this->username

所以

public static function someOtherFunction() {
    echo "Age: ".$this->age;
}

不起作用!在这种情况下,您必须使用getter和setter方法。