【问题标题】:ERR_CONNECTION_REFUSED in CodeIgniter's TutorialCodeIgniter 教程中的 ERR_CONNECTION_REFUSED
【发布时间】:2016-02-19 17:07:26
【问题描述】:

我对核心 PHP 有很好的掌握,而且我刚刚开始学习 CodeIgniter。我根据 CodeIgniter 的教程创建了一些页面。但我被困在本教程中:http://www.codeigniter.com/user_guide/tutorial/news_section.html

以下是代码: /application/config/routes.php:

$route['404_override'] = '';
$route['translate_uri_dashes'] = FALSE;
$route['users/(:any)'] = 'users/view/$1';
$route['users'] = 'users';
$route['(:any)'] = 'pages/view/$1';
$route['default_controller'] = 'pages/view';

/application/models/Users_model.php:

class Users_model extends CI_Model
{   public function __construct()
    {   $this->load->database();
    }
    public function get_users($username = FALSE)
    {   if ($username === FALSE)
        {   $query = $this->db->get('users');
            return $query->result_array();
        }
        $query = $this->db->get_where('users', array('username' => $username));
        return $query->row_array();
    }
}

/application/controllers/Users.php:

class Users extends CI_Controller
{   public function __construct()
    {   parent::__construct();
        $this->load->model('users_model');
        $this->load->helper('url_helper');
    }
    public function index()
    {   $data['users'] = $this->users_model->get_users();
        $data['title'] = 'List of Users';
        $this->load->view('templates/header', $data);
        $this->load->view('users/index', $data);
        $this->load->view('templates/footer');
    }
    public function view($username = NULL)
    {   $data['user'] = $this->users_model->get_users($username);
        if (empty($data['user']))
        {   show_404();
        }
        $data['title'] = $data['user']['display_name'];
        $this->load->view('templates/header', $data);
        $this->load->view('users/view', $data);
        $this->load->view('templates/footer');
    }
}

/application/views/users/index.php:

<div class='main'>
    <table border='1'>
        <tr>
            <th>Name</th>
            <th>Email Address</th>
            <th>Username</th>
        </tr>
<?php foreach ($users as $user) { ?>
        <tr>
            <td><?php echo $user['display_name'] ?></td>
            <td><?php echo $user['email'] ?></td>
            <td>@<a href="<?php echo site_url('users/'.$user['username']) ?>"><?php echo $user['username'] ?></a></td>
        </tr>
<?php } ?>
    </table>
</div>

/application/views/users/view.php:

<h2><?php $user['display_name'] ?></h2>
<p>@<?php $user['username'] ?></p>

MySQL 'users' 表的结构:

CREATE TABLE users (
    id INT PRIMARY KEY AUTO_INCREMENT,
    email VARCHAR(255),
    username VARCHAR(255),
    display_name VARCHAR(50)
);

(您可以在下面的代码中将....(4 个点)替换为您想要的域名或本地主机。)

..../index.php/users 页面的输出:

<html>
    <head>
        <title>List of Users</title>
    </head>
    <body>
        <h1>List of Users</h1>
<div class='main'>
    <table border='1'>
        <tr>
            <th>Name</th>
            <th>Email Address</th>
            <th>Username</th>
        </tr>
        <tr>
            <td>Nikunj Bhatt</td>
            <td>nikunj@example.com</td>
            <td>@<a href="..../index.php/users/NikunjBhatt">NikunjBhatt</a></td>
        </tr>
    </table>
</div>
    </body>
</html>

这个输出是正确的,但是当我点击用户名时,它会重定向到..../index.php/users/NikunjBhatt页面并且这个页面在谷歌浏览器中显示错误“这个网页不可用”“ERR_CONNECTION_REFUSED”。

那么,问题出在哪里?我错过了什么?

【问题讨论】:

  • 为什么是$route['(:any)'] = 'pages/view/$1';
  • 尝试删除$route['(:any)'] = 'pages/view/$1';
  • @devpro ,据我所知,它是捕获与定义的路由不匹配的任何其他 URL。它写在tutorial的最后一节。
  • @PraveenKumar ,我也试过删除它,还是不行。

标签: php codeigniter


【解决方案1】:

尝试编写如下代码:-

public function view($username = ""){
 // do your stuff here
}

【讨论】:

  • 为什么需要 $route['users/(:any)'] = 'users/view/$1'; $route['users'] = 'users';
  • 你可以删除这个 $route['users/(:any)'] = 'users/view/$1'; $route['users'] = '用户';并且可以使用
  • 我在问题中提到的相同错误页面。
  • 你按照我说的给了吗?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2015-08-30
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-01-26
  • 1970-01-01
  • 2010-09-15
相关资源
最近更新 更多