小编Tre*_*her的帖子

如何在PHPUnit中找到风险测试的原因

我不时会在PHPUnit中进行风险测试.通常我可以找到风险测试的原因.但是这个任务可能很耗时,因为我没有看到来自PHPUnit的任何消息,为什么测试被标记为有风险.我只得到这样的东西:

PHPUnit 4.4.5 by Sebastian Bergmann.

Configuration read from phpunit.xml.dist

R...................R.R...

Time: 11,91 seconds, Memory: 42,50Mb

OK, but incomplete, skipped, or risky tests!
Tests: 26, Assertions: 32, Risky: 3.        
Run Code Online (Sandbox Code Playgroud)

是否有任何选项告诉PHPUnit显示消息或更好的东西,如堆栈跟踪导致风险标志的代码?完整的风险测试原因列表也可能会有所帮助.

php phpunit

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

电子邮件地址中显示名称的最大长度是多少

根据问题" 有效电子邮件地址的最大长度是多少? ",地址的最大长度为254.但我想知道显示名称的最大长度是多少:

Display Name <my@examplemailaddress.net>
Run Code Online (Sandbox Code Playgroud)

点击此链接https://www.ietf.org/mail-archive/web/ietf-822/current/msg00086.html,大小无限,但实际上是根据此链接https://www.ietf.org/mail-archive /web/ietf-822/current/msg00088.html大小为72个字符.但我相信这个答案有点过时了?今天合理的限制是什么?

email validation

14
推荐指数
1
解决办法
2931
查看次数

检测Google Maps API配额限制

如果达到Google Maps Javascript API V3的配额,有没有人知道通过Javascript或HTTP-Request进行测试的方法?获取为用户显示的错误消息就足够了.

我们启用了结算并为Google Maps Javascript API v3配置了大约100,000的配额,但有时我们会将其分解,有时甚至无法实现.现在我们喜欢使用像nagios这样的工具监控我们的api访问(也许通过使用phantomjs)来获得即时警告.但是,如果我们的配额超出,我找不到任何关于如何测试的信息.

UPDATE2

此处可以找到类似的请求:如何检测到Google地图中是否已达到每天25000个请求限制?

但是只有对API-Console的引用.如果有人设法使用Javascript回退静态地图,我可以修改我的案例的脚本.

更新

以下是谷歌地图的本地化配额错误消息示例,该消息是为用户而不是地图显示的.如果发生这种情况,我宁愿删除maps容器:

本地化配额消息的示例

javascript google-maps google-maps-api-3

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

在邮件正文中引用/转义变量

我感觉有点尴尬,因为我使用PHP生成邮件正文而不会转义变量.在HTML中我使用htmlspecialchars()或类似函数,命令行escapeshellarg(),但对于邮件?例如这样的事情:

<?php
$usercontent = $_GET['usercontent'];
mail("dummy@nowhere.tld", "My Subject", "My body with $usercontent included");
?>
Run Code Online (Sandbox Code Playgroud)

一个可能的攻击者可能会对上面的脚本做什么,我怎么能防止这样的攻击呢?或者是PHP mail()保存,为什么?

更新

请参考示例:

  • 只有身体受到影响(没有标题!)
  • Content-Type是text/plain
  • 答案的一些证据会很好
  • MTA是一个后缀sendmail,带有"/ usr/sbin/sendmail -t -i"

php security email postfix-mta sendmail

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

ArrayObject 不适用于 PHP 7.4 中的 end()

在迁移到 PHP 7.4 时,我必须处理一些数组函数的不同行为,比如reset()current()end()关于 ArrayObject。以下示例产生不同的输出:

<?php

$array = new \ArrayObject(["a", "b"]);
$item = end($array);
var_dump($item);


$array = ["a", "b"];
$item = end($array);
var_dump($item);
Run Code Online (Sandbox Code Playgroud)

使用php 7.4,输出为:

bool(false)
string(1) "b"
Run Code Online (Sandbox Code Playgroud)

在 7.4 之前的 PHP 版本上,输出如下:

string(1) "b"
string(1) "b"
Run Code Online (Sandbox Code Playgroud)

Aend($array->getArrayCopy())产生一个通知,但如果与变量一起使用可能是一种解决方法。

有没有办法模拟end()with an ArrayObjector的行为ArrayIterator?ArrayObject 可能非常大,迭代到最后可能不是最好的解决方案。

php php-7.4

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

Quickfix列表,如何添加和删除条目

在vim我通常使用quickfix列表作为todo列表的类型来修复错误或重构代码.但是我的工作流程有一些问题:

  • 如果我必须:cn多次跳转来比较代码的其他部分,那么查找最后编辑的条目:cp很困难.:cw有帮助,但在更大的清单上,它也变得困难.删除固定条目会很有帮助.
  • 在重构时,我偶尔会遇到一些我希望稍后返回的代码.使用全局标记是可以的,但将当前位置添加到quickfix列表会更有帮助.

所以我希望找到一个简单的命令:help quicktext来添加一个位置到quickfix列表或删除已经修复的条目.但我能找到的只是:cbuffer:caddb.但是在:cw我收到消息后编辑缓冲区时,它是不可修改的.帮助文本提供了以下解决方案(但我真的不想编写临时文件):

注意:在quickfix窗口中进行更改不会影响错误列表.'可修改'是为了避免进行更改.如果您仍然删除或插入行,则文本和错误号之间的关系会混乱.如果您真的想这样做,可以将quickfix窗口的内容写入文件并使用":cfile"将其解析并用作新的错误列表.

也许:cad有人可以添加当前行?还是有人在考虑其他工作流程?

vim

5
推荐指数
4
解决办法
2232
查看次数

在Galera集群中提交后的节点状态是什么

如Galera文档所述,群集使用同步复制.但是看得更深一些,有一些声明,Galera只是"几乎"同步.在节点上,提交必须通过"认证"而不是物理提交.我真的需要理解这部分来规划应用程序的体系结构.

所以我现在喜欢以下哪种情况如果有的话:

脚本A UPDATE在事务中执行约5秒钟,也COMMIT需要几秒钟.当脚本A立即完成时,脚本B就会出现,例如在一秒钟内在HTTP-POST-Request之后使用HTTP重定向.脚本B查询与脚本A不同的节点.

  1. 脚本B获取之前的状态,UPDATE因为UPDATE仍然需要大约4秒才能完成.
  2. 脚本B获取后的状态,UPDATE因为COMMIT当所有节点的状态同步时结束.

如果有的话会是哪一个?或者行为是否依赖于配置?

mysql mariadb galera

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