小编Dar*_*ein的帖子

在PHP中生成随机密钥的最佳方法是什么?

我正在寻找创建一个可重用的函数,它将生成一个随机密钥,其中包含所选长度的可打印ACSII字符(从2到1000+不等).我认为可打印的ASCII字符是33-126.它们的键不需要是完全唯一的,只要在完全相同的毫秒时生成就是唯一的(因此uniqid()不起作用).

我正在考虑组合chr()mt_rand()可能有效.

这是要走的路,还是其他最好的方法?

编辑: uniqid()也不会工作,因为它没有长度参数,它只是PHP给你的东西.

我的想法:这就是我想出的:

function GenerateKey($length = 16) {
    $key = '';

    for($i = 0; $i < $length; $i ++) {
        $key .= chr(mt_rand(33, 126));
    }

    return $key;
}
Run Code Online (Sandbox Code Playgroud)

这有什么问题吗?

另一个编辑:大多数其他问题涉及密码生成.我希望有一个更广泛的角色,我不关心1VS l.我想要可能的最大数量的键.

注意:生成的密钥不一定必须是加密安全的.

php random

39
推荐指数
3
解决办法
6万
查看次数

应该是jQuery的$(form).submit(); 不在表单标签内触发onSubmit?

我有以下内容:

<script type="text/javascript">
function CancelFormButton(button) {
    $(button.form).submit();
}
</script>

<form onsubmit="alert('here');">
<input type="button" value="Cancel" onClick="CancelFormButton(this);" />
</form>
Run Code Online (Sandbox Code Playgroud)

单击"取消"按钮时,不会触发表单标记中的onsubmit.

该行成功提交表单:$(button.form).submit();但跳过alert('here');表单标记中的onsubmit.

这是正确的还是我做错了什么?

顺便说一句,在这种情况下,我想要这个功能,但我只是想知道我是否会在触发onsubmit的浏览器中遇到问题.

jquery onsubmit

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

ap元素的默认填充和/或边距是什么(重置css)?

我一直在使用重置CSS样式集已经有一段时间了,每次我创建一个新网站时,重置最让我烦恼的是ap标签边距和填充的重置.我理解为什么,但我想知道ap元素上的"默认"填充和/或边距应该是什么?

我猜这在浏览器中并不一致,并且通常需要针对每个站点进行调整,但是有一组最常见的边距和/或填充值吗?

简短版本:它是(例如)5px边距顶部底部的填充......还是其他什么?

css

37
推荐指数
3
解决办法
7万
查看次数

什么是更好的:CSS黑客或浏览器检测?

通常当我浏览互联网时,我发现人们通常使用CSS黑客来使他们的网站在所有浏览器中看起来都一样.就个人而言,我发现找到所有这些黑客并测试它们是非常耗时的; 您所做的每项更改都必须在4个以上的浏览器中进行测试,以确保它不会破坏其他任何内容.

大约一年前,我浏览了互联网上其他主要网站正在使用的内容(雅虎,谷歌,BBC等),并发现其中大多数都在进行某种形式的浏览器检测(JS,HTML if语句,基于服务器).我也开始这样做了.在我最近工作的几乎所有网站上,我使用jQuery,所以我使用内置的浏览器检测.

您使用或不使用其中任何一种是否有原因?

javascript css browser-detection css-hack

34
推荐指数
3
解决办法
4356
查看次数

保证金是多少:5px 0; 和保证金:5px 0 0; 意思?

是否margin:5px 0;意味着margin:5px 0 0 0;还是margin:5px 0 5px 0;

是否margin:5px 0 0;意味margin:5px 0 0 0;

填充当然也是一样的.

此外,它是否在所有浏览器(包括IE6)中保持一致?

css

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

如果用户当前在页面上处于活动状态,我如何使用JavaScript/jQuery进行检测?

我需要在当前页面上检测用户何时处于非活动状态(不是单击或键入)超过30分钟.

我认为最好使用贴在身体标签上的事件blubbling,然后继续重置计时器30分钟,但我不确定如何创建它.

我有jQuery可用,虽然我不确定这有多少实际上会使用jQuery.

编辑:我更需要知道他们是否正在积极使用该网站,因此点击(更改字段或字段中的位置或选择复选框/无线电)或键入(在输入,textarea等).如果他们在另一个选项卡中或使用其他程序,那么我的假设是他们没有使用该网站,因此应该注销(出于安全原因).

编辑#2:所以每个人都清楚,这根本不是用于确定用户是否已登录,经过身份验证或其他任何内容.现在,如果用户在30分钟内没有发出页面请求,服务器会将用户注销.此功能可防止有人花费> 30分钟填写表单然后提交表单以发现他们尚未注销的时间.因此,这将与服务器站点结合使用,以确定用户是否处于非活动状态(不是单击或键入).基本上,交易是在闲置25分钟后,他们将看到一个对话框输入他们的密码.如果他们不在5分钟内,系统会自动将其注销,并且服务器的会话将被注销(下次访问页面时,与大多数站点一样).

Javascript仅用作对用户的警告.如果JavaScript被禁用,那么他们将不会收到警告(并且大部分网站都不工作),他们将在下次请求新页面时注销.

javascript jquery

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

是否存在不会暂停脚本的JavaScript警报?

我正在寻找类似的东西alert(),但这不会"暂停"脚本.

我想显示一个警报,并允许下一个命令,一个表单submit(),继续.因此,在显示警报后页面将会更改,但不会等到用户单击"确定".

有这样的事情还是只是其中一件不可能的事情?

javascript

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

我应该从用户那里混淆数据库ID吗?

我被告知我不应该直接在Web应用程序的HTML代码中使用数据库ID.

目前,我在表格行ID(tableRow-454,其中454是数据库中行的ID),隐藏或选择表单或URL中的字段等内容上使用ID.(我不是指在页面上直观地告诉人们他们是####.)

我给出的建议是使用一些数学来模糊用户的ID.我认为这只会使事情变得更复杂并增加不必要的复杂性.但是我可以看到一些很好的理由让从HTML中确定数据库ID变得更加困难.

您是否对用户的ID进行了模糊处理?或者你在乎吗?

database obfuscation

31
推荐指数
4
解决办法
5786
查看次数

使用GET或POST搜索表单

我有几个搜索表单,1个有~50个字段,另一个有~100个.通常,正如HTML规范所说,我使用GET方法进行搜索,因为没有数据被更改.我还没有碰到这个问题,但我想知道我是否会很快耗尽URL空间?

Internet Explorer的限制为2083个字符.其他浏览器,有更高的限制.我正在运行Apache,所以限制大约有4000个字符,IIS是16384个字符.

在100个字段中,假设平均字段名称长度为10个字符,那已经是5000个字符...在100字段表单上令人惊讶,我还没有任何错误.(25%的字段是多个选择,因此字段长度要长得多.)

所以,我想知道我的选择是什么.(缩短表格不是一种选择.)在这里我的想法:

  • 使用POST.我不喜欢这个,因为目前用户可以为他们的搜索添加书签并在以后再次执行 - 这是一个非常好的功能.
  • 让JavaScript循环遍历表单以确定哪些字段与默认字段不同,填充另一个表单并提交该表单.用户当然会将缩短版本加入书签.

还有其他想法吗?

另外,有人知道长度是编码长度还是纯文本?

我正在开发PHP,但它可能没有什么区别.

编辑:我无法删除任何字段; 我无法缩短表格.这是客户要求的,他们经常使用不同类别的一系列字段.我知道很难想到一个在这么多领域看起来不错的表单,但是用户在理解它的工作原理时没有问题.

forms post get

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

Symfony2:翻译消息中的HTML

messages.en.yml,我有

confirmed: Congrats %username%, your account is now activated.
Run Code Online (Sandbox Code Playgroud)

但我想用'粗体'用户名示例......我怎么能做到这一点?

confirmed: Congrats <span class='bold'>%username%</span>, your account is now activated.   
Run Code Online (Sandbox Code Playgroud)

当然我可以在这个例子中使用两个句子

first: Congrats
second: , your account ... 
Run Code Online (Sandbox Code Playgroud)

和twig内部使用html标签,但这看起来很脏.

symfony

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