Tag: PHP的

如何获取数组中的最后一个元素之前的元素?

我怎样才能得到在PHP5数组最后一个元素之前的元素?

WordPress的restAPI OAuthcurl命令

我有WordPress的restAPI和WordPress OAuth服务器安装插件设置,并试图使用http://sevengoslings.net/~fangel/oauth-explorer/进行身份validation,每次通话内容不给我的OAuth令牌或OAuth秘密我需要。 我尝试了这些步骤https://wordpress.org/support/topic/json-rest-api-from-mobile-app-with-authentication 1. Enter base url (http(s)://your.domain.com/oauth1 2. Access token = request 3. Authorize = authorize 4. Access_Token = access 5. Enter your consumer key and secret (leave method as HMAC-SHA1) 点击Get Request Token ,您将获得呼叫内容 我应该在通话内容中得到这个 Call content now = oauth_token=xxxxxxxxxxxxxxx&oauth_token_secret=xxxxxxxxxxxxxxxxxxxxx&oauth_call_back_confirmed=true 但是我只能得到这个 page not found 在这里,他们无法获得三脚OAuth1.0a的工作,所以他们使用基本的OAuth,这需要另一个插件,不build议生产。 我应该使用不同的签名方法吗? 我正在寻找两个curl命令来从服务器获得OAuth授权,另一个交易授权访问令牌+刷新令牌。

使用DQL延迟加载Doctrine2和Symfony2

我有一个父域的树结构。 目前我正试图让所有的父节点显示当前节点的path。 基本上我正在做一个while循环来处理所有节点。 $current = $node->getParent(); while($current) { // do something $current = $current->getParent(); } 使用默认的findById方法工作。 由于该实体具有一些聚合字段,因此我使用自定义存储库方法来加载具有一个查询的所有基本字段。 public function findNodeByIdWithMeta($id) { return $this->getEntityManager() ->createQuery(' SELECT p, a, c, cc, ca, pp FROM TestingNestedObjectBundle:NestedObject p JOIN p.actions a LEFT JOIN p.children c LEFT JOIN c.children cc LEFT JOIN c.actions ca LEFT JOIN p.parent pp WHERE p.id […]

apache / php / mysql交互式浏览“如何制作香肠”

我无法理解apache / php / mysql堆栈如何在低级别上工作(包括与浏览器的交互)。 是否有一个很好的描述(书,网站等),将走过我的整个path,并解释如何开始浏览器reqesting一个url,HTTP请求正在发送,如何Apache与PHP会谈,如何PHP谈话mysql(持久性和非持久性连接)等等,我想了解什么在这个链中,什么时候处理超时,插口打开和closures多久。 一本书,一篇文章可能? 每个组件都有很多文档,但是我找不到“演练”。 到目前为止,我所做的解释是非常高层次的:看,这里是一头幸福的牛,去了牛津大学,看 – 这些都是收缩在超市货架上的。 我需要的是香肠农场/屠宰场/卡车/工厂参观,从母牛侮辱开始:) [更新]直到今天,我还没有find一个更好的方式来了解这些东西,而不是阅读来源。

在添加新产品时,将值添加到magento下拉列表或多选产品属性

我想知道是否有人发现或编写了一个扩展,允许一个magento网站pipe理员在添加产品的同时可以为其产品属性添加值。 例如,如果我出售书籍,并希望书籍作者位于下拉列表中,以便将其用于分层导航,则在添加产品之前,必须通过属性部分添加作者似乎很奇怪。 从工作stream程的angular度来看,在添加产品屏幕上的下拉菜单旁边有一个“添加新值”button是非常有意义的。 任何人有任何想法或见解?

可怕的“保持login”和会话检查

所以,我知道这已经被处死了,但是我所遇到的所有答案都是相互混淆/相互矛盾的,或者他们的解释是不完整的,我试图用自己的所有资源可用,但我想我已经迷路了。 我想一劳永逸地澄清这一点。 感谢您的耐心提前,因为这可能会有一点点啰嗦。 我的页面顶部有一个小的login框,如果用户没有login,它将保持不变。如果他们已经login,而不是login框,他们会看到一个问候与他们的名字。 会话检查 所以首先,这里是一个(到目前为止我的理解)如何检查用户可以访问“仅限会员”内容的图表。 (这段代码放在页面的顶部来检查和设置variables,如$loggedin = true; ) 现在,我的$_SESSION['loggedin']就是用户名。 据我的理解,会话可能是伪造或劫持在同一个域中,所以我知道这是非常不安全的(例如,攻击者可以以某种方式使会话包含不同的用户名,并且可以即时访问该用户的东西)不知道我应该如何检查会议。 我可以想象做到这一点的唯一方法是连接到数据库每次加载页面,并检查MD5哈希或从数据库中的东西(并更新它),但我想这会产生大量的不必要的服务器stream量,我几乎肯定有一个更好的方法来做到这一点。 在login 以下是用户login时发生的情况(以及是否显示问候语或login框)。 大多数情况下,我在这部分(我希望)是相当稳固的,但我不知道我的MD5哈希应该包含为了能够以后重新检查与数据库中的散列cookie和新生成的散列,以确保cookie没有被攻击者召唤。另外,正如下面的评论所述,我可能会放弃在散列中使用IP地址,以允许用户保持从多个位置login(例如,他们的电话和他们的笔记本电脑)。 所以我的问题是: 我应该怎么检查我的会话是不是假的? 我应该如何检查我的cookies不是假的? 检查到位后,我的login方法是否足够安全? 我有什么重要的东西被遗漏了吗? 如果有什么你想问的,请让我知道在评论中,我会很乐意编辑我的问题,尽可能多的信息,我可以提供。

帮助我改进我的持续部署工作stream程

我一直在开发一个工作stream程来练习一个PHP项目的大部分自动化的连续部署周期。 我想就这个工作stream程中的可能的stream程或技术瓶颈提出一些反馈意见,改进build议,以及如何更好地自动化和提高我的团队的易用性。 核心组件 : Hudson CI服务器 Git和GitHub PHPUnitunit testing Selenium RC Sauce OnDemand用于Selenium RC自动化,跨浏览器,云testing 用于自动化testing服务器部署的Puppet Gerrit的Git代码审查 Gerrit Trigger Hudson 编辑 :我已经改变了工作stream程graphics,以考虑到ircmaxwell的贡献:删除PHPUnit的Selenium RC的扩展,并运行这些testing只作为QC阶段的一部分; 增加一个QC阶段; 在代码审查之后但在合并之前移动UItesting; QC阶段之后进行合并; 合并后移动部署。 该工作stream程graphics描述了该过程。 我的问题/想法/关注随之而来。 我的关注/想法/问题 : 使用这个系统的总体困难。 参与时间 使用Gerrit困难。 难以雇佣Puppet 。 稍后我们将在Amazon EC2实例上进行部署。 如果我们现在正在使用Puppet设置Debian软件包并部署到Linode切片,那么Linode上的工作部署是否有可能在EC2上突破? 我们是否应该从一开始就在EC2上进行构build和部署? 另一个问题是: EC2和Puppet 。 我们也在考虑使用Scalr作为解决scheme。 为了避免Puppet的开销,为了避免这种情况的发生,让Scalr投资于Scalr会有多大意义? 我有一个次要的(哈!)在这里关心成本; Seleniumtesting不应该经常运行, EC2构build实例将全天候运行,但对于像5分钟构build这样的东西,花费一个小时的EC2使用似乎有点多。 合并时可能的stream程瓶颈。 “A”可以移动吗? 积分 :这个工作stream程的一部分是由Digg的真棒张贴在持续部署的启发 。 上面的工作stream程图是受Android OS项目启发的 。

如何使用Shift-JIS和CP932创buildSQL注入攻击?

我正在写一些unit testing,以确保我的代码不容易在各种字符集下的SQL注入。 根据这个答案 ,您可以通过使用以下字符集之一注入\xbf\x27来创build漏洞: big5 , cp932 , gb2312 , gbk和sjis 这是因为如果您的助手configuration不正确,它会看到0x27并尝试转义它,使其成为\xbf\x5c\x27 。 但是, \xbf\x5c实际上是这些字符\xbf\x5c的一个字符,因此引号( 0x27 ) \xbf\x5c转义。 但是,正如我通过testing发现的,这不完全正确。 它适用于big5 , gb2312和gbk但在sjis和cp932都不是0xbf27或cp932 。 都 mb_strpos("abc\xbf\x27def","'",0,'sjis') 和 mb_strpos("abc\xbf\x27def","'",0,'cp932') 返回4 。 即PHP不会将\xbf\x27看作单个字符。 这将返回false为big5 , gb2312和gbk 。 另外,这个: mb_strlen("\xbf\x5c",'sjis') 返回2 (它为gbk返回1 )。 所以,问题是:是否有另一个字符序列,使sjis和cp932容易受到SQL注入,或者他们实际上不是脆弱的? 或者说是PHP说谎,我完全错了,MySQL会完全不同的解释?

如何在预先存在的SQL数据库上使用弹性search?

我一直在阅读大量有关如何在JavaScript或PHP网站上实现弹性search的文档。 很好的ES介绍 。 非常完整的文档在这里和这里 。 整个CRUD 。 用PHP弹性search: 在这里 , 在这里 , 在这里 。 所以我给你这些URL的原因是要理解如何在使用预先存在的SQL DB时使用其中的一个或多个文档。 我在某处丢失了一点:正如他们所说的,Elasticsearch将使用MongoDB创build自己的索引和数据库,我不明白如何使用我的(巨大的)使用SQL的数据库? 假设我有一个MySQL数据库,我想用Elasticsearch使我的研究更快,并提出用户预先提出的查询,我该怎么做? ES如何在MySQL上工作? 如何将这个巨大的数据集(超过8GB)转换成ES数据库,以便在开始时实现高效率? 非常感谢

我如何强制PHP使用数组键的string?

我遇到了一个旧的应用程序,使用一个ID来命名types的数组,例如… array(1) { [280]=> string(3) "abc" } 现在我需要对这些进行重新sorting,而var_dump()会使它看起来在按键是整数时不会发生。 如果我添加a到每个索引, var_dump()将显示关键的双引号,我的猜测显示它现在是一个string… array(1) { ["280a"]=> string(3) "abc" } 这可以让我轻松地重新排列它们,而不必触摸更多的代码。 这不起作用。 $newArray = array(); foreach($array as $key => $value) { $newArray[(string) $key] = $value; } 一个var_dump()仍然将它们显示为整型数组索引。 有没有办法强制键是string,所以我可以重新sorting而不损坏数组?