无法在类构造中包含php文件

时间:2017-04-11 05:04:06

标签: php class

的config.php

< ?PHP的

define('DB_SERVER','localhost');
define('DB_USER','root');
DEFINE('DB_PASSWORD','');
DEFINE('DB','bank');

$conn = new mysqli(DB_SERVER, DB_USER, DB_PASSWORD, DB);

// Check connection
if ($conn->connect_error) {
    die("Connection failed: " . $conn->connect_error);
} 


?>

edit_action.php

 <?php
    #Edit User code
    print_r($_POST);
    Class edit_user
    {
      public function __construct()
        {
            include 'config.php';

               #including config file
    }
         public function edit()
        {

            print_r($_POST);

               #All the updated code defined here
    }
    }

当我尝试执行此代码时,它会出错,不包括配置文件。

错误:未定义的变量:edit_action.php中的conn

2 个答案:

答案 0 :(得分:3)

您在行动中提交表单=&#39; edit_action.php&#39;只有print_r($_POST),你没有在这个文件上调用任何其他内容。

您可以做的是在edit_action.php

的底部添加这些行
$obj1 = new edit_user;
$obj1->edit();

更新代码:

<?php
#Edit User code
Class edit_user
{
     public function edit()
    {
        include 'config.php';
        print_r($_POST);

           #All the updated code defined here
}
}
$obj1 = new edit_user;
$obj1->edit();

根据评论请求更新了答案。

<input type="hidden" value="edit" name='action' /> 

在表单中添加此内容,这会将您的表单提交至edit()。您可以将其更改为edit_role的值,以致电edit_role()

<强> edit_action.php

<?php
    #Edit User code
    Class edit_user
    {
        public function run()
        {
            switch($this->post['action'])
            {
                case 'edit':
                    $this->edit();
                    break;

                case 'edit_role':
                    $this->edit_role();
                    break;
            }
        }

        public function edit()
        {
            include 'config.php';
            print_r($_POST);

               #All the updated code defined here
        }

        public function edit_role()
        {
           #edit_role code goes here
        }
    }

    $obj1 = new edit_user;
    $obj1->run();

我希望这会对你有所帮助。

快乐的编码!

答案 1 :(得分:0)

您正在php文件edit_action.php上提交表单,其中没有(new edit_user())->edit()的电话,这就是为什么它只是打印$_POST

更改此内容:

<form class="w3-container " action='edit_action.php' method='post' name="form"  id="form-e" role="form">

此:

<form class="w3-container " action='edit_user.php' method='post' name="form"  id="form-e" role="form">