小编EsT*_*eGe的帖子

为什么要使用API​​密钥和秘密?

我遇到了许多API,它们为用户提供了API 密钥秘密.但我的问题是:两者之间有什么区别?

在我看来,一把钥匙就足够了.说我有一把钥匙,只有我和服务器知道它.我用这个键创建一个HMAC哈希并进行API调用.在服务器上,我们再次创建HMAC哈希并将其与发送的哈希进行比较.如果相同,则对呼叫进行身份验证.

那为什么要用两把钥匙?

编辑:或者是用于查找API密钥的API密钥?

security authentication api api-key secret-key

77
推荐指数
5
解决办法
3万
查看次数

使用Socket.IO和PHP推送通知

想法/背景:

我想给我的用户一个很好的一点额外的功能:我要添加推送通知.这是用例:

人们在个人资料页面上有留言簿.当有人在用户的留言簿中发布消息时,该用户将收到推送通知(如果他在线的话).如果他不在线,下次他上网时,我们只会从数据库中提取通知.

我正在考虑使用在Node.JS服务器上运行的Socket.IO来做这件事.我当前的应用程序是用PHP构建的(所以发布等由PHP处理).

所有在线用户都将使用Socket.IO进行连接,以收听他们自己的通知.它们的套接字将保存在服务器上的数组或哈希中.

这是我想到的流程:

  1. UserA在UserB的留言板中发布消息
  2. 让Socket.IO向UserB发出通知(如果在线,Socket.IO已知)
  3. 将消息保存在DB中

这里的问题是' make Socket.IO发出通知 '-part.我需要一种方法来从PHP执行此操作,因为我希望服务器发出此通知而不是发布消息的用户.你为什么问?我想阻止恶意用户创建虚假通知.所以在伪代码中,PHP应用程序看起来像这样:

// do some validations here ...

// This is the message that was posted
$message = array(
    'from' => 'UserA',
    'to' => 'UserB',
    'msg' => 'Hello you'
);

// Send a notification to the user by emitting an event
socketio_emit('notification', json_encode($message));

save_in_db($message);
Run Code Online (Sandbox Code Playgroud)

问题:

你对此有何看法?是否有更好的方法来实现这个看似很小的功能?而且,我将如何socketio_emit()使用PHP,换句话说:如何使用PHP与Socket.IO服务器通信?

非常感谢!

php socket.io

8
推荐指数
1
解决办法
6232
查看次数

PHP更新MYSQL的多对多关系

我有一个多对多关系,用MySQL中的关联表实现.我有一张儿童餐桌和一张父母餐桌.子项可以有多个父项,保存在parent_child_link关联表中,并带有其ID.

可以通过HTML表单更新子项,父项是HTML多选.现在我需要更新数据库中的记录,但我的解决方案效率不高.这是伪代码我做的:

  1. 更新child_id = x的子信息
  2. 删除parent_child_link中child_id = x的所有当前关联
  3. 插入新关联

这个解决方案效果很好,但是当父母没有被改变时,例如只改变了孩子的名字,那么执行了2个不必要的查询.如何避免那些不必要的查询?有没有办法检查多选中的父母是否没有改变?

当然,我可以忽略所有这些麻烦,因为它已经有效,但我真的希望尽可能保持高效.

php mysql many-to-many

7
推荐指数
2
解决办法
3204
查看次数

Codeigniter外键约束检查

我先解释一下表结构:

+-----------+--------------+------+-----+---------+----------------+
| Field     | Type         | Null | Key | Default | Extra          |
+-----------+--------------+------+-----+---------+----------------+
| id        | int(11)      | NO   | PRI | NULL    | auto_increment |
| firstname | varchar(255) | NO   |     | NULL    |                |
| name      | varchar(255) | NO   |     | NULL    |                |
+-----------+--------------+------+-----+---------+----------------+
Run Code Online (Sandbox Code Playgroud)

id字段通过外键从另一个表引用.

假设我的模型中有一个函数,如下所示:

public function delete_user($id) {
    return $this->db->delete('users', array('id' => $id));
}
Run Code Online (Sandbox Code Playgroud)

当从另一个表引用此用户时,它应该抛出错误."糟糕"的是,Codeigniter实际上在整页上显示错误:

Error Number: 1451

Cannot delete or update a parent row: a foreign key constraint fails …
Run Code Online (Sandbox Code Playgroud)

codeigniter constraints

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

Bootstrap固定底部表单动作

我正在使用Twitter引导流体布局.在页面上,我有一个大表单,底部<div class="form-actions">带有保存按钮.我希望这个div始终可见,这样用户就不必总是向下滚动到页面底部.我尝试使用这块CSS:

.fixed {position: fixed !important;}
Run Code Online (Sandbox Code Playgroud)

当表格适合视口时,它可以工作,但当表格太大时会神秘地消失.有人有解决方案吗?

css twitter-bootstrap

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

Bootstrap 输入字段上的 jQuery focus() 不起作用

我想要一个搜索输入字段自动关注页面加载。所以我尝试了以下方法:

(function () {
    $('#searchbox').focus();
})
Run Code Online (Sandbox Code Playgroud)

然而,这根本没有任何作用。我认为它可能与我拥有的其他代码冲突,所以我在 Bootstrap 示例页面http://twitter.github.com/bootstrap/examples/hero.html做了一个简单的测试。在 Chrome 控制台中,我输入了内容$('input:first').focus();,这给了我<input class="span2" type="text" placeholder="Email">返回值,但它也没有关注电子邮件字段。

当页面加载时,我只关注某个输入字段,我做错了什么?

javascript jquery twitter-bootstrap

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

Ember.js bindAttr加明文

如何绑定属性并将其与某些明文连接起来?

例如:

<span {{bindAttr title="updates 'revisions'"}}>{{updates}} revisions</span>
Run Code Online (Sandbox Code Playgroud)

生产:

<span title="4 revisions">4 revisions</span>
Run Code Online (Sandbox Code Playgroud)

有没有办法在不编写新帮助程序的情况下执行此操作?我觉得我必须用Handlebars为每一件简单的东西写一个帮手......

handlebars.js ember.js

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

PHP REST 客户端 API 调用

我想知道,是否有一种简单的方法来执行 REST API GET 调用?我一直在阅读有关 cURL 的文章,但这是一个好方法吗?

我也遇到过 php://input 但我不知道如何使用它。有没有人给我举个例子?

我不需要高级 API 客户端的东西,我只需要对某个 URL 执行 GET 调用来获取一些将由客户端解析的 JSON 数据。

谢谢!

php api rest json curl

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

Codeigniter可变长度参数列表

我正在使用Codeigniter创建一个教程系统,但我在使用子类别进行教程时有点困惑.

URL结构是这样的:/ tutorials/test/123/this-is-a-tutorial

  • 教程是控制器
  • test是该类别的短代码
  • 123是教程ID(在SQL查询中使用)
  • 这个教程只是一个美化URL的slu ..

我所做的是将类别作为第一个参数传递,将ID作为第二个参数传递给我的控制器函数:

public function tutorial($category = NULL, $tutorial_id = NULL);
Run Code Online (Sandbox Code Playgroud)

现在,如果我想要子类别(无限深度),比如:/ tutorials/test/test2/123/another-tutorial.我该如何实现?

谢谢!

php codeigniter

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

在子文件夹中jQuery不使用RequireJS

我有以下文件夹结构:

  • 的index.html
  • JS /
    • 库/
      • require.js
      • 的jquery.js
    • main.js

在index.html中,我将以下行添加到head部分:

<script data-main="js/main" src="js/libs/require.js"></script>
Run Code Online (Sandbox Code Playgroud)

当我向main.js添加一个简单的警报时,它可以工作.当我想使用jQuery时,它不起作用:

require(['libs/jquery'], function ($) {
    $('#test').html('123');
});
Run Code Online (Sandbox Code Playgroud)

在chrome web检查器中,我看到jquery成功加载,但文本没有出现在我的div中.当我将jquery移出./js/libs并将其放入./js(并且当然将依赖项更改为['jquery'])时,它可以工作.

我究竟做错了什么?为什么我不能把jquery放进./js/libs去以保持组织有序?

谢谢

requirejs

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

圆环图与部分环绕

我正在使用D3.js圆环图构建上下文菜单.现在我想在鼠标悬停某个元素时添加一个子菜单,就像这样(对不起我的绘画技巧):

菜单草图

主要的甜甜圈菜单已经完成,但我无法弄清楚如何添加子菜单.它必须以父元素(具有子项的元素)为中心,因为主菜单中的其他菜单项也可能具有子菜单.

我已经调查了这个问题:D3.js - 带有多个环的圆环图,但那些是完整的环.

有人举个例子吗?

d3.js

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

Codeigniter将参数传递给控制器​​索引

我正在使用codeigniter构建一个教程系统,并希望实现以下URL结构:

  • / tutorials - >包含所有类别列表的简介页面
  • / tutorials/{作为字符串的类别} - >这将给出给定类别的教程列表,例如/ tutorials/php
  • / tutorials/{a category as string}/{an ID}/{tutorial slug} - >这将显示教程,例如/ tutorials/php/123/how-to-use-functions
  • / tutorials/add - >页面添加新教程

问题是,当我想使用前两种类型的URL时,我需要将参数传递给控制器​​的索引函数.第一个参数是可选类别,第二个参数是可选的教程ID.我已经做了一些研究,我贴过,所以我发现我可以添加喜欢的路线tutorials/(:any),但问题是,这条线路将通过add使用最后的URL(/教程/加)时,作为参数了.

我有什么想法可以实现这一目标吗?

php codeigniter

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