Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/codeigniter/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php Codeigniter,将变量传递到模板时出错_Php_Codeigniter - Fatal编程技术网

Php Codeigniter,将变量传递到模板时出错

Php Codeigniter,将变量传递到模板时出错,php,codeigniter,Php,Codeigniter,我尝试登录时出错,出现以下两个错误 遇到一个PHP错误 严重性:警告 消息:非法字符串偏移量“titulo” 文件名:controllers/Login.php 第二个错误 <!Doctype html> <html> <head></head> <body class="no-skin login-layout"> <div id="main-container" class="main-container l

我尝试登录时出错,出现以下两个错误

遇到一个PHP错误 严重性:警告

消息:非法字符串偏移量“titulo”

文件名:controllers/Login.php

第二个错误

<!Doctype html>
<html>
<head></head>
<body class="no-skin login-layout">

        <div id="main-container" class="main-container login">

            <div class="main-content">
                <div class="main-content-inner">
                    <div class="page-content">
                        <?php
                        if (isset($_SESSION['alerta']) && !empty($_SESSION['alerta'])) {
                            print '<div class="alert alert-warning">
                                        <button data-dismiss="alert" class="close" type="button">
                                            <i class="ace-icon fa fa-times"></i>
                                        </button>' . $_SESSION['alerta'] .
                                    '</div>';
                        }
                        ?>
                        <?php
                        if (isset($_SESSION['erro']) && !empty($_SESSION['erro'])) {
                            print '<div class="alert alert-danger">
                                        <button data-dismiss="alert" class="close" type="button">
                                            <i class="ace-icon fa fa-times"></i>
                                        </button>' . $_SESSION['erro'] .
                                    '</div>';
                        }
                        ?>
                        <?= $body ?>
                    </div>
                    <!-- /.page-content -->
                </div>
            </div>
        </div>
    </body>
</html>
遇到一个PHP错误 严重性:通知

消息:未定义变量:body

文件名:templates/login_template.php

按顺序遵循代码

<?php
if (! defined('BASEPATH')) exit('No direct script access allowed'); // linha de proteção ao controller
class Login extends CI_Controller {

    public function __construct() {
        parent::__construct();  
        $this->load->model('ControleAcessoModel', 'CA');    
        //$this->output->enable_profiler(true);
    }
    public function index($dados=""){       

        $dados['titulo'] = 'Autenticação';
        $this->template->load('login_template', 'area_restrita/acesso_login.php', $dados);
        //print_r($dados);
    }
    public function logout(){
        $this->CA->logout();    
    }
    public function autenticar(){

        $form = $this->input->post(NULL, TRUE);

        $this->load->library('form_validation');

        //validação dos campos
        $this->form_validation->set_rules('senha','Senha','trim|required',
            array(
                'required' => 'Informe uma valor para %s.'
            )
        );
        $this->form_validation->set_rules('login','Login','trim|required',
            array(
                'required' => 'Informe uma valor para %s.'
            )
        );

        $this->form_validation->set_error_delimiters('<div class="alert alert-danger">','</div>');

        if($this->form_validation->run() == true){
            $login = $this->input->post("login");
            $senha = $this->input->post("senha"); 

            if(!$this->CA->logged()){               
                $this->load->model('PessoaSistemaModel','objAutenticavel');
                $this->objAutenticavel->setLogin($login);
                $this->objAutenticavel->setSenha($senha);
                $autenticado = $this->CA->autenticar($this->objAutenticavel);       
                //var_dump($autenticado); break;
                if($autenticado){                       
                    redirect('/visita');                    
                }else{
                    redirect('/login');

                }

            } else {                
                redirect('/visita');
            }
        }

        //$this->index();
    }

    public function logado(){
        $dados['titulo'] = 'Logado';
        $this->template->load('default','area_restrita/tela_inicial.php',$dados);
    }

    public function acessoNegado(){
        $dados['titulo'] = 'Bloqueio';
        if(!$this->input->is_ajax_request()){
            $this->template->load('default','mensagem/sem_permissao.php',$dados);
        }else{
            print $this->load->view('mensagem/sem_permissao.php',$dados, true);
        }
    }
}
?>
第二个错误

<!Doctype html>
<html>
<head></head>
<body class="no-skin login-layout">

        <div id="main-container" class="main-container login">

            <div class="main-content">
                <div class="main-content-inner">
                    <div class="page-content">
                        <?php
                        if (isset($_SESSION['alerta']) && !empty($_SESSION['alerta'])) {
                            print '<div class="alert alert-warning">
                                        <button data-dismiss="alert" class="close" type="button">
                                            <i class="ace-icon fa fa-times"></i>
                                        </button>' . $_SESSION['alerta'] .
                                    '</div>';
                        }
                        ?>
                        <?php
                        if (isset($_SESSION['erro']) && !empty($_SESSION['erro'])) {
                            print '<div class="alert alert-danger">
                                        <button data-dismiss="alert" class="close" type="button">
                                            <i class="ace-icon fa fa-times"></i>
                                        </button>' . $_SESSION['erro'] .
                                    '</div>';
                        }
                        ?>
                        <?= $body ?>
                    </div>
                    <!-- /.page-content -->
                </div>
            </div>
        </div>
    </body>
</html>
如果有人能帮助我,我将不胜感激

public function index$dados={$dados不是数组,它是字符串,不能像$dados['titulo']那样向它添加值,其中[]表示数组,因此字符串偏移量非法

在您的视图中,您有一个从未在索引函数中传递给您的视图的文件,因此您的通知也从未回显,仅供参考

我不确定$dados=应该用于什么,但假设它只是一个您希望传递给控制器的变量,您可以执行以下操作:

public function index($dados = "") {

    $data['body'] = 'Some body text';
    $data['somevarname'] = $dados;
    $data['titulo'] = 'Autenticação';
    //or
    /*
    $data = array(
        'body' => 'Some body text',
        'somevarname' => $dados,
        'titulo' => 'Autenticação'
    );
     * 
     */
    $this->template->load('login_template', 'area_restrita/acesso_login.php', $data);
}
可能重复的