initial import

This commit is contained in:
Alchemy
2011-02-16 16:09:48 +01:00
parent 399a584b6f
commit 339d23c06d
5539 changed files with 2028637 additions and 1 deletions

View File

@@ -0,0 +1,127 @@
<?php
class random
{
function cleanTokens()
{
$conn = connection::getInstance();
$date = new DateTime();
$date = phraseadate::format_mysql($date);
$sql = 'SELECT * FROM tokens WHERE expire_on < "'.$date.'" AND datas IS NOT NULL AND type="download"';
if($rs = $conn->query($sql))
{
while($row = $conn->fetch_assoc($rs))
{
switch($row['type'])
{
case 'download':
$file = GV_RootPath.'tmp/download/'.$row['value'].'.zip';
if(is_file($file))
unlink($file);
break;
}
}
$conn->free_result($rs);
}
$sql = 'UPDATE tokens SET datas=NULL WHERE expire_on < "'.$date.'"';
$conn->query($sql);
$date = new DateTime('-4 days');
$date = phraseadate::format_mysql($date);
$sql = 'DELETE FROM tokens WHERE expire_on < "'.$date.'"';
$conn->query($sql);
}
public static function generatePassword ($length = 8)
{
$password = "";
$possible = "0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ";
$i = 0;
while ($i < $length) {
$char = substr($possible, mt_rand(0, strlen($possible)-1), 1);
if (!strstr($password, $char)) {
$password .= $char;
$i++;
}
}
return $password;
}
public static function getUrlToken($type,$usr,$end_date=false,$datas='')
{
self::cleanTokens();
$conn = connection::getInstance();
$token = $test = false;
if(!in_array($type,array('password','download', 'email', 'view', 'validate','rss')))
return $token;
if($conn)
{
$n = 1;
while($n<100)
{
$test = self::generatePassword(16);
if($rs = $conn->query('SELECT id FROM tokens WHERE value="'.$conn->escape_string($test).'"'))
{
if($conn->num_rows($rs) == 0)
{
if($conn->query('INSERT INTO tokens (id, value, type, usr_id, created_on, expire_on, datas) VALUES (null, "'.$conn->escape_string($test).'", "'.$conn->escape_string($type).'", "'.$conn->escape_string($usr ? $usr : '-1').'", NOW(), '.($end_date ? '"'.$conn->escape_string($end_date).'"' : 'null').', '.(trim($datas)!=''?('"'.$conn->escape_string($datas).'"'):'NULL').')'))
{
$token = $test;
break;
}
}
}
}
}
return $token;
}
public static function removeToken($token)
{
self::cleanTokens();
$conn = connection::getInstance();
$sql = 'DELETE FROM tokens WHERE id="'.$conn->escape_string($token).'"';
if($conn->query($sql))
return true;
return false;
}
public static function updateToken($token,$datas)
{
self::cleanTokens();
$conn = connection::getInstance();
$sql = 'UPDATE tokens SET datas="'.$conn->escape_string($datas).'" WHERE value="'.$conn->escape_string($token).'"';
if($conn->query($sql))
return true;
return false;
}
public static function helloToken($token)
{
self::cleanTokens();
$ret = false;
$conn = connection::getInstance();
if(!$conn)
return $ret;
$sql = 'SELECT * FROM tokens WHERE value="'.$conn->escape_string($token).'"';
if($rs = $conn->query($sql))
{
if($row = $conn->fetch_assoc($rs))
{
$ret = $row;
}
$conn->free_result($rs);
}
return $ret;
}
}