Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/240.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
PHP MVC登录表单操作='';_Php_Authentication - Fatal编程技术网

PHP MVC登录表单操作='';

PHP MVC登录表单操作='';,php,authentication,Php,Authentication,我对编程非常陌生,并尝试用php构建自己的MVC项目 我的文件夹结构: 我的路由器如下所示: class App { protected $controller = 'index'; // Default controller protected $method = 'index'; // Default method protected $params = []; // Default parameters are an empty array pub

我对编程非常陌生,并尝试用php构建自己的MVC项目

我的文件夹结构:

我的路由器如下所示:

class App 
{
    protected $controller = 'index'; // Default controller

    protected $method = 'index'; // Default method

    protected $params = []; // Default parameters are an empty array

    public function __construct()
    {
        Sessions::start_session(); // Start a session, logged in or not?

        $url = $this->parseUrl();

        if (file_exists('controllers/controller.' . $url[0] . '.php')) 
        {
            $this->controller = $url[0];
            unset($url[0]);
        } 

        require_once 'controllers/controller.' . $this->controller . '.php';

        $this->controller = new $this->controller;

        if(isset($url[1])) 
        {
            if(method_exists($this->controller, $url[1])) 
            {
                $this->method = $url[1];
                unset($url[1]);
            }
        }

        $this->params = $url ? array_values($url) : [];

        call_user_func_array([$this->controller, $this->method], $this->params);
    }

    public function parseUrl()
    {
        if(isset($_GET['url'])) 
        {
            return $url = explode('/',filter_var(rtrim($_GET['url'], '/'), FILTER_SANITIZE_URL));
        }
    }
}
<form action='????' method='post' id='loginForm' onSubmit='return false;'>
                <div class='inputField'>
                    <input type='email' name='email'  id='email' placeholder='Email' autofocus />
                </div>
                <div class='inputField'>
                    <input type='password' name='password' id='password' placeholder='Password' />
                </div>
                <div class='inputField'>
                    <input type='submit' name='submiter' value='Login' />
我的登录控制器如下所示:

class login extends Controller 
{
    public function index()
    {
        $this->render('login/index');
    }

    public function login_user()
    {
        $this->model('login');
        $this->model->log_user($_POST['email'], md5($_POST['password']));
    }
}
我的登录视图如下所示:

class App 
{
    protected $controller = 'index'; // Default controller

    protected $method = 'index'; // Default method

    protected $params = []; // Default parameters are an empty array

    public function __construct()
    {
        Sessions::start_session(); // Start a session, logged in or not?

        $url = $this->parseUrl();

        if (file_exists('controllers/controller.' . $url[0] . '.php')) 
        {
            $this->controller = $url[0];
            unset($url[0]);
        } 

        require_once 'controllers/controller.' . $this->controller . '.php';

        $this->controller = new $this->controller;

        if(isset($url[1])) 
        {
            if(method_exists($this->controller, $url[1])) 
            {
                $this->method = $url[1];
                unset($url[1]);
            }
        }

        $this->params = $url ? array_values($url) : [];

        call_user_func_array([$this->controller, $this->method], $this->params);
    }

    public function parseUrl()
    {
        if(isset($_GET['url'])) 
        {
            return $url = explode('/',filter_var(rtrim($_GET['url'], '/'), FILTER_SANITIZE_URL));
        }
    }
}
<form action='????' method='post' id='loginForm' onSubmit='return false;'>
                <div class='inputField'>
                    <input type='email' name='email'  id='email' placeholder='Email' autofocus />
                </div>
                <div class='inputField'>
                    <input type='password' name='password' id='password' placeholder='Password' />
                </div>
                <div class='inputField'>
                    <input type='submit' name='submiter' value='Login' />

现在我的问题是如何从login视图中表单的action属性调用login类中的login\u user方法


非常感谢您的帮助!如果我要发布任何其他代码片段,请让我知道

您是否已经尝试过类似于
action=“login/login\u user”
action=“login/login\u user”
(其中
URL
是正确指向控制器的路径)?如果你的路由类写得很好,它的工作方式应该类似于这两个类中的一个。谢谢你的回答!我尝试了这两种方法,但令我惊讶的是,这两种方法都不起作用。这就是为什么我把我的问题贴在这里!我试过这样做:action='login/login\u user',但如果我单击登录按钮,甚至什么也没有发生……您没有在那里放置
回音<代码>
。否则:
。请查看。具有正确url解析的路由类。它是有效的,我在一些项目中使用它。