CodeIgniter视图未加载,而是显示白屏

时间:2014-04-15 18:56:10

标签: php codeigniter

我几个小时以来一直在调试这段代码而没有成功。我试图做的就是获取加载视图。而不是它加载,我得到一个白色的屏幕,没有任何错误消息。

这是来自控制器的代码:

<?php if ( ! defined('BASEPATH')) exit('No direct script access allowed');


class Welcome extends CI_Controller {

    /**
     * Index Page for this controller.
     *
     * Maps to the following URL
     *      http://example.com/index.php/welcome
     *  - or -
     *      http://example.com/index.php/welcome/index
     *  - or -
     * Since this controller is set as the default controller in
     * config/routes.php, it's displayed at http://example.com/
     *
     * So any other public methods not prefixed with an underscore will
     * map to /index.php/welcome/<method_name>
     * @see http://codeigniter.com/user_guide/general/urls.html
     */
    public function index()
    {
        $this->load->view('welcome_message');
    }
    //echo "we made it to the function";
    public function login_form()
    {
        $this->load->view('login_form');
    }

    public function login_submit()
    {
        print_r( $_POST );
        $this->load->model('Usermodel', 'users');
        $match = $this->users->authenticate_user( $_POST['email'], $_POST['password'] );
        if( $match )
        {
            echo "User exists in database!";
        }
        else
        {
            echo "Email or password is wrong, bretheren!";
        }
    }
}

重要的部分是&#34;函数login_form&#34;。以下是该视图的代码:

<form action="<?php base_url() ?>welcome/login_submit" method="post">
    <label>
        email:
        <input id="email" name="email" />
    </label>
    <label>
        password:
        <input type="password" id="password" name="password" />
    </label>
    <input type="submit" value="Log me in!" />
</form>

这是我在浏览器中使用的链接到达页面: 本地主机/内联网/ index.php的/欢迎/ login_form

代码对我来说都很好看,我似乎无法弄清楚程序在哪里破解。有没有人有任何想法?

编辑:我拿出了速记,但我遇到了同样的问题。

3 个答案:

答案 0 :(得分:3)

1)你错过了echo ...

<?php echo base_url() ?>

2)要使用base_url(),您还需要在某处加载URL Helper。

https://www.codeigniter.com/user_guide/helpers/url_helper.html

3)我强烈建议您阅读整个文档,包括简单的演示和演示文稿。教程,在启动CodeIgniter项目之前......

https://www.codeigniter.com/user_guide/

4)虽然您可以使用PHP短标签(根据您的服务器配置),但不建议使用它们。

https://www.codeigniter.com/user_guide/general/styleguide.html#short-open-tags

答案 1 :(得分:1)

您必须在配置中启用URL Helper,或者如果要使用base_url()函数,则必须在控制器中启用:

$this->load->helper('URL');

<form action="<?php base_url() ?>welcome/login_submit" method="post">

应该是

<form action="<?php echo base_url() ?>welcome/login_submit" method="post">

如果您正确配置,则为速记:

<form action="<?=base_url() ?>welcome/login_submit" method="post">

关于无法使用CodeIgniter的简写的帖子,是的,你可以,我刚刚完成了一个用速记的项目。这就是你如何配置你的php.ini

<?= is just short for <?php echo

答案 2 :(得分:1)

您正在使用codeigniter,所以为什么不使用它的所有功能。你可以在codeigniter中创建这样的表单

所以你不需要使用 base_url 左右,这是在codeigniter中使用的正确方法。

   <?php echo form_open("welcome/login_submit",array('method'=>'post')); ?>
<label>
    email:
    <?php echo form_input(array('name'=>'email','id'=>'email')); ?>
</label>
<label>
    password:
    <?php echo form_password(array('name'=>'password','id'=>'password')); ?>
</label>
<?php
    echo form_button(array('type'=>'submit','value'=>'Log me in!'));
    echo form_close(); ?>