Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/249.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 如何将yii框架中的会话用于我的第三方应用程序_Php_Yii - Fatal编程技术网

Php 如何将yii框架中的会话用于我的第三方应用程序

Php 如何将yii框架中的会话用于我的第三方应用程序,php,yii,Php,Yii,我使用Yii框架,在框架中我使用第三方应用程序,即mibew Messenger(或聊天) 我需要的是将$\u session变量(用户名和密码)从yii framework传递到Mibew messenger,因为我想在登录到yii应用程序时自动登录 Mibew messenger文件夹位于应用程序的应用程序文件夹中 那么,如何在yii框架之外使用相同的会话呢 谢谢你的帮助。我想你可以做以下几点: Yii::app()->session['usename'] = $user; Yii:

我使用Yii框架,在框架中我使用第三方应用程序,即mibew Messenger(或聊天)

我需要的是将
$\u session
变量(用户名和密码)从yii framework传递到Mibew messenger,因为我想在登录到yii应用程序时自动登录

Mibew messenger文件夹位于应用程序的应用程序文件夹中

那么,如何在yii框架之外使用相同的会话呢


谢谢你的帮助。

我想你可以做以下几点:

Yii::app()->session['usename']  = $user;
Yii::app()->session['password'] = $password;
1) 在需要访问会话的第三方应用程序文件中:

2) 如果您有会话的特定配置,则需要配置:

3) 对于标准会话(而不是步骤2),您应该尝试:

然后您可以在框架中使用会话:
$session[$var\u name]
$session->get/set($var\u name)

我没有检查它的解决方案。如果出现错误,请将其写在注释上

已更新

只需要做:


然后您可以通过
Yii::app()

使用所有框架功能,您可以通过
Yii::app()->user->ID获取登录的用户ID
然后使用登录id在数据库中查询用户名和密码,如下所示:

$userInfo = User::model()->findByPk(array('id'=>Yii::app()->user->id));
$user = $userInfo->username;
$password = md5($this->userInfo->password);
现在你们可以把这些变量放到我认为不必要的会话中。因为您应该直接将这些变量放入mibew。但是,如果您想将这些变量放入Yii会话,只需执行以下操作:

Yii::app()->session['usename']  = $user;
Yii::app()->session['password'] = $password;

这是您自己制作的细节。

对于Yii2,它是这样做的:

defined('yi_DEBUG')或define('yi_DEBUG',true)//根据您的需要设置这些
定义('yi_ENV')或定义('yi_ENV','dev');
require(_DIR__.'/../vendor/autoload.php');
要求(_DIR__.'/../vendor/yiisoft/yii2/Yii.php');
$config=require(_DIR__.'/../config/web.php');
新的yii\web\Application($config);
然后,您可能希望立即打开会话,以便$\u会话此后始终可用:

Yii::$app->session->open();
您现在可以像正常情况一样使用
$\u SESSION
,也可以使用例如
Yii::$app->SESSION['sessionvarname']='somevalue'(或指南章节中描述的任何方法)

此外,例如,如果您想使用Yii的一些资产,您可以这样加载它们:

$asset = Yii::$app->assetManager->getBundle('yii\web\YiiAsset', true);
echo yii\helpers\Html::jsFile(Yii::$app->assetManager->getAssetUrl($asset, 'yii.js'));
// -- or --
echo '<script type="text/javascript" src="'. Yii::$app->assetManager->getAssetUrl($asset, 'yii.js') .'"></script>';
$asset=Yii::$app->assetManager->getBundle('Yii\web\YiiAsset',true);
echo yii\helpers\Html::jsFile(yii::$app->assetManager->getassetur($asset,'yii.js'));
//或者--
回声';

谢谢你的回答,你知道如果我需要使用'Yii::app()->user'我该怎么做吗?如何获得它?我需要包括任何其他文件吗?谢谢,您需要创建CWebUser的对象。它从会话本身获取所有信息。等一下。新的解决方案(如果正确,我将重写我的答案):尝试包含
YiiBase.php
和您的配置。do
Yii::createWebApplication($config)
(如
index.php
中,不调用方法
run()
)。然后,我想,您可以在第三个应用程序中使用
Yii::app()。它一定有用!好的,我把require('../../framework/YiiBase.php');需要('../protected/config/main.php');Yii::createWebApplication($config);我得到了错误,致命错误:)(!)致命错误:无法在第55行的/opt/local/www/projects/theuniversalgroup/app/framework/YiiBase.php中重新声明类YiiBase。抱歉,我犯了错误,我添加了一些代码,现在一切正常:)我忘了添加$config等于:)像这样:require('../framework/yii.php')$config=require('../../protected/config/main.php');Yii::createWebApplication($config);
Yii::app()->session['usename']  = $user;
Yii::app()->session['password'] = $password;
Yii::$app->session->open();
$asset = Yii::$app->assetManager->getBundle('yii\web\YiiAsset', true);
echo yii\helpers\Html::jsFile(Yii::$app->assetManager->getAssetUrl($asset, 'yii.js'));
// -- or --
echo '<script type="text/javascript" src="'. Yii::$app->assetManager->getAssetUrl($asset, 'yii.js') .'"></script>';