你好,我遇到一個(gè)問(wèn)題,搞了一個(gè)下午,查不到原因所在。
這個(gè)問(wèn)題是在線(xiàn)自動(dòng)升級(jí)后造成的。
也就是說(shuō)程序原本可以用,升級(jí)后不讓用了。
admin.php?s=yitihua&c=home&m=edit&id=4這個(gè)連接是有效的,
admin.php?s=yitihua&c=category&m=index&appid=2這個(gè)鏈接報(bào)錯(cuò)了,要求登錄后臺(tái),卡在登錄后臺(tái)頁(yè)面。準(zhǔn)確的說(shuō),這個(gè)連接下的文件無(wú)法驗(yàn)證管理員身份了。
home控制器和Category的寫(xiě)法是一樣的啊。
先貼home的
<?php namespace Phpcmf\Controllers\Admin;
class Home extends \Phpcmf\Table
{
public function __construct(...$params)
{
parent::__construct(...$params);
\Phpcmf\Service::V()->assign([
'menu' => \Phpcmf\Service::M('auth')->_admin_menu(
[
'應(yīng)用概覽' => [APP_DIR.'/'.\Phpcmf\Service::L('Router')->class.'/index', 'fa fa-list'],
'新增應(yīng)用' => [APP_DIR.'/'.\Phpcmf\Service::L('Router')->class.'/add', 'fa fa-clone'],
'更新緩存' => ['ajax:yitihua/home/cache_update', 'fa fa-refresh'],
'help' => [350],
]
),
]);
// 支持附表存儲(chǔ)
$this->is_data = 0;
$this->my_field = array(
);
// 初始化數(shù)據(jù)表
$this->_init([
'table' => 'yth_app',
'field' => $this->my_field,
'order_by' => 'id asc',
]);
// 表單顯示名稱(chēng)
$this->name = dr_lang('應(yīng)用概覽');
\Phpcmf\Service::V()->assign([
'field' => $this->my_field,
]);
}
public function index() {
list($tpl) = $this->_List();
// print_r($this->_List());exit;
// 輸出模板 后臺(tái)位于 ./Views/home_list.html
\Phpcmf\Service::V()->display($tpl);
}
//修改
public function edit() {
list($tpl,$data) = $this->_Post(intval(\Phpcmf\Service::L('Input')->get('id')));
$data['seo']=dr_string2array($data['seo']);
$data['unified_user_groups']=dr_string2array($data['unified_user_groups']);
$data['unified_data_source']=dr_string2array($data['unified_data_source']);
$data['unified_template']=dr_string2array($data['unified_template']);
\Phpcmf\Service::V()->assign('data',$data);
\Phpcmf\Service::V()->display('yth_admin_edit_app.html');
}這是Category的
<?php namespace Phpcmf\Controllers\Admin;
class Category extends \Phpcmf\Table
{
public $module; // 模塊信息
public $is_scategory; // 選擇欄目類(lèi)型
protected $_is_extend_var = 0; // 繼承屬性變量
// 上級(jí)公共類(lèi)
public function __construct(...$params) {
parent::__construct(...$params);
// 定義頁(yè)首的按鈕,
\Phpcmf\Service::V()->assign([
'menu' => \Phpcmf\Service::M('auth')->_admin_menu(
[
'應(yīng)用管理' => [APP_DIR.'/home/index', 'fa fa-list'],
'新增應(yīng)用' => [APP_DIR.'/home/add', 'fa fa-clone'],
'更新緩存' => ['ajax:yitihua/home/cache_update', 'fa fa-refresh'],
'help' => [350],
]
),
]);
$this->_Extend_Init();
}
// 繼承類(lèi)初始化
protected function _Extend_Init() {
// 初始化模塊
$dir = APP_DIR ? APP_DIR : 'share';
// 支持附表存儲(chǔ)
$this->is_data = 0;
// 模塊顯示名稱(chēng)
$this->name = dr_lang('數(shù)據(jù)一體化[%s]', $dir);
// print_r($this->is_scategory);exit;
// 初始化數(shù)據(jù)表
$this->_init([
'table' => 'yth_category',
'field' => '',
'show_field' => 'name',
'order_by' => 'displayorder ASC,id ASC',
]);
//欄目涉及到所屬應(yīng)用id
$appid = intval(\Phpcmf\Service::L('Input')->get('appid'));
// 寫(xiě)入模板 快捷按鈕
\Phpcmf\Service::V()->assign([
'appid' => $appid,
'uriprefix' => APP_DIR."/category",
'module' => $this->module,
'index_url' => \Phpcmf\Service::L('Router')->url(APP_DIR.'/category/index',['appid' => $appid]),
'add_url' => \Phpcmf\Service::L('Router')->url(APP_DIR.'/category/add',['appid' => $appid]),
'edit_url' => \Phpcmf\Service::L('Router')->url(APP_DIR.'/category/edit',['appid' => $appid]),
'backIndex_url' => \Phpcmf\Service::L('Router')->url(APP_DIR.'/category/index',['appid' => $appid]),
'reply_url' => \Phpcmf\Service::L('Router')->url(APP_DIR.'/category/index',['appid' => $appid]),
'copy_url' => \Phpcmf\Service::L('Router')->url(APP_DIR.'/category/copy',['appid' => $appid]),
'all_add_url' => \Phpcmf\Service::L('Router')->url(APP_DIR.'/category/all_add',['appid' => $appid]),
]);
}
public function index() {
$appid = intval(\Phpcmf\Service::L('Input')->get('appid'));
$data = \Phpcmf\Service::M()->table($this->init['table'])->where('appid',$appid)->order_by('displayorder asc,id asc')->getAll();
if(!empty($data)){
\Phpcmf\Service::M('category')->init($this->init); // 初始化內(nèi)容模型
$category = \Phpcmf\Service::M('category')->repair($data);
\Phpcmf\Service::V()->assign([
'list' => $this->_get_tree_list($category)
]);
}else{
\Phpcmf\Service::V()->assign([
'list' => ""
]);
}
\Phpcmf\Service::V()->assign([
'list_url' =>\Phpcmf\Service::L('Router')->url(APP_DIR.'/category/index'),
'list_name' => ' <i class="fa fa-reorder"></i> '.dr_lang('欄目管理'),
'move_select' => \Phpcmf\Service::L('Tree')->select_category(
$category,
0,
'name="catid"',
dr_lang('頂級(jí)欄目'),
0, 0
),
]);
// 輸出模板 后臺(tái)位于 ./Views/category_list.html
\Phpcmf\Service::V()->display("category_list.html");
}剛開(kāi)始開(kāi)發(fā)這個(gè)應(yīng)用時(shí),對(duì)于迅睿cms是個(gè)新手,一邊摸索一邊寫(xiě)的。
升級(jí)框架前,這樣寫(xiě)是可以的。
現(xiàn)在無(wú)法使用了,我想知道您能不能看出是什么問(wèn)題。
是什么錯(cuò)誤呢,主要看你什么錯(cuò)誤,好對(duì)癥下藥
開(kāi)源是一種精神,但不是義務(wù),幫忙是情分,不幫也不要抱怨,建議大家多研究代碼、多閱讀代碼、多翻閱社區(qū)歷史問(wèn)題!
回復(fù)@官方研發(fā)實(shí)習(xí)技術(shù)
這是我要訪(fǎng)問(wèn)的鏈接,會(huì)提示登錄,然后登陸后還是這個(gè)頁(yè)面。
因?yàn)閡rl里要訪(fǎng)問(wèn)的鏈接,驗(yàn)證成功后會(huì)前往這個(gè)鏈接,就是admin.php?s=yitihua&c=category&m=index&appid=2
然后回又要驗(yàn)證,
這個(gè)控制器category里沒(méi)驗(yàn)證到管理員身份
這種情況應(yīng)該是你沒(méi)有登錄成功導(dǎo)致的,
通過(guò)這個(gè)地址登錄是否會(huì)登錄成功呢?
開(kāi)源是一種精神,但不是義務(wù),幫忙是情分,不幫也不要抱怨,建議大家多研究代碼、多閱讀代碼、多翻閱社區(qū)歷史問(wèn)題!
回復(fù)@官方研發(fā)實(shí)習(xí)技術(shù)
我試過(guò)了,我確認(rèn)我是登錄成功的。
那奇怪了,這種格式的地址,理論上登錄成功會(huì)跳轉(zhuǎn)到新的地址去
開(kāi)源是一種精神,但不是義務(wù),幫忙是情分,不幫也不要抱怨,建議大家多研究代碼、多閱讀代碼、多翻閱社區(qū)歷史問(wèn)題!
查了一個(gè)晚上,一個(gè)莫名其妙的bug
呵呵,怎么查都沒(méi)有原因,偶然之間試驗(yàn)出來(lái)了
URL參數(shù)中不能帶有&app類(lèi)的字母,比如我用了參數(shù)appid,結(jié)果就混亂了。
哎,參數(shù)中不能有app,不然就報(bào)錯(cuò)。
回復(fù)@官方研發(fā)實(shí)習(xí)技術(shù)
app是系統(tǒng)保留關(guān)鍵字,不要亂加的,c,m,s,app,這幾個(gè)都是系統(tǒng)保留的參數(shù)
開(kāi)源是一種精神,但不是義務(wù),幫忙是情分,不幫也不要抱怨,建議大家多研究代碼、多閱讀代碼、多翻閱社區(qū)歷史問(wèn)題!
這回知道了,前邊的版本,這么寫(xiě)沒(méi)報(bào)錯(cuò),所以就沒(méi)發(fā)現(xiàn)。這次升級(jí)了就不能用了,才去查原因。
回復(fù)@官方研發(fā)實(shí)習(xí)技術(shù)