php - 尝试从控制器传递数据时 Codeigniter 上的未定义变量
问题描述
我是 Codeigniter 的新手。我尝试将一些数据传递到视图中。我有这样的路线:
$route['accounts/(:any)'] = 'accounts/$1';
在我的 Account 类中,我有这样的注册功能:
public function register()
{
$csrf = array(
'name' => $this->security->get_csrf_token_name(),
'hash' => $this->security->get_csrf_hash()
);
$this->load->view('partials/head');
$this->load->view('partials/nav');
$this->load->view('auth/register',$csrf);
$this->load->view('partials/footer');
}
然后在我的 register.php 中,我尝试像这样打印 $crsf:
<input type="hidden" name="<?=$csrf['name'];?>" value="<?=$csrf['hash'];?>" />
当我访问我在 compro.xyz/accounts/register 中的页面时,它给了我这个错误:
A PHP Error was encountered
Severity: Notice
Message: Undefined variable: csrf
Filename: auth/register.php
Line Number: 13
Backtrace:
File: D:\xampp\htdocs\compro\application\views\auth\register.php
Line: 13
Function: _error_handler
File: D:\xampp\htdocs\compro\application\controllers\Accounts.php
Line: 19
Function: view
File: D:\xampp\htdocs\compro\index.php
Line: 315
Function: require_once
" value="
A PHP Error was encountered
Severity: Notice
Message: Undefined variable: csrf
Filename: auth/register.php
Line Number: 13
Backtrace:
File: D:\xampp\htdocs\compro\application\views\auth\register.php
Line: 13
Function: _error_handler
File: D:\xampp\htdocs\compro\application\controllers\Accounts.php
Line: 19
Function: view
File: D:\xampp\htdocs\compro\index.php
Line: 315
Function: require_once
" />
好像我的寄存器不认识$csrf
。我真的不知道是什么原因造成的,我通常使用 Twig,因为它是 Codeiginter,所以我对它了解不多。目前我正在使用最新版本。
解决方案
$csrf
不会是视图上的变量。
name
并且hash
会。
如果你想拥有$csrf
你需要这个数据数组:
$csrf = array(
'csrf'=> array(
'name' => $this->security->get_csrf_token_name(),
'hash' => $this->security->get_csrf_hash()
)
);
但是,如果您使用帮助form_open
程序,则无需编写自己的隐藏输入。
此外,您可以$this->security
在视图内部使用。
推荐阅读
- c++ - 尝试执行 shared_from_this 时,由共享指针引用的类中的类的共享指针会出错
- python - 从 python 中的 azure keyvault 中检索机密列表
- laravel-5 - 如何实现这条路线?
- python - 启动 mu-editor 时有关 PyQt5/QtCore.so 的 ImportError
- c# - 如何从 html 发送请求查询字符串?
- python - pip 升级:“python -m pip install --upgrade”说已经是最新的(18.0),“pip --version”说(10.0.1)
- macos - Maven:无法解析以下工件。在我的 Mac 上将朋友的 .m2 文件夹放在哪里?
- html - 无法将“小”标签与“标签”标签内联
- php - PHP 和正则表达式:如何使用 unicode 单词(包括带有 ' 的缩写)拆分字符串?
- c++ - 物理向量构造函数,幅度和单位向量函数不起作用c ++