PHP MVC登录表单操作='';
我对编程非常陌生,并尝试用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
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解析的路由类。它是有效的,我在一些项目中使用它。