如何使用Zend_Auth的验证用户使用的CKEditor插件pgrfilemanager上传时(h

2019-10-17 04:22发布

你好好人!

我已经使用基于Zend框架1.11.12(从1.10.8升级)的Web应用程序(我的第一个这种类型的)“模块化办法”的文件夹结构,我的意思是说所有的模块都是在application/modules 。 我使用的原则1.2.4

我也使用library的所有第三方库,包括ZF除了2文件夹: CKEditorPGRFilemanager 。 上传文件到图像pgrfile经理从管理面板文件夹中。 这里是我的全局文件结构。

/application
    /configs
        application.ini
        routes.ini
    /layouts
        /scripts
            /partials
                  *.all_the_partials_files.phtml
            *.all_the_layouts.phtml
    /modules
         all_the_module_folders
    Boostrap.php
/logs
/library
    /Zend
    /Doctrine
    /SwiftMailer
    /Abra //where all my classes reside
        /Model
            User.php
            Role.php
            other_doctrine_entities_class
/public
    /javascript
    /css
    /images
        .htaccess // added an htaccess file here
    /fonts
    `/ckeditor`
        a_lot_of_files_including_php_files
        other_folders
        /plugins
            other_folders
            `/pgrfilemanager`
                /php
                    auth.php
                myconfig.php
                other_folders_and_files_including_php
    index.php
    .htaccess

在一点上,我开发这个网站,我没有使用Zend_Acl里所以在在session_start() /public/ckeditor/plugins/pgrfilemanager/php/auth.php工作得很好了一段时间,因为pgrfilemanager想出了一个默认的身份验证功能。 但是一旦我开始使用Zend_Acl里我遇到的问题,如Class __PHP_Incomplete_Class has no unserializer Array时异常session_start()从所谓的~~/auth.php文件。 我最初以为这样做我不使用的事实是,由于Zend_Session ,但显然我非常由于这个事实说明如下 (纠正我,如果我错了感谢)

如何使用它? 谢谢阅读

Answer 1:

因为我发现了一个关于此问题的方法,我想我也有同感,也许我会得到更好的视角。

对于答案Class __PHP_Incomplete_Class has no unserializer Array是明确的,现在为会议做怎样的格式unserialize到PHP的意思还得知道存储在会话对象的定义。

根据该文件结构我创建了一个权威性的文件说myauth.php/public/ckeditor/puglins/pgrfilemanager/userfiles我将把这个路径是pgr/userdir

$path = realpath("../../../../library");
set_include_path(get_include_path() . PATH_SEPARATOR . $path);

require "Zend/Loader/Autoloader.php";

require_once 'Doctrine/Doctrine.php';
spl_autoload_register(array("Doctrine", "autoload"), true);
$loader = Zend_Loader_Autoloader::getInstance();
$loader->registerNamespace(array("Abra_"));
/*$p seem to be empty throwing error on Zend_Config_Ini but returns the config anyway.I never figured out
*/
$p = realpath("./../../../../application/configs/application.ini"); 
try {
    //     $config = parse_ini_file($p, "production");
    $config = new Zend_Config_Ini($p, "production");
    $conn = Doctrine_Manager::connection($config->doctrine->dsn);
    $user = new Abra_Model_User();
    $role = new Abra_Model_Role();
    $auth = Zend_Auth::getInstance();
    if(!$auth->hasIdentity()|| !in_array($auth->getIdentity()->Role->name,  array("superadmin","administrator")) ){
        die("Not authenticated");
    }
} catch (Exception $ex) {
*/
$p = realpath("./../../../../application/configs/application.ini"); 
try {
    //     $config = parse_ini_file($p, "production");
    $config = new Zend_Config_Ini($p, "production");
    $conn = Doctrine_Manager::connection($config->doctrine->dsn);
    $user = new Abra_Model_User();
    $role = new Abra_Model_Role();
    $auth = Zend_Auth::getInstance();
    if(!$auth->hasIdentity()|| !in_array($auth->getIdentity()->Role->name,  array("superadmin","administrator")) ){
        die("Not authenticated");
    }
} catch (Exception $ex) {

}

}

pgr/php/folders.phppgr/php/files.php我包括

$path = realpath("../../../../library");
set_include_path(get_include_path() . PATH_SEPARATOR . $path);

在顶部。 然后我包括pgr/userfiles/myauth.phppgr/myconfig如下所示

include_once dirname(__FILE__) . '/userfiles/myauth.php';

我希望这会帮助别人。 谢谢



文章来源: how to use Zend_Auth to authenticate user when uploading using ckeditor plugin pgrfilemanager