使用 HumHub 中的第三方应用程序获取用户详细信息
我正在为Humhub建立自定义网络研讨会.我正在使用custom_pages模块( https://www.humhub.org.org.org.org.org.org/marketplace/details/details? id = 13 ) 如何获取应用程序中登录的当前的用户详细信息? 有人给了我这个代码尝试 //plug in to Yii application require_once('../protected/vendors/yii/yii.php'); Yii::createWebApplication('../protected/config/main.php'); //------------------ //print_r(Yii::app()); echo " "; //check if user is logged in (not a guest) if(!Yii::app()->user->isGuest) { //if
12 2024-04-23
编程技术问答社区
在非 WSDL 模式下使用 PHP SOAP 客户端
我正在为客户提供API.我收到以下信息: API Url: http://xyz-crm.example/WebAPI/Custom/project_name/XML/ Username: foobar password: spameggs 我需要在非WSDL模式下为相同的PHP SOAP客户端配置.我已经写了以下内容,但似乎不起作用: $wsdl = null; $options = array( 'uri' => 'http://xyz-crm.example/WebAPI/Custom/project_name/XML/', 'location' => 'http://xyz-crm.exmaple.com/WebAPI/Custom/project_name/XML/', 'login' => 'foobar', 'password' => 'spameggs' ); $client = new SoapC
20 2024-04-23
编程技术问答社区
"application.extensions.yiiext.renderers.smarty.ESmartyViewRenderer"。
我已经将智能模板集成到我的应用程序中,如指定在这里 但是我遇到了上述错误. 我尝试了所有可能的方法来粘贴 yii智能解析器 config 'viewRenderer'=>array( 'class'=>'application.ext.ESmartyViewRenderer', 'fileExtension' => '.tpl', //'pluginsDir' => 'application.smartyPlugins', //'configDir' => 'application.smartyConfig', //'prefilters' => array(array('MyClass','filterMethod')), //'postfilters' => array(), //'config'=>array( // 'force
20 2024-04-22
编程技术问答社区
更新 yii 中的会话变量
我想知道如何更新会话变量, 在我的控制器中,当我在第1页上时, 在我的公共功能actionpage1() 我有这个代码 $quantity=1; $sessionCart[] = array('product_id' => $_POST['documents'], 'document' => $productInfo->name, quantity'=> $quantity); 所以我的默认数量是1, 当我转到另一个页面2时,然后单击"更新"按钮, 我希望我的$数量等于$ _post ['ventity']我的新valule, (这是) 解决方案 您可以将会话数据存储在以下方式: Yii::app()->user->setState('key', 'value'); 并使用: Yii::app()->user->get
14 2024-04-22
编程技术问答社区
在会话中存储数组
我试图将一些数据存储为会话中的数组,但是该函数似乎不起作用.它不会丢弃任何错误,但是每次我添加数据时,它都会覆盖先前的数据.我正在使用yii,这是动作 public function actionStoreProducts($name) { $name=trim(strip_tags($name)); if(!empty($name)) { if(!isset(Yii::app()->session['_products'])) { Yii::app()->session['_products']=array($name); echo 'added'; } else {
16 2024-04-22
编程技术问答社区
注销和登录时保留会话
我这样打印出会话ID: session->sessionID; ?> i log-in并检查我的ID时,例如:huh09vuo33scdlkmfuc8651t12.如果我注销并再次检查,我的ID保持不变.但是,如果我然后再次登录,会话ID会更改! 我的问题是,我的会话中有信息,我需要在cookie和登录后重新加载.我该如何唯一地确定登录的用户是正确的用户,如果他的会话ID更改? ? 解决方案 不要问我如何,但这解决了我的问题: 我更改了: Yii::app()->user->logout(); to Yii::app()->user->logout(false); 也许它会帮助别人,或者至少将它们转向正确的方向. 其他解决方案 组件Yii::app()->user是CWebUser实例, $ destroysession ( boolean )是否要摧毁整个会议. 默认为true
12 2024-04-22
编程技术问答社区
在单元测试 Yii 控制器时已经发送了 session_regenerate_id()-headers
我正在尝试对控制器进行单位测试(YII框架). /** * @dataProvider provider */ public function testActionEdit_view_login($controller){ $user = new CWebUser; $user->id = 978; $identity = new UserIdentity('me@test.com', '123456'); $user->login($identity); $controller->actionEdit(); $output = ob_get_contents(); assertContains('Add/Change Profile Picture:', $output); assertContains('bio', $output); assertContains('specialtie
6 2024-04-22
编程技术问答社区
在 Yii 框架中设置会话
我正在使用yii开发网站. 我在页面中有一个按钮.当用户单击它时,我需要设置会话变量,并在用户单击另一个按钮时获取会话值. 我该怎么做? 解决方案 使用 CWebUser 状态方法 //set session variable Yii::app()->user->setState("state_name", "value"); //check session variables Yii::app()->user->hasState("state_name"); //get session variable Yii::app()->user->getState("state_name"); //delete session variable (thanks @Kailas) Yii::app()->user->setState("state_name", null); 其他解决方案 您可以使用CWEBUSER的Yii::app()->user->set
12 2024-04-22
编程技术问答社区
Yii 会话在多服务器中不起作用
我有1个负载平衡服务器和2个Web服务器:Server1和Server2.它们都与数据库服务器连接. 我的问题: 我正在使用YII会话来控制会话. 登录成功后,载荷服务器将服务器重定向到服务器2 =>不保留我在(server1) 之前登录的会话 我该怎么做才能将session保持在server2 中 解决方案 除了查尔斯的评论外,还有其他一些想法. 1)您可以使用 cdbhttpsession .这将将您的会话存储在Web服务器后面的DB服务器中. 2)您是否为服务器启用了Suhosin?如果这样做,它将导致许多头痛,因为Suhosin对您的会话变量进行加密(并且会在每个服务器上以不同的方式进行),从而导致您的会话不在服务器之间共享. . 祝你好运,如果有的话,请回来更多问题.转移到负载平衡器花了我们一段时间,因为我们通过错误. 其他解决方案 您有几个选择: 1)如果您的负载平衡器支持它,则可以启用会话持久性,以便将用户始终发送到与最初击中的服务器
6 2024-04-22
编程技术问答社区
替换Yii框架中相同ID用户的数据
我如何解决此错误?我有问题替换来自同一ID的数据,这是我的_ from: isNewRecord ? 'Create' : 'Update'); ?> 这是我的控制器动作创建: public function actionCreate() { $model=new TblUasUts; // Uncomment the following line if AJAX validation is needed // $this->performAjaxValidation($model); if(isset($_POST['TblUasUts'])) { $model->attributes=$_POST['TblUasUts']; if($model
10 2024-04-05
编程技术问答社区
在Yii中为条目设置下一个/上一个按钮的最佳方式
我想知道什么是为数据库中的条目创建下一个/上一个按钮的最佳方法. 假设我们有一个带有图像的桌子,每个图像都有一个ID和一个路径. 如果当前图像的ID等于" 9",我该如何获得下一个ID和先前的ID? 我已经在这里找到了解决方案 https://stackoverflow.com/a/8874382 但这似乎是最新的选择.如果我们的数据库中有10000多个条目(图像),这将使服务器不堪重负.首先,它选择所有条目,然后尝试在数组中复制所有结果.之后,将数组搜索当前ID.非常慢. 我正在考虑设置查询的限制,但是在此之后我该如何获取下一张图片? 另一个解决方案(更好)解决方案将是获取当前图片的ID并减少/递增,直到找到具有新ID的另一个图像为止.我认为这比链接中提供的功能更快. 另外,在同一链接中,还有另一个想法,可以在当前图片的模型中设置prev_id和next_id.但是在这里我们有同样的问题,我们如何找到它们?即使我们找到了它们,在当前图片中存储有关上级/下一个图片
6 2024-04-05
编程技术问答社区
踏着 "我应该看到 "的步伐,没有看到
在YII框架中使用Behat,我观察到它的奇怪行为:Behat使用 之类的步骤时找不到某些文本 Then I should see "some text" 有些文本发现正常,但有些却没有.为了确保我在页面上,我认为我已经在页面上,我在视图文件中添加了一些标记并看到它们. 所以,场景是 Scenario: editing journal Given the following journals are present: | name | link | description | | Murzilka | http://www.murz.com | advanced child journal| | Nature | www nature com | nice journal
10 2024-03-30
编程技术问答社区
生成Yii翻译信息文件
我有兴趣知道是否有一个脚本或其他可以在控制器/project中收集和生成YII翻译消息 例如.如果我在控制器中有以下代码 Yii::t('blog', 'Your name'); Yii::t('category', 'Category name'); 它应以blog.php和category.php的形式生成英文翻译消息文件,并在消息目录中使用上述字符串.如果有人知道一种方法,请告诉我.谢谢 解决方案 无需重新发明轮子.您可以使用yiic(如果转到框架文件夹并输入yiic help message>),则可以获得有关其用法所需的所有信息).为了方便起见,我要在这里粘贴它. 用法yiic消息路径/to/config/file 描述此命令搜索要翻译的消息 指定的源文件并将它们编译为PHP数组 消息源. 参数 * config-file:必需,配置路径 文件.您可以在框架/消息/config.php中找到一个示例. 该文件可以放置在任何地方,必
6 2024-03-28
编程技术问答社区
在gearman中启动和停止工人的工作 php
我已经成功配置和使用了Gearman及其PECL PHP扩展名.我正在使用它来执行有关背景中长期SQL查询的漫长过程.我正在使用yii btw,如果这些细节会有所帮助. 这是我的使用方式: public function actionProcessWithGearman(){ $output = shell_exec('gnome-terminal -e "php workers/worker.php" > /dev/null 2>/dev/null &'); $client = new GearmanClient(); $client->addServer(); $result = $client->doBackground('executeJob',//parameters); } 一些细节: 如果您注意到我运行 gnome-terminal 首先,这样我就可以看到该过程而不是直接使用 php命令 ,我还添加了 /dev/null ,以便它不再等待响应.
12 2024-03-27
编程技术问答社区
在php中为长期运行的进程创建后台进程
好吧,如果这是另一个问题的重复,请原谅我,但是在搜索后,我没有找到明确的答案.我基本上想做的是让我的PHP Web应用程序启动某些事件(例如电子邮件或报告生成器),该事件可能需要几分钟才能完成并立即将控制返回页面.我来自一个.NET世界,在那里可以通过线程轻松完成这一点. 所以这是工作流程: 用户单击"生成报告"按钮 ajax呼叫对'../blah/generate-report'的呼叫,并立即返回 启动过程并运行直到完成,而用户可以从事他的业务 用户可以返回报告页面并查看进度:"报告50%完成" 完成此操作的最佳方法是什么?简短的答案很好.我不想为我写代码,只是一些指导.我查看了Shell_Exec,但我不确定这是最好的方法还是是否是,如何使用它来处理Web应用程序中的功能. (如果有任何区别,我正在使用YII框架).谢谢. -jason 解决方案 最好(唯一的AFAIK)启动新的线程类似PHP中的线程的方法是使用curl之类的东西创建新的PHP请
10 2024-03-27
编程技术问答社区
Yii: 后台和前台分离的.htaccess和urlManager
我很难在yii项目中配置我的.htaccess和urlmanager,以在 http://www.example中具有前端. .欢迎任何帮助.谢谢. /assets /backend /controllers /config main.php /models /views /common /models /protected /controllers /config main.php /models /views .htaccess backend.php index.php 解决方案:在 @bool.dev的巨大帮助之后,一切正常工作,所以我在这里添加了每个需要的最终文件.在前端,我正在为URL使用路径格式并隐藏index.php /backend/config/main.php $backend=dirname(dirname(__FILE__)); Yii::setPathOfAl
12 2024-03-26
编程技术问答社区
Backbone Sync返回一个空的$_POST数组
我正在尝试使用骨干和YII框架进行第一个Restful应用程序. 我对获取方法没有问题,但是我现在被帖子方法陷入困境,以创建一个新元素. 我有一个骨干的评论模型: var commentModel = Backbone.Model.extend({ urlRoot: "index.php/api/comments", idAttribute: 'id', defaults: { content: "Empty comment", status: 1 } }); 在我的视图中,我添加了一个函数来创建一个新的评论,传递了相对形式的值: on_submit: function(e) { var new_comment = new Comment({author_id: this.$('#author_text').val(), content: this.$('#content_t
10 2024-03-26
编程技术问答社区
Yii2 webapp在Azure上无法运行
我分别拥有基于YII + YII2框架的网站 +服务应用程序. 我尝试在azure 这是详细信息: Local: Xampp server htdocs/ myapp/ dashboard/ ---> this the website folder (Yii) modules/ v1/ -----> here are my yii2 services and controllers. 现在,当我用url本地尝试: 当我尝试azure url时,即/srvdetails 不工作. 有人可以帮我吗? 解决方案 根据您的描述,您的应用程序中似乎在URL中具有隐藏index.php模式.由于IIS在Azure Web应用程序上处理PHP脚本,因此您可以尝试生成带有以下内容的web.config文件,而不是您的:
16 2024-03-24
编程技术问答社区
PHPUnit自动加载类
简短的问题 如何使自动加载器找到运行PHP测试所需的所有类? 详细问题 我想自动加载我在eclipse中使用的phpunit中使用的类.我的目录结构如下. Project (called yii-app) protected dirA classA.php dirB classB.php yii-1.1.14.f0fee9 Yii.php tests ClassATest.php ClassBTest.php bootstrap.php Autoloader.php 我使用bootstrap.php和Autoloader.php,我找到了Yii::import('application..*') 当我尝试在ClassBTe
12 2024-03-21
编程技术问答社区
如何在Yii中安装AWS SDK
我想在我的YII项目中使用Amazon AWS SDK进行PHP,但是我会得到各种包含错误(例如include(CFCredentials.php): failed to open stream: No such file or directory). 我认为这可能与yii的假设有关,即类名称必须匹配文件名... 我们该怎么办? 解决方案 我已经做到了: spl_autoload_unregister(array('YiiBase', 'autoload')); require_once PATH_TO_AWS_SDK . 'sdk.class.php'; // I write down in PATH_TO_AWS_SDK.'config.inc.php' my CFCredentials spl_autoload_register(array('YiiBase', 'autoload')); $amazon_opts = array( 'curlo
8 2024-03-21
编程技术问答社区