我正在寻找创建一个可重用的函数,它将生成一个随机密钥,其中包含所选长度的可打印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.我想要可能的最大数量的键.
注意:生成的密钥不一定必须是加密安全的.
我有以下内容:
<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的浏览器中遇到问题.
我一直在使用重置CSS样式集已经有一段时间了,每次我创建一个新网站时,重置最让我烦恼的是ap标签边距和填充的重置.我理解为什么,但我想知道ap元素上的"默认"填充和/或边距应该是什么?
我猜这在浏览器中并不一致,并且通常需要针对每个站点进行调整,但是有一组最常见的边距和/或填充值吗?
简短版本:它是(例如)5px边距和顶部和底部的填充......还是其他什么?
通常当我浏览互联网时,我发现人们通常使用CSS黑客来使他们的网站在所有浏览器中看起来都一样.就个人而言,我发现找到所有这些黑客并测试它们是非常耗时的; 您所做的每项更改都必须在4个以上的浏览器中进行测试,以确保它不会破坏其他任何内容.
大约一年前,我浏览了互联网上其他主要网站正在使用的内容(雅虎,谷歌,BBC等),并发现其中大多数都在进行某种形式的浏览器检测(JS,HTML if语句,基于服务器).我也开始这样做了.在我最近工作的几乎所有网站上,我使用jQuery,所以我使用内置的浏览器检测.
您使用或不使用其中任何一种是否有原因?
是否margin:5px 0;意味着margin:5px 0 0 0;还是margin:5px 0 5px 0;?
是否margin:5px 0 0;意味margin:5px 0 0 0;?
填充当然也是一样的.
此外,它是否在所有浏览器(包括IE6)中保持一致?
我需要在当前页面上检测用户何时处于非活动状态(不是单击或键入)超过30分钟.
我认为最好使用贴在身体标签上的事件blubbling,然后继续重置计时器30分钟,但我不确定如何创建它.
我有jQuery可用,虽然我不确定这有多少实际上会使用jQuery.
编辑:我更需要知道他们是否正在积极使用该网站,因此点击(更改字段或字段中的位置或选择复选框/无线电)或键入(在输入,textarea等).如果他们在另一个选项卡中或使用其他程序,那么我的假设是他们没有使用该网站,因此应该注销(出于安全原因).
编辑#2:所以每个人都清楚,这根本不是用于确定用户是否已登录,经过身份验证或其他任何内容.现在,如果用户在30分钟内没有发出页面请求,服务器会将用户注销.此功能可防止有人花费> 30分钟填写表单然后提交表单以发现他们尚未注销的时间.因此,这将与服务器站点结合使用,以确定用户是否处于非活动状态(不是单击或键入).基本上,交易是在闲置25分钟后,他们将看到一个对话框输入他们的密码.如果他们不在5分钟内,系统会自动将其注销,并且服务器的会话将被注销(下次访问页面时,与大多数站点一样).
Javascript仅用作对用户的警告.如果JavaScript被禁用,那么他们将不会收到警告(并且大部分网站都不工作),他们将在下次请求新页面时注销.
我正在寻找类似的东西alert(),但这不会"暂停"脚本.
我想显示一个警报,并允许下一个命令,一个表单submit(),继续.因此,在显示警报后页面将会更改,但不会等到用户单击"确定".
有这样的事情还是只是其中一件不可能的事情?
我被告知我不应该直接在Web应用程序的HTML代码中使用数据库ID.
目前,我在表格行ID(tableRow-454,其中454是数据库中行的ID),隐藏或选择表单或URL中的字段等内容上使用ID.(我不是指在页面上直观地告诉人们他们是####.)
我给出的建议是使用一些数学来模糊用户的ID.我认为这只会使事情变得更复杂并增加不必要的复杂性.但是我可以看到一些很好的理由让从HTML中确定数据库ID变得更加困难.
您是否对用户的ID进行了模糊处理?或者你在乎吗?
我有几个搜索表单,1个有~50个字段,另一个有~100个.通常,正如HTML规范所说,我使用GET方法进行搜索,因为没有数据被更改.我还没有碰到这个问题,但我想知道我是否会很快耗尽URL空间?
Internet Explorer的限制为2083个字符.其他浏览器,有更高的限制.我正在运行Apache,所以限制大约有4000个字符,IIS是16384个字符.
在100个字段中,假设平均字段名称长度为10个字符,那已经是5000个字符...在100字段表单上令人惊讶,我还没有任何错误.(25%的字段是多个选择,因此字段长度要长得多.)
所以,我想知道我的选择是什么.(缩短表格不是一种选择.)在这里我的想法:
还有其他想法吗?
另外,有人知道长度是编码长度还是纯文本?
我正在开发PHP,但它可能没有什么区别.
编辑:我无法删除任何字段; 我无法缩短表格.这是客户要求的,他们经常使用不同类别的一系列字段.我知道很难想到一个在这么多领域看起来不错的表单,但是用户在理解它的工作原理时没有问题.
在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标签,但这看起来很脏.