我有这个:
Array (
[0] => Array ( [f_count] => 1 [uid] => 105 )
[1] => Array ( [f_count] => 0 [uid] => 106 )
[2] => Array ( [f_count] => 2 [uid] => 107 )
[3] => Array ( [f_count] => 0 [uid] => 108 )
[4] => Array ( [f_count] => 1 [uid] => 109 )
[5] => Array ( [f_count] => 0 [uid] => 110 )
[6] => Array ( [f_count] => 3 [uid] => 111 ) …Run Code Online (Sandbox Code Playgroud) 我正在尝试创建一个简短的5或6个字符的邀请代码,该代码将在我的网站上创建"组"时生成.组信息存储在组表中.希望加入群组的用户必须拥有邀请码 - 他们没有必要知道任何其他内容.
显然,我需要邀请代码是唯一的,我希望在没有仔细检查的情况下生成唯一的字符串,但是弄清楚代码很困难.我一直在阅读几十个问题和答案.这就是我想出来的:
将组信息(例如名称)插入组表时,该行自然会被赋予唯一的自动递增ID.
1)抓住那个id
2)将其添加到1234
3)在将团队名称从base36转换为base10之后,简单地将值放在彼此旁边."NewYorkYankees"是base10(3994055806027582482648)[1263399405580602758248264820130221060827])
4)转换为基数36
5)将代码插入数据库
这保证对每个群体都是独一无二的,对吧?零碰撞的机会?我这样说是因为它根本不是随机的; 我从一些独特的东西开始,我保持它独特,从不引入随机数据.
我有几个问题,因为组名是可重复的,如何在创建/ INSERTion时获取行id?这不起作用,但它就在我所在的地方:
$query = "SELECT id FROM groups WHERE gname = :gname";
...
$uid = $result + '1234';
$hex = md5(":gname NOW()" . uniqid("$uid", true));
base_convert($hex, 10, 36);
intval($str, 36);
$query = "INSERT...";
Run Code Online (Sandbox Code Playgroud)
独特,简短但不可预测,没有所有正确的部分,用户无法使用.
我正在使用此代码来验证输入字段,但我不希望它在字段失去焦点后将字段从字段中拉出半秒.我怎样才能做到这一点?
$(document).ready(function()
{
$("#group_id").blur(function()
{
$("#gmsgbox").removeClass().addClass('messagebox').text('Checking...').fadeIn("slow");
$.post("group_availability.php",{ group_id:$(this).val() } ,function(data)
{
if(data=='invalid')
{
$("#gmsgbox").fadeTo(200,0.1,function()
{
$(this).html('Please enter a valid Group ID').addClass('messageboxerror').fadeTo(900,1);
});
}
else
{
$("#gmsgbox").fadeTo(200,0.1,function() //start fading the messagebox
{
$(this).html('Group ID available').addClass('messageboxok').fadeTo(900,1);
});
}
});
});
});
Run Code Online (Sandbox Code Playgroud) 所以,差不多一年前,我在我的网站上设置了HSTS并将其提交到Google的预加载列表中.现在,我遇到了一个问题,因为我白标了我的sendgrid链接跟踪,它依赖于我网站子域的cname.因此,这些链接失败并NET::ERR_CERT_COMMON_NAME_INVALID在Chrome中出错,因为浏览器收到的SSL证书来自SendGrid.
有办法解决这个问题吗?Chrome的预加载列表要求我的所有子域都通过SSL提供,并且证书与我的实际域绑定.有没有办法快速让Chrome删除我的子域名的期望?或者有没有办法更改SendGrid设置,以便我消除CNAME记录,我的子域重定向到SendGrid域?也许别的东西.
顺便说一句,我的子域有自己的SSL证书.
如果有必要,我愿意切换到不同的域进行链接跟踪,但是我需要一种方法来重写旧客户电子邮件中的链接.
我允许用户在我的网站上注册"游戏"; 正常情况下,他们都会收到唯一的ID.在给定的时间点,注册将停止.那时,我想运行代码来分配合作伙伴,但不是配对.
所以,如果我有以下内容:
+ -------- + ------- +
| user_id | 伙伴|
+ -------- + ------- +
|1 ||
|3 ||
|7 ||
|11 ||
|12 ||
|18 ||
+--------+-------+
what would I do to end up with something like this:
+--------+--------+
| user_id | partnr |
+--------+--------+
|1 |7 |
|3 |12 |
|7 |18 |
|11 |1 | …