【问题标题】:CodeIgniter 4 : Form action refers to Error 404 PageCodeIgniter 4:表单操作是指错误 404 页面
【发布时间】:2020-11-29 15:33:17
【问题描述】:

我是 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');  
    
  }        
    
}

app > 配置 > 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”而不是"&lt;?=base_url('/adminlogin')?&gt;" 和“/register”而不是"&lt;?=base_url('/register')?&gt;",但没有任何区别。也只是“/”或空白表单操作字段也不起作用。

【问题讨论】:

    标签: forms codeigniter routes action


    【解决方案1】:

    您没有为该表单定义发布路线。这就是它向您显示 404 的原因。您需要为发布请求定义路由。您只为 get 定义了路由。这就是您可以从浏览器访问该页面的原因。

    $routes->post('/login','Home::login'); $routes->post(‘/registerUser’, ‘Home::registerUser’);

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2012-07-12
      • 2015-03-30
      • 2016-12-06
      • 1970-01-01
      • 1970-01-01
      • 2013-08-31
      • 2015-10-07
      • 1970-01-01
      相关资源
      最近更新 更多