1
1
Fork 0

Merge pull request #1424 from annando/1503-better-guid

Reworked guid function
This commit is contained in:
Tobias Diekershoff 2015-03-12 07:14:36 +01:00
commit 1e9e23be61
2 changed files with 16 additions and 27 deletions

View file

@ -1196,35 +1196,24 @@ if(! function_exists('check_plugins')) {
} }
} }
function get_guid($size=16) { function get_guid($size=16, $prefix = "") {
$exists = true; // assume by default that we don't have a unique guid
do { if ($prefix == "") {
$prefix = ""; $a = get_app();
$prefix = hash("crc32", $a->get_hostname());
}
while (strlen($prefix) < ($size - 13)) while (strlen($prefix) < ($size - 13))
$prefix .= mt_rand(); $prefix .= mt_rand();
$s = substr(uniqid($prefix), -$size); if ($size >= 24) {
$prefix = substr($prefix, 0, $size - 22);
$r = q("select id from guid where guid = '%s' limit 1", dbesc($s)); return(str_replace(".", "", uniqid($prefix, true)));
if(! count($r)) } else {
$exists = false; $prefix = substr($prefix, 0, $size - 13);
} while($exists); return(uniqid($prefix));
q("insert into guid (guid) values ('%s') ", dbesc($s)); }
return $s;
} }
/*function get_guid($size=16) {
$exists = true; // assume by default that we don't have a unique guid
do {
$s = random_string($size);
$r = q("select id from guid where guid = '%s' limit 1", dbesc($s));
if(! count($r))
$exists = false;
} while($exists);
q("insert into guid ( guid ) values ( '%s' ) ", dbesc($s));
return $s;
}*/
// wrapper for adding a login box. If $register == true provide a registration // wrapper for adding a login box. If $register == true provide a registration
// link. This will most always depend on the value of $a->config['register_policy']. // link. This will most always depend on the value of $a->config['register_policy'].

View file

@ -1210,8 +1210,8 @@ function item_store($arr,$force_parent = false, $notify = false, $dontcache = fa
$arr['attach'] = ((x($arr,'attach')) ? notags(trim($arr['attach'])) : ''); $arr['attach'] = ((x($arr,'attach')) ? notags(trim($arr['attach'])) : '');
$arr['app'] = ((x($arr,'app')) ? notags(trim($arr['app'])) : ''); $arr['app'] = ((x($arr,'app')) ? notags(trim($arr['app'])) : '');
$arr['origin'] = ((x($arr,'origin')) ? intval($arr['origin']) : 0 ); $arr['origin'] = ((x($arr,'origin')) ? intval($arr['origin']) : 0 );
$arr['guid'] = ((x($arr,'guid')) ? notags(trim($arr['guid'])) : get_guid(30));
$arr['network'] = ((x($arr,'network')) ? trim($arr['network']) : ''); $arr['network'] = ((x($arr,'network')) ? trim($arr['network']) : '');
$arr['guid'] = ((x($arr,'guid')) ? notags(trim($arr['guid'])) : get_guid(32, $arr['network']));
$arr['postopts'] = ((x($arr,'postopts')) ? trim($arr['postopts']) : ''); $arr['postopts'] = ((x($arr,'postopts')) ? trim($arr['postopts']) : '');
$arr['resource-id'] = ((x($arr,'resource-id')) ? trim($arr['resource-id']) : ''); $arr['resource-id'] = ((x($arr,'resource-id')) ? trim($arr['resource-id']) : '');
$arr['event-id'] = ((x($arr,'event-id')) ? intval($arr['event-id']) : 0 ); $arr['event-id'] = ((x($arr,'event-id')) ? intval($arr['event-id']) : 0 );