codeigniter找不到对象! 404错误

时间:2013-07-31 08:59:38

标签: codeigniter

大家好我是php框架开发的新手,我不能让这个代码运行请帮我使用xampp

我的欢迎控制器

<?php

class Welcome extends CI_Controller
{

public function index()
{

    $this->load->view('home');

}
}

主页视图

<html>
<head>
<title>CTS - home</title>
<style type="text/css">
.auto-style1 {
    text-align: center;
}
</style>
</head>

<body bgcolor="#C0C0C0" style="height: 226px">

<div class="auto-style1" style="height: 118px">
    <img alt="" height="126" src="<?php echo $this->config->item('base_url'); ?    >/IMG/YUC.png" style="float: left" width="147">
    <center><h1 style="height: 39px; width: 696px">Cooperative Training Management     System</h1></center>
</div>
<br>
<hr>
<div class="auto-style1">
    <a href="<?php echo site_url('') ?>users/login">
    <img alt="YUC Employee" height="410" src="<?php echo $this->config-    >item('base_url'); ?>/IMG/employee.png" width="139">
    </a>
    <img alt="trainer" height="410" src="<?php echo $this->config->item('base_url'); ?    >/IMG/Trainer.png" width="145">
    <a href="<?php echo site_url('') ?>users/login">
    <img alt="Student" height="410" src="<?php echo $this->config->item('base_url'); ?    >/IMG/student.png" width="129">
    </a>
    <h3>Employee&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp        ;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Trainer&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp    ;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Student</h3>
</div>
<hr>
<p align="right">Page generated in <strong>{elapsed_time}</strong> seconds</p>
</body>
</html>

这是第二个控制器用户

<?php

class Users extends CI_Controller 
{

    function login()
    {
        $data['error']=0;
        if($_POST){
            $this->load->model('user');
            $username=$this->input->post('username',ture);
            $password=$this->input->post('password',true);
            $user=$this->user->login($username,$password);
            if(!$user){
                $data['error']=1;
            }else{
                $this->session->set_userdata('userID',$user['userID']);
                redirect(base_url().'home');
            }
        }
        $this->load->view('login');

    }

    function logout()
    {
        $this->session->sess_destory();
        redirect(base_url().'home');
    }
}

这是模型用户

<?php

class User extends CI_Model 
{

    function __construct()
    {
        parent::__construct();
        $this->load->helper('url');  
    }

    function login($username,$password)
    {

        $where=array(
                        'username'=>$username,
                        'password'=>sha1($password)
                    );
        $this->db->select()->from('s_users')->where($where);
        $querh=$this->db->get();
        return $querh->first_row('array');
    }
}

这是登录视图

<html>
<head>
<title>CTS - Login</title>
<style type="text/css">
.auto-style1 {
    text-align: center;
}
</style>
</head>

<body bgcolor="#C0C0C0" style="height: 98px">

<div class="auto-style1" style="height: 118px">
    <img alt="" height="126" src="YUC.png" style="float: left" width="147">
    <center><h1 style="height: 113px; width: 696px">Cooperative Training Management     System</h1></center>
</div>
<br>
<hr>
<div class="auto-style1">

<fieldset name="Group1">
    <legend align="left"><h1>Login</h1></legend>
    <?php if($error==1){ ?>
    <p>Your Username / Password did not match.</p>
    <? } ?>
    <form action="<?=base_url()?>users/login" method="post" style="height: 96px">

        <label>Username </label><input name="Text1" type="text">
        <br>
        <label>Password</label> <input name="Password1" type="password">
        <br><br>
        <input name="Login" style="width: 96px" type="submit" value="Login">

    </form>

</fieldset>
</div>
<hr>
<p align="right">Page generated in <strong>{elapsed_time}</strong> seconds</p>
</body>
</html>

的.htaccess

<IfModule mod_rewrite.c>
    RewriteEngine On
    RewriteBase /

    #Removes access to the system folder by users.
    #Additionally this will allow you to create a System.php controller,
    #previously this would not have been possible.
    #'system' can be replaced if you have renamed your system folder.
    RewriteCond %{REQUEST_URI} ^system.*
    RewriteRule ^(.*)$ /index.php?/$1 [L]

    #When your application folder isn't in the system folder
    #This snippet prevents user access to the application folder
    #Submitted by: Fabdrol
    #Rename 'application' to your applications folder name.
    RewriteCond %{REQUEST_URI} ^application.*
    RewriteRule ^(.*)$ /index.php?/$1 [L]

    #Checks to see if the user is attempting to access a valid file,
    #such as an image or css document, if this isn't true it sends the
    #request to index.php
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteRule ^(.*)$ index.php?/$1 [L]
</IfModule>

<IfModule !mod_rewrite.c>
    # If we don't have mod_rewrite installed, all 404's
    # can be sent to index.php, and everything works as normal.
    # Submitted by: ElliotHaughin

    ErrorDocument 404 /index.php
</IfModule>

4 个答案:

答案 0 :(得分:2)

也许网址不正确。

    http://localhost/projectfolder/index.php/controller/method

在你的情况下:

    http://localhost/yourprojectfolder/index.php/users/login

将“projectfolder”,“controller”,“method”替换为您的。确保用户控制器的文件名是“users.php”

答案 1 :(得分:0)

使用

base_url();

而不是

$this->config->item('base_url');

如果你想保留配置参数,请使用:

$this->config->config['base_url'];

这也不行:

<?php echo site_url('') ?>users/login

像这样使用它:

<?php echo site_url('users/login') ?>

最后检查您是否有views/home.php个文件

无法在代码中看到任何其他错误

然后确保你有:

$config['index_page'] = '';

并使用此htaccess:

RewriteEngine On
RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ /index.php/$1 [L]

答案 2 :(得分:0)

如果使用WAMP服务器,则打开&#34; httpd.conf&#34;文件,搜索
&#34; LoadModule rewrite_module modules / mod_rewrite.so &#34;并删除同一行开头的# 并且 重新启动您的WAMP服务器

然后将此代码添加到codeigniter文件夹中的.htaccess文件中(如果没有在文件夹中 root 创建):

重写发动机 RewriteCond%{REQUEST_FILENAME}! - f
RewriteCond%{REQUEST_FILENAME}!-d
RewriteRule。* index.php / $ 0 [PT,L]

答案 3 :(得分:0)

检查调用函数的URL 例如

Correct URL
http://127.0.0.1/mysites/site1_ci_bootstrap/index.php/welcome/home

可能是您的网址

http://127.0.0.1/mysites/site1_ci_bootstrap/welcome/home

注意:最初总是需要在重定向到主类“欢迎”的路径中提到“index.php”,要删除“index.php”将.htaccess脚本放到根文件夹中,google几个htaccess脚本你找到一个。