小编Jim*_*Lin的帖子

jQuery - 使用animate()函数重新创建slideDown()效果?

如何使用$ .animate函数重新创建jQuery的$ .slideDown效果?

jquery jquery-effects

13
推荐指数
1
解决办法
8799
查看次数

创建PHP API:检查API请求来自哪个服务器

我正在为网站创建一个PHP API,我想限制对我们服务器上注册的域的API访问(以防止滥用API).所以,这是我现在的方法,而且它应该在纸上看起来相当不错.

  1. API设置为api.example.com.
  2. 想要使用API​​的用户向我们注册,添加他的域并获取API密钥.
  3. API的用户将使用他的API密钥(通过加密他的请求的数据mcrypt),并发送它,经由cURLapi.example.com.
  4. 我的服务器检查此API请求来自哪个域,并将该域与数据库中的API密钥进行匹配.如果有API密钥,API会mcrypt使用该密钥解密请求,然后使用相同的方法加密并发送结果.

我坚持第4步.最初,我打算使用HTTP_REFERER来检查它,但是因为cURL默认情况下没有发送一个,所以它很容易在用户端代码中伪造(据我记得CURLOPT_REFERER),我被困在这里.

有没有方法可以知道此API请求来自哪个域?我看到它可以用一些流行的API来完成,比如reCAPTCHA.由于共享主机(它们具有相同的IP),检查_SERVER ["REMOTE_HOST"]实际上不是一个选项,因此这将无法防止滥用(无论如何主要来自共享服务器).

有没有这样的方法来检查它?谢谢!

php api dns curl request

11
推荐指数
1
解决办法
2612
查看次数

在tabcontrol MouseClick事件上单击了哪个选项卡

我正在学习如何使用Visual Basic Express 2008开发Windows窗体应用程序,我的测试/学习应用程序有一个带有几个测试页面的TabControl(例如,3,这里的数字不相关).

现在,我在Tabcontrol上处理MouseClick事件,我似乎无法弄清楚如何获取单击的选项卡.我相信如果单击选项卡条的另一个位置,则不会触发MouseClick事件,因此必须单击选项卡.问题是,哪个标签?

任何帮助,将不胜感激.谢谢!

vb.net tabcontrol mouseclick-event winforms

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

每页最大SQL查询数

这个问题可能没有明确的答案,所以如果它被认为是主观的,让我们说不好,请随意关闭它.

基本上我正在开发一个非常大的Web应用程序(PHP),它使用CakePHP.现在它正处于开发阶段,数据库中的一些东西非常复杂,因此需要进行大量查询才能显示页面(大约7-25个查询).

由于这可能是一个大规模的,我想知道什么是最大值,也就是说,一个点表示"你可能做错了什么并且应该优化",SQL查询的数量应该每页完成.我现在设置了一个非常简单的缓存系统,它将单个用户运行的查询减少到大约5秒,持续15秒.

经常运行25个查询?我应该停止开发(我有足够的时间)一段时间并重构代码,删除未使用的SQL查询,并花时间来提高这部分的性能?

这可能听起来有点令人困惑,所以恢复:对于每个页面运行的查询数量是否存在事实上的最大值,这些查询不会破坏服务器(即共享托管环境)?

谢谢.

php mysql

9
推荐指数
2
解决办法
4771
查看次数

自动加载命名空间 i18next

我使用 I18Next 作为基于 Javascript 的翻译解决方案,以下是需要发生的事情:

  1. 加载默认名称空间“Core”。它包含我想要的大多数键,但不是全部。
  2. 没有固定的命名空间列表:因此我不能只告诉我想要的i18n.inits ns.namespace
  3. 在页面加载期间,可选地将一些“模块”加载到应用程序中,并且它们也需要被翻译。他们应该在某处报告其 i18n 命名空间名称,然后 i18n 应该使该命名空间的键可用。

基本上,i18next 有没有办法在调用名称空间时自动加载名称空间?保证所调用的命名空间t("[SomeNamespace]Key.Key2");有效且确实存在。问题很简单,i18next 无法“自动加载”,并且我无法找到一种方法让 i18n调用 i18n.init 后“手动”加载资源文件。

这是我当前的代码。

    $.i18n.init(
        {
            lng: "en",
            fallbackLng: "en",
            useCookie: false,
            resGetPath: "System/i18n/__ns__/__lng__.json",
            ns: "Core"
        },
        function(t) {
            System.I18N = t;

            alert(System.I18N("LoginUI:Messages.Name"));
        }
    );
Run Code Online (Sandbox Code Playgroud)

正如预期的那样,它只是向我显示LoginUI:Messages.Name而不是翻译System/i18n/LoginUI/en.json

{
    "Messages": {
        "Name": "Logon Interface"
    }
}
Run Code Online (Sandbox Code Playgroud)

(Core/en.json 在这种情况下是无关紧要的。我当前需要的是自动加载“LoginUI/en.json”,或者我可以强制手动加载。)

javascript internationalization i18next

7
推荐指数
1
解决办法
5197
查看次数

选择具有最高z-index的DIV

示例代码,所以我可以开始解释这个问题:

<div style="z-index:5">5</div>
<div style="z-index:2">2</div>
<div style="z-index:1">1</div>
<div style="z-index:4">4</div>
<div style="z-index:3">3</div>
Run Code Online (Sandbox Code Playgroud)

(z-index值无关紧要,它们的顺序甚至更少.只是示例代码)

问题:我想选择(使用CSS或JS和jQuery)具有最高z-index值的DIV.在上面的例子中,我想选择第一个,因为它的z-index 5高于所有其他的z-index.

有没有办法做到这一点?额外信息:我正在使用jQuery + jQuery UI编写一个Simple Window Manager,z-index由.draggable中的stack选项指定.我似乎无法找到一种方法让jQuery将最后一个被拖动的元素分配给一个类,所以我将采用最高的z-index方式.有什么帮助吗?谢谢.

html javascript jquery jquery-ui z-index

6
推荐指数
1
解决办法
3306
查看次数

是否有针对Smarty的i18n /翻译解决方案?

我正在开发一个基于PHP的应用程序,需要国际化(i18n)支持.

我正在使用Smarty 3作为模板解决方案(以及TinyMVC作为框架),虽然我之前一直在将它用于小型项目(早在Smarty 2.x时代),但我还不知道任何简单 - 使用i18n插件.Smarty 3.x是否有这样的插件/扩展程序可以帮我完成这项工作?我不介意后端是否有点难以设置,这很好,我需要的只是在模板中实现它的好方法.

我需要将这个应用程序翻译成多种语言,所以我需要找到一种方法让Smarty支持它.有吗?谢谢.

php localization smarty internationalization smarty3

6
推荐指数
1
解决办法
3021
查看次数

适用于Windows的PHP驱动的GUI应用程序

我知道PHP是一种解释型语言,对于基于Web的东西,不是为在实际操作系统上运行GUI应用程序而设计的,但有没有办法?

基本上,是否有一个框架/系统允许我创建"本机"(基本上,二进制,.exe,看起来像具有本机控件和所有的Win32应用程序)窗口,基于GUI的应用程序?

所以我可以使用这样的框架编写一个PHP应用程序,并(以某种方式)将其编译为.exe,并将其作为普通的Windows应用程序进行分发.可能?

我可以使用VS/.NET,C#等等,但是使用PHP可以让我重用内部框架来实现许多额外功能,从而缩短了开发周期.

那么,有这样的方法吗?

php windows binary user-interface

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

保护全局Javascript"API"对象

我目前有一个运行基于Javascript的全局API的Web应用程序,它初始化如下:

var Api = {
    someVar: "test",
    someFunction: function() {
        return "foo";
    }
}
Run Code Online (Sandbox Code Playgroud)

此API在Web应用程序中的许多"窗口小部件"中共享,它们应该全部运行此单个Api实例,以便它们可以相互传递数据.

AJAX目前用于加载这些小部件,例如在小部件/ mywidget.html中,它放在,例如, <div id='widget_<random number>'>...</div>

代码的某些其他部分可能会选择添加更多功能Api,目前它的执行方式如下:

Api.myExtension = {
    myNewFunction: function() {
        return "bar";
    }
}
Run Code Online (Sandbox Code Playgroud)

但是,这种用法会产生一些问题:

问题一:如果一个小部件(这些可能由第三方提供)决定隐藏一些代码,并做类似的事情Api = {},摧毁Api一切所有的全局变量,并打破整个应用程序,该怎么办?是否有可能保护此Api变量不被外部覆盖?只允许"扩展"(添加新内容),但不允许"删除/更改".即:

Api.foo = { test: "bar" } // allowed
Api.someVar = "changing the existing someVar"; // not allowed
Run Code Online (Sandbox Code Playgroud)

以下代码位于"内部" Api,例如:

var Api = {
    Debug: {
        Messages = new Array,
        Write: function() {
            Api.Debug.Messages.push("test"); …
Run Code Online (Sandbox Code Playgroud)

html javascript object

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

处理 register_globals

我不确定将其标记为社区 wiki 是否合适,但无论如何:

有没有一种简单的方法可以杀死 register_globals?我正在开发一个 PHP 框架,现在,我只是将脚本设置为在 register_globals 为 On 时终止。虽然我更喜欢强迫人们禁用它,但有些服务器仍然启用它。

我知道在 PHP 5.3.0 中 register_globals 已被弃用,而在 PHP 6 中它将被完全删除,但在它仍然存在时处理它总是一件好事。

我看到了一些方法,我目前正在考虑使用这个:

$temp = array_merge($_GET, $_POST, $_COOKIE);
foreach($temp as $k => $v) {
    if(isset($$k)) 未设置($$k);
}

不过这里有一些问题。它是资源激励,特别是当有大量输入数据时。我不确定在运行时禁用它是否有效,例如:

ini_set('register_globals', 'Off')
Run Code Online (Sandbox Code Playgroud)

有没有我没有听说过的更好的方法来摆脱 register_globals?谢谢。

php register-globals

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