小编Chr*_*ian的帖子

Joomla获得插件ID

我写了一个Joomla插件,最终会加载一个库.

库的路径是一个插件参数,因此当路径不正确时,后端会弹出一条消息,以及编辑插件参数的链接:

/administrator/index.php?option=com_plugins&view=plugin&client=site&task=edit&cid[]=36

看到最后的36?这是我的插件在数据库中的id(表jos_plugins).

我的问题是这个id在安装时会发生变化,也就是说,在不同的安装上,这将是另一回事.所以我需要以编程方式找到这个id.

问题是我无法从插件对象本身找到这个id(至于为什么不能,这将是joomla可以说是短视的设计决策).

因此,除非你知道一些巧妙的技巧,(我已经检查并仔细检查了JPlugin和JPluginHelper类),否则我将使用数据库.

编辑; 一些有用的链接:

猜猜我会用最后一个链接的智慧......

php joomla plugins

5
推荐指数
2
解决办法
1494
查看次数

PHP客户端PIN安全性

我目前正在开发一种系统,其功能是客户可以通过提供PIN"号码"查看其购买/续订/等的详细信息.

由于我们定位的客户类型,正在使用PIN而不是登录信息.PIN将打印在发送给他们的文档上.

提供PIN时显示的视图不会显示高度敏感的信息,如信用卡等,但不太敏感,如产品名称,类型,价格,条形码,维修等.

有问题的是PIN.我选择使用随机5个字符的PIN码(0-9,az AZ) - 区分大小写.我将删除一些同形字符('我','1','l','0','O','rn','vv'),所以组合的实际数量实际上更低.

我有几个问题:

  1. 这种做法可以接受吗?
  2. 我应该编写一个锁定机制,以便在尝试大量失败的情况下"禁止"来自IP的流量吗?*
  3. 我应该写一个错误检查系统(类似于信用卡号码中的Luhn算法)吗?
  4. *我应该使用验证码系统吗?

php captcha lockout luhn

5
推荐指数
1
解决办法
624
查看次数

从虚拟/自定义"Web服务器"调用PHP

基本上,我试图弄清楚如何从"Web服务器"调用PHP.

我已经阅读了文档,但它没有多大帮助.

据我所知,有三种方法可以调用PHP:

  • 通过命令行(例如:php -f "/path/to/script.php")
  • 通过CGI(??)/通过FastCGI(???)
  • 通过Web服务器(例如:Apache)模块

那么让我们从CGI开始吧.也许我只是盲目,但规范没有提到地球上的Web服务器如何将数据(标题和回调)传递给实现CGI的东西.FastCGI的情况更糟.

接下来,我们有特定于服务器的模块,我甚至不知道要搜索什么,因为所有的线索都无处可去.

php webserver cgi fastcgi mod-php

5
推荐指数
1
解决办法
1853
查看次数

cURL错误1:不支持的协议:https

所有,

我试图通过PHP的cURL包装器方法HTTPS POST一个SOAP请求,但不断收到以下cURL错误:错误1:不支持的协议:https,任何想法为什么会发生这种情况?目标网址很好,我可以通过命令行访问它.

$ch = curl_init();
curl_setopt($ch, CURLOPT_URL,$this->apiURL);

curl_setopt($ch, CURLOPT_HTTPHEADER, array(
    'Content-type: text/xml;charset=UTF-8',
    'Content-length: '.strlen($SOAPRequest),
    'SOAPAction: ""'
) ); 

curl_setopt($ch, CURLOPT_POSTFIELDS, $SOAPRequest);

curl_setopt($ch, CURLOPT_RETURNTRANSFER,true);

$result = curl_exec($ch);
Run Code Online (Sandbox Code Playgroud)

curl network-protocols

4
推荐指数
1
解决办法
1万
查看次数

PHP奇怪的DOCUMENT_ROOT

基本上,我正在编写一个框架,作为其功能的一部分,它应该为最终开发人员提供一组完善的URI /路径.

这些路径中的两个使用$_SERVER['DOCUMENT_ROOT']:

/**
 * Absolute filesystem path to web root install (aka docroot).
 * @example "C:/wamp/www" OR "/home/visitgoz/public_html/"
 */
CFG::set('ABS_WWW',
    str_replace(
        $tmpseps,
        DIRECTORY_SEPARATOR,
        truepath($_SERVER['DOCUMENT_ROOT']).'/'
    )
);

/**
 * K2F path relative to web root.
 * @example /K2F/
 */
CFG::set('REL_K2F',
    str_replace(
        array('//','\\'),
        '/',
        str_replace(CFG::get('ABS_WWW'),'/',CFG::get('ABS_K2F'))
    )
);
Run Code Online (Sandbox Code Playgroud)

该代码已经过微调,可以在Linux和Windows上运行.显然,它大部分时间都在Linux上运行,实际上在VPS上非常无缝.

但是,最近,我在HG转销商帐户(共享托管)上试了一下,这一切都破了.我在有问题的机器上打印出$ _SERVER中的数据:

Array
(
**  [DOCUMENT_ROOT] => /usr/local/apache/htdocs
    [GATEWAY_INTERFACE] => CGI/1.1
    [HTTP_ACCEPT] => text/html,application/xhtml+xml,application/xml;q=0.9;q=0.8
    [HTTP_ACCEPT_CHARSET] => ISO-8859-1,utf-8;q=0.7,*;q=0.7
    [HTTP_ACCEPT_ENCODING] => gzip,deflate
    [HTTP_ACCEPT_LANGUAGE] => en-gb,en;q=0.5
    [HTTP_CONNECTION] => keep-alive
    [HTTP_COOKIE] …
Run Code Online (Sandbox Code Playgroud)

php shared-hosting document-root k2f

4
推荐指数
1
解决办法
2161
查看次数

replaceHtmlAt在contentEditable div中使用jQuery

我正在尝试实现以下功能:

<div id="editor" contenteditable="true">
I am some text.
</div>

$('#editor').replaceHtmlAt(start, end, string);
Run Code Online (Sandbox Code Playgroud)

使用案例:

  1. 用户输入@内部#editor

  2. keyup事件挑选了这个@位置

  3. $('#editor').replaceHtmlAt(position of @, position of @ + 1, "<div>Hello</div>");
    Run Code Online (Sandbox Code Playgroud)

这可能吗?

编辑

通过这样做,我得到了它的工作

$(this).slice(pos-1).html('<span id="mention'+pos+'">@</span>');
Run Code Online (Sandbox Code Playgroud)

但是我遇到了另一个问题.在Chrome中,#editor内的插入符号位置一直向后移动...如何在span标记内的'@'后恢复插入符号的位置?

html javascript jquery

4
推荐指数
1
解决办法
902
查看次数

DocBlock 类类型继承

虽然这个问题一般是关于DocBlocks的,但我的用例是关于 PHP。

考虑以下 PHP 代码:

<?php

class ParentClass {
    /**
     * Says 'hi' to the world.
     * @return ParentClass Returns itself for chaining.
     */
    public function say_hi(){
        echo 'hi';
        return $this;
    }
}

class ChildClass extends ParentClass {
    /**
     * Says 'bye' to the world.
     * @return ChildClass Returns itself for chaining.
     */
    public function say_bye(){
        echo 'bye';
        return $this;
    }
}

$c = new ChildClass;
$c->say_hi()->say_b| <- type hinting won't suggest "say_bye" here

?>
Run Code Online (Sandbox Code Playgroud)

这只是一个带有一些链接的琐碎类。扩展类没有类型提示,因为父类的文档块正在使用特定的类名,该类名没有子类的方法/属性。

假设我们确实想要类型提示功能,(如果没有,请留下这个问题 - …

php javadoc phpdoc docblocks

4
推荐指数
1
解决办法
1954
查看次数

节点服务器GUI前端

好吧,我们都知道无头服务器.实际上,可能绝大多数服务器都是无头的.

像往常一样(看起来),我的情况要求其他东西.基本上,建议的架构看起来或多或少像:

RTG SA

应用服务器(node.js)位于物理连接到两个屏幕的物理机器上.

在这台机器和网络之间有各种各样的常规网络层.请记住,这种设置的主要原因之一是物理可移植性:即客户端获得必要的硬件作为产品.服务器本身依赖于CDN来获取静态文件等.

每个监视器/屏幕需要显示由同一节点服务器生成的不同内容.

现在这个服务器可能会运行在Windows上,但是给出了一个概念(这是我的问题之后),我可以更改代码以在目标平台上运行.好吧,根据我的代码,这甚至可以自动完成.

所以,我的实际问题.Node非常灵活,它可以运行任何东西 - 甚至是定制软件(C++,Delphi,甚至是GM).只是shell_exec('node server.js'),我们走了.

但屏幕本身需要非常动态.因此节点需要以某种方式影响两个屏幕.我正在考虑的几个选项:

  • 一个自定义应用程序,创建两个可调整大小,无特征的窗口,嵌入式Chrome浏览器由节点服务器以某种方式控制(节点如何对这些浏览器做出反应?)
  • 一个自定义应用程序,根据节点CLI输出,更新两个屏幕的UI.由于我需要一些华而不实的UI,这个应用程序将在类似GameMaker或类似引擎的东西中创建.

PS:以防万一你问; 与网络相对的物理连接(例如,基于网络的GUI前端)是设计的.

user-interface ipc node.js

4
推荐指数
1
解决办法
4302
查看次数

Route.php找不到我创建的控制器类

我正在尝试构建一个silex应用程序.我的文件结构是:

ROOT/
    /App/
        /Controller/{IndexController.php}
        /Config/{dev.php,prod.php,route.php}
    /vendor
    /web/{index.php, index_dev.php}

当我试图看到http://localhost/web/我收到错误时:

PHP致命错误:在第2行的../App/config/route.php中找不到类'App\Controller\IndexController'

以下是相关文件:

index_dev.php

<?php

require_once __DIR__.'/../vendor/autoload.php';

require __DIR__.'/../App/config/dev.php';
$app = require __DIR__.'/../App/app.php';

$app->run();

?>
Run Code Online (Sandbox Code Playgroud)

app.php

<?php

use Silex\Application;
use Silex\Provider\TwigServiceProvider;
use Symfony\Component\HttpFoundation\Request;
use Symfony\Component\HttpFoundation\Response;

$app = new Application();

require __DIR__.'/config/route.php';
return $app;

?>
Run Code Online (Sandbox Code Playgroud)

route.php

<?php

$app->mount('/', new App\Controller\IndexController());

?>
Run Code Online (Sandbox Code Playgroud)

IndexController.php

<?php

namespace App\Controller;

use Silex\Application;
use Silex\ControllerProviderInterface;
use Silex\ControllerCollection;

class IndexController implements ControllerProviderInterface {

  public function index(Application $app) {
    return phpinfo();
  }

  public function connect(Application $app) {
    $controllers = …
Run Code Online (Sandbox Code Playgroud)

php silex

4
推荐指数
1
解决办法
4014
查看次数

如何从代码中获取Windows Phone系统语言?

解决方案: 使用CultureInfo.CurrentUICulture

用户可以在以下位置更改Windows Phone的系统语言:设置>语言+区域>手机语言

如何从C#代码中获取所选语言(手机语言)?

以下是我的手机设置:

这是我的代码片段:

System.Diagnostics.Debug.WriteLine(
    "*************************************   CultureInfo.CurrentCulture.Name = " + CultureInfo.CurrentCulture.ToString() + ", "  +
    "CultureInfo.CurrentCulture.CompareInfo = " + CultureInfo.CurrentCulture.CompareInfo + ", " +
    "CultureInfo.CurrentCulture.DisplayName = " + CultureInfo.CurrentCulture.DisplayName + ", " +
    "CultureInfo.CurrentCulture.EnglishName = " + CultureInfo.CurrentCulture.EnglishName + ", " +
    "CultureInfo.CurrentCulture.Name = " + CultureInfo.CurrentCulture.Name + ", " +
    "CultureInfo.CurrentCulture.NativeName = " + CultureInfo.CurrentCulture.NativeName + ", " +
    "CultureInfo.CurrentCulture.TextInfo = " + CultureInfo.CurrentCulture.TextInfo
);
Run Code Online (Sandbox Code Playgroud)

这是输出:

CultureInfo.CurrentCulture.Name = zh-HK,
CultureInfo.CurrentCulture.CompareInfo = CompareInfo - zh-HK,
CultureInfo.CurrentCulture.DisplayName = …
Run Code Online (Sandbox Code Playgroud)

localization windows-phone-7 lang

4
推荐指数
1
解决办法
7181
查看次数