forms - CodeIgniter 4:表单操作是指错误 404 页面
问题描述
我是 CodeIgniter 4 的新手,我想我在路由方面遇到了问题。
我创建了一个基本的登录和注册表单,但是当我单击提交按钮时,它会将我引向 404 - 未找到文件页面。通过查看文档和在线搜索,我无法弄清楚。非常感谢您的帮助。
这是我的代码:
控制器 > Home.php
<?php namespace App\Controllers;
class Home extends BaseController
{
public function index()
{
$data =[];
helper(['form','url']);
echo view('header');
echo view('anasayfa');
echo view('footer');
}
public function adminlogin()
{
$data =[];
helper(['form','url']);
echo view('login_header',$data);
echo view('adminlogin');
echo view('login_footer');
}
public function register()
{
$data =[];
helper(['form','url']);
echo view('login_header',$data);
echo view('register');
echo view('login_footer');
}
}
应用 > 配置 > Routes.php
$routes->get('/', 'Home::index');
$routes->get('/adminlogin','Home::adminlogin');
$routes->get('/register','Home::register');
查看 > 注册
<form action="<?=base_url('/register')?>" method="post">
<div class="form-group input-rounded">
<input type="text" class="form-control" name="user_name" id="user_name" placeholder="User Name" />
</div>
<div class="form-group input-rounded">
<input type="text" class="form-control" name="email" id="email" placeholder="Email" />
</div>
<div class="form-group input-rounded">
<input type="password" class="form-control" name="user_password" id="user_password" placeholder="Password" />
</div>
<div class="form-group input-rounded">
<input type="password" class="form-control" name="user_password_confirm" id="user_password_confirm" placeholder="Confirm Password" />
</div>
<?php if(isset($validation)): ?>
<div class="col-12">
<div class="alert alert-danger" role="alert" >
<?= $validation->listErrors() ?>
</div>
</div>
<?php endif; ?>
<button type="submit" class="btn btn-primary btn-block"> Create </button>
<div class="signup-link">
<p>Do You Have an Account?</p>
<a href="adminlogin">Login</a>
</div>
</form>
查看 > 管理员登录
<form action="<?=base_url('/adminlogin')?>" method="post">
<div class="form-group input-rounded">
<input type="text" class="form-control" name="user_name" id="user_name" placeholder="User Name" />
</div>
<div class="form-group input-rounded">
<input type="password" class="form-control" name="user_password" id="user_password" placeholder="Password" />
</div>
<div class="form-inline">
<div class="checkbox">
<label>
<input type="checkbox" class="form-check-input" />Remember Me
<i class="input-frame"></i>
</label>
</div>
</div>
<button type="submit" class="btn btn-primary btn-block"> Sign In </button>
<div class="signup-link">
<p>Sign Up</p>
<a href="register">Create Your Account Now</a>
</div>
</form>
顺便说一句,如果我尝试导航到 localhost://mywebsite/public/adminlogin 或 localhost://mywebsite/public/register ,它可以完美运行。我猜表单操作字段导致了这个问题。我尝试在表单操作字段中写入“/adminlogin”而不是"<?=base_url('/adminlogin')?>"
“/register”,"<?=base_url('/register')?>"
但没有任何区别。也只是“/”或空白表单操作字段也不起作用。
解决方案
您没有为该表单定义发布路线。这就是它向您显示 404 的原因。您需要为发布请求定义路由。您只为 get 定义了路由。这就是为什么您可以从浏览器访问该页面的原因。
$routes->post('/login','Home::login'); $routes->post('/registerUser', 'Home::registerUser');
推荐阅读
- node.js - 使用 Cloud Functions for Firebase 修复类型“任何”的 Typescript 警告
- reactjs - Not able to access react state from socket event handler function
- python - 试图在 xgboost 目录上运行 mvn install,错误
- javascript - 未捕获的 ReferenceError:使用 VuePress 时未定义进程
- go - gRPC-server 流的语法
- javascript - 按同一个键做不同的动作
- python - 为什么访问使用 .apply() 生成的列表中的元素会为落在列表 len 内的索引返回 IndexError?
- python-3.x - 如何让 averageHighTemps 函数将天气数据库作为参数,并返回每月高温的平均值
- node.js - 猫鼬找到空响应
- python - 无法使用 Python 3.8 导入熊猫,因为它已经为 Anaconda 安装