本文整理汇总了PHP中checkLock函数的典型用法代码示例。如果您正苦于以下问题:PHP checkLock函数的具体用法?PHP checkLock怎么用?PHP checkLock使用的例子?那么恭喜您, 这里精选的函数代码示例或许可以为您提供帮助。
在下文中一共展示了checkLock函数的14个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的PHP代码示例。
示例1: requestRecommendation
function requestRecommendation($user_id, $author, $email, $message)
{
if (!checkLock("peer")) {
return 6;
}
$config = $GLOBALS['config'];
$user_id = escape($user_id);
$author = escape($author);
$email = escape($email);
if (!validEmail($email)) {
return 1;
}
if (strlen($author) <= 3) {
return 2;
}
//make sure there aren't too many recommendations already
$result = mysql_query("SELECT COUNT(*) FROM recommendations WHERE user_id = '{$user_id}'");
$row = mysql_fetch_row($result);
if ($row[0] >= $config['max_recommend']) {
return 4;
//too many recommendations
}
//ensure this email hasn't been asked with this user already
$result = mysql_query("SELECT COUNT(*) FROM recommendations WHERE user_id = '{$user_id}' AND email = '{$email}'");
$row = mysql_fetch_row($result);
if ($row[0] > 0) {
return 5;
//email address already asked
}
lockAction("peer");
//first create an instance
$instance_id = customCreate(customGetCategory('recommend', true), $user_id);
//insert into recommendations table
$auth = escape(uid(64));
mysql_query("INSERT INTO recommendations (user_id, instance_id, author, email, auth, status, filename) VALUES ('{$user_id}', '{$instance_id}', '{$author}', '{$email}', '{$auth}', '0', '')");
$recommend_id = mysql_insert_id();
$userinfo = getUserInformation($user_id);
//array (username, email address, name)
//send email now
$content = page_db("request_recommendation");
$content = str_replace('$USERNAME$', $userinfo[0], $content);
$content = str_replace('$USEREMAIL$', $userinfo[1], $content);
$content = str_replace('$NAME$', $userinfo[2], $content);
$content = str_replace('$AUTHOR$', $author, $content);
$content = str_replace('$EMAIL$', $email, $content);
$content = str_replace('$MESSAGE$', page_convert($message), $content);
$content = str_replace('$AUTH$', $auth, $content);
$content = str_replace('$SUBMIT_ADDRESS$', $config['site_address'] . "/recommend.php?id={$recommend_id}&user_id={$user_id}&auth={$auth}", $content);
$result = one_mail("Recommendation request", $content, $email);
if ($result) {
return 0;
} else {
return 3;
}
}
示例2: getData
/**
* 从RSS抓取数据
* @author Mr.Cong <i@cong5.net>
*/
public function getData($parameters)
{
$feed = FeedsFacade::make($this->base_uri);
$data = array('title' => $feed->get_title(), 'permalink' => $feed->get_permalink(), 'items' => $feed->get_items());
$log_name = 'chinagdg.lock';
$lock_title = $data['items'][0]->get_title();
if (checkLock($log_name, $lock_title)) {
//开始读取数据保存进数据库
$this->saveData($data);
}
print 0;
exit;
}
示例3: requestPGP
function requestPGP($email, $key)
{
require_once includePath() . "/lock.php";
global $config, $lang;
if (!checkLock('requestpgp')) {
return $lang['submit_error_trylater'];
}
if (!filter_var($email, FILTER_VALIDATE_EMAIL)) {
return $lang['submit_error_bademail'];
}
if (strlen($email) > 256 || strlen($key) > 1024 * 32) {
return $lang['submit_error_toolong'];
}
if (!isAscii($key)) {
return $lang['submit_error_nonascii'];
}
//housekeeping
databaseQuery("DELETE FROM gpgmw_keys WHERE time < DATE_SUB(NOW(), INTERVAL 48 HOUR) AND confirm != '' AND status = 0");
//if we already have an unaccepted key for this user, only replace if one day has elapsed since the last request
// this may prevent spam
$result = databaseQuery("SELECT HOUR(TIMEDIFF(time, NOW())), id FROM gpgmw_keys WHERE email = ? AND status = 0", array($email));
if ($row = $result->fetch()) {
if ($row[0] < 24) {
return $lang['submit_error_alreadyqueue'];
} else {
databaseQuery('DELETE FROM gpgmw_keys WHERE id = ?', array($row[1]));
}
}
//if PGP key verification is enabled, do it
if ($config['pgpverify_enable']) {
require_once includePath() . "/gpg.php";
if (!verifyPGPKey($key, $email)) {
return $lang['submit_error_badkey'];
}
}
//well, it looks good, let's submit it
lockAction('requestpgp');
$confirm = uid(32);
$confirm_link = "{$config['site_url']}/confirm.php?email=" . urlencode($email) . "&confirm={$confirm}";
$result = gpgmw_mail($config['email_subject_requestpgp'], sprintf($lang['mail_confirm'], $confirm_link), $email);
if (!$result) {
return $lang['submit_error_emailfail'];
}
databaseQuery("INSERT INTO gpgmw_keys (email, publickey, confirm) VALUES (?, ?, ?)", array($email, $key, $confirm));
return true;
}
示例4: authChangePassword
function authChangePassword($user_id, $old_password, $new_password)
{
global $config, $db;
if (!checkLock("checkuser")) {
return "Too many failed attempts. Please try again later.";
}
if (strlen($new_password) < 6) {
return "The new password is too short. Please use at least six characters.";
}
if ($old_password == $new_password) {
return "The old and new passwords are identical.";
}
if (!authCheckPassword($user_id, $old_password, "id")) {
lockAction("checkuser");
return "The password you entered is not correct.";
}
$user_id = escape($user_id);
require_once includePath() . "/pbkdf2.php";
$new_password = escape("*pbkdf2*" . pbkdf2_create_hash($new_password));
$db->query("UPDATE accounts SET password = '{$new_password}' WHERE id = '{$user_id}'");
return true;
}
示例5: getData
/**
* 从RSS抓取数据
* @author Mr.Cong <i@cong5.net>
*/
public function getData($fids = array())
{
foreach ($fids as $key => $fid) {
$this->fid = $fid;
$this->build_query = sprintf('forum.php?mod=rss&fid=%s&auth=0', $fid);
$feed = FeedsFacade::make($this->base_uri . $this->build_query);
$data = array('title' => $feed->get_title(), 'permalink' => $feed->get_permalink(), 'items' => $feed->get_items());
/*
* 获取到最新的一条的标题
*/
$log_name = $fid . '.lock';
$lock_title = $data['items'][0]->get_title();
if (checkLock($log_name, $lock_title)) {
//开始读取数据保存进数据库
$this->saveData($data);
} else {
break;
}
unset($feed);
unset($data);
unset($log_name);
unset($lock_title);
}
}
示例6: readResolutions
$smarty->assign('file', $_GET['file']);
} else {
if ($_GET['file'] == 'resolutions.txt' && checkReadPerms($_GET['organ'])) {
$smarty->assign('text', readResolutions($_GET['organ']));
$smarty->assign('organ', $_GET['organ']);
$smarty->assign('file', $_GET['file']);
}
}
}
}
}
}
if (isset($_POST['text']) and isset($_GET['organ']) and isset($_GET['file'])) {
//save changes
if (checkOrgan($_GET['organ']) and checkWritePerms($_GET['organ'])) {
if (checkFilename($_GET['file']) and checkLock($_SESSION['user'], $_GET['organ'], $_GET['file'])) {
writeIntoFile($_POST['text'], $_GET['organ'], $_GET['file']);
$smarty->assign('text', $_POST['text']);
$smarty->assign('organ', $_GET['organ']);
$smarty->assign('file', $_GET['file']);
deleteLock($_GET['organ'], $_GET['file']);
} else {
if (checkAdminPerms($_GET['organ'])) {
if ($_GET['file'] == "template") {
writeTemplate($_POST['text'], $_POST['organ']);
$smarty->assign('text', $_POST['text']);
$smarty->assign('organ', $_GET['organ']);
$smarty->assign('file', $_GET['file']);
deleteLock($_GET['organ'], $_GET['file']);
} else {
if ($_GET['file'] == "email") {
示例7: ini_set
<?php
ini_set('error_reporting', E_ALL);
ini_set('display_errors', 1);
ini_set('display_startup_errors', 1);
echo "Servers Service started [" . date('d.m.Y h:i', time()) . "] with PID= " . getmypid() . "\n";
include __DIR__ . '/conf.php';
include __corePath . 'libs/service.php';
include __corePath . 'libs/ApiQuery.php';
include __corePath . 'libs/jsonDB.php';
if (checkLock('servers')) {
die("Found .lock file, exit.\n");
}
lock('servers');
$serversList = new JsonDB(__serversdb);
foreach ($serversList->data as $key => $server) {
if (checkServerTestTime($server, 60)) {
$query = new ApiQuery($server['address'], $server['apiKey']);
$info = $query->getServerInfo(true);
if ($info['responseStatus'] == 'ok') {
$serversList->data[$key]['name'] = $info['serverName'];
$serversList->data[$key]['tasksCount'] = $info['tasksCount'];
$serversList->data[$key]['tasks'] = $info['tasks'];
$serversList->data[$key]['freeSpace'] = $info['freeSpace'];
$serversList->data[$key]['lastCheck'] = time();
$serversList->data[$key]['status'] = 1;
if ($server['archSync']) {
$tasksfiles = $query->getTasksFiles(true);
// ----------------------------------
foreach ($tasksfiles as $taskId => $tmpFiles) {
$files = array();
示例8: Sql_Query
$userids = Sql_Query(sprintf('select * from %s where id = 0', $tables["user"]));
}
}
$affrows = Sql_Affected_Rows();
while ($userdata = Sql_fetch_row($userids)) {
if ($num_per_batch && $sent >= $num_per_batch) {
output($GLOBALS['I18N']->get('batch limit reached') . ": {$sent} ({$num_per_batch})");
$GLOBALS["wait"] = $batch_period;
return;
}
$userid = $userdata[0];
# id of the user
$some = 1;
set_time_limit(120);
# check if we have been "killed"
$alive = checkLock($send_process_id);
if ($alive) {
keepLock($send_process_id);
} else {
ProcessError($GLOBALS['I18N']->get('Process Killed by other process'));
}
# check if the message we are working on is still there and in process
$status = Sql_Fetch_Array_query("select id,status from {$tables['message']} where id = {$messageid}");
if (!$status['id']) {
ProcessError($GLOBALS['I18N']->get('Message I was working on has disappeared'));
} elseif ($status['status'] != 'inprocess') {
ProcessError($GLOBALS['I18N']->get('Sending of this message has been suspended'));
}
flush();
# check whether the user has already received the message
$um = Sql_query("select entered from {$tables['usermessage']} where userid = {$userdata['0']} and messageid = {$messageid}");
示例9: Sql_Query
Sql_Query(sprintf('update %s set confirmed = 0 where id = %d',$tables["user"],$user[0]));
addSubscriberStatistics('auto unsubscribe',1);
$email_req = Sql_Fetch_Row_Query(sprintf('select email from %s where id = %d',$tables["user"],$user[0]));
$unsubscribed_users .= $email_req[0] . " [$user[0]] ($cnt)\n";
}
} elseif ($bounce["bounce"] == "") {
$cnt = 0;
}
}*/
#$alive = 1;$removed = 0; DT 051105
$cnt = 0;
$alive = 1;
$removed = $msgokay = $unconfirmed = $unsubscribed = 0;
#while ($alive && !$removed && $bounce = Sql_Fetch_Array($msg_req)) { DT 051105
while ($alive && !$removed && !$msgokay && ($bounce = Sql_Fetch_Array($msg_req))) {
$alive = checkLock($process_id);
if ($alive) {
keepLock($process_id);
} else {
bounceProcessError("Process Killed by other process");
}
if (stripos($bounce['status'], 'duplicate') === false && stripos($bounce['comment'], 'duplicate') === false) {
if (sprintf('%d', $bounce["bounce"]) == $bounce["bounce"]) {
$cnt++;
if ($cnt >= $bounce_unsubscribe_threshold) {
if (!$unsubscribed) {
outputProcessBounce(sprintf('unsubscribing %d -> %d bounces', $user[0], $cnt));
$userurl = PageLink2("user&id={$user['0']}", $user[0]);
logEvent(s('User (url:%s) has consecutive bounces (%d) over threshold (%d), user marked unconfirmed', $userurl, $cnt, $bounce_unsubscribe_threshold));
$emailreq = Sql_Fetch_Row_Query("select email from {$tables["user"]} where id = {$user['0']}");
addUserHistory($emailreq[0], s('Auto Unconfirmed'), s('Subscriber auto unconfirmed for %d consecutive bounces', $cnt));
示例10: date
if (empty($process_id)) {
return;
}
## only convert up to a week ago.
$lastweek = date('Y-m-d', time() - 24 * 7 * 3600);
cl_output(sprintf('select count(*) from %s lt, %s m where lt.messageid = m.id and m.entered < "%s"', $GLOBALS['tables']['linktrack'], $GLOBALS['tables']['message'], $lastweek));
$num = Sql_Fetch_Row_Query(sprintf('select count(*) from %s lt, %s m where lt.messageid = m.id and m.entered < "%s"', $GLOBALS['tables']['linktrack'], $GLOBALS['tables']['message'], $lastweek));
output(s('%d entries still to convert', $num[0]) . '<br/>');
$c = 0;
$req = Sql_Query(sprintf('select lt.* from %s lt, %s m where lt.messageid = m.id and m.entered < "%s" limit %d', $GLOBALS['tables']['linktrack'], $GLOBALS['tables']['message'], $lastweek, $limit));
$total = Sql_Affected_Rows();
if ($total) {
output(s('converting data') . '<br/>');
}
while ($row = Sql_Fetch_Array($req)) {
if (checkLock($process_id)) {
keepLock($process_id);
} else {
output(s('processing cancelled'));
break;
}
$exists = Sql_Fetch_Row_Query(sprintf('select id from %s where url = "%s"', $GLOBALS['tables']['linktrack_forward'], $row['url']));
if (!$exists[0]) {
$personalise = preg_match('/uid=/', $row['forward']);
Sql_Query(sprintf('insert into %s (url,personalise) values("%s",%d)', $GLOBALS['tables']['linktrack_forward'], $row['url'], $personalise));
$fwdid = Sql_Insert_id();
} else {
$fwdid = $exists[0];
}
set_time_limit(600);
$messageid = $row['messageid'];
示例11: session_start
<?php
session_start();
require 'defines.php';
require 'lib.php';
header('Content-Type: text/xml');
echo '<?xml version="1.0" encoding="UTF-8" standalone="yes"?>';
//check if a lock file exists
if (checkOrgan($_GET['organ'])) {
if (checkFilename($_GET['file']) or $_GET['file'] == "template" or $_GET['file'] == "email" or $_GET['file'] == "resolutions.txt") {
if (checkLock($_SESSION['user'], $_GET['organ'], $_GET['file'])) {
createLock($_SESSION['user'], $_GET['organ'], $_GET['file']);
echo '<response>Get lock file until ' . date('H-i', time() + 15 * 60) . ' </response>';
} else {
echo "<response>Another user is editing this file</response>";
}
}
}
示例12: verifyLogin
function verifyLogin($user_id, $password)
{
if (!checkLock("checkuser")) {
return -2;
}
$user_id = escape($user_id);
//decrypt the password if needed
require_once includePath() . "/crypto.php";
$password = decryptPassword($password);
$result = mysql_query("SELECT password, salt FROM users WHERE id='" . $user_id . "'");
if ($row = mysql_fetch_array($result)) {
if (chash2($password, hex2bin($row['salt'])) == $row['password']) {
return true;
} else {
lockAction("checkuser");
return -1;
}
} else {
lockAction("checkuser");
return -1;
}
}
示例13: checkLock
<?php
include_once "config.php";
include_once "includes.php";
include_once "functions.php";
checkLock();
$dbName = DB_NAME;
$dbc = new coneXion(DB_HOST, DB_USER, DB_PASS, DB_NAME);
$sql = " SELECT * FROM {$dbName}.imagenes WHERE procesado=0 LIMIT " . PROCS_PER_RUN;
$rs = mysql_query($sql, $dbc->db);
if (!$rs) {
die("DB ERROR");
}
while ($obj = mysql_fetch_object($rs)) {
$id = $obj->id;
$celular = $obj->celular;
$qrImgName = $id . ".jpg";
$downloadOk = getFtpFiles(FTP_PATH . "/{$qrImgName}");
if ($downloadOk === TRUE) {
// leer qr
$qrRead = readQRCode($qrImgName);
// parse result
if (qrFound($qrRead) === TRUE) {
$qrFound = TRUE;
$urlPush = readUrl($qrRead);
// valido url
if (isValidUrl($urlPush) === TRUE) {
// send sms push
$msgPush = "Ir a";
$push = new pushAntel($dbc->db, SMS_SC, $celular, $msgPush);
$sent = $push->enviarPush($urlPush, $msgPush);
示例14: ini_set
<?php
ini_set('error_reporting', E_ALL);
ini_set('display_errors', 1);
ini_set('display_startup_errors', 1);
echo "Service started [" . date('d.m.Y h:i', time()) . "] with PID= " . getmypid() . "\n";
include __DIR__ . '/conf.php';
include __corePath . 'libs/service.php';
include __corePath . 'libs/jsonDB.php';
include __corePath . 'libs/dumper.php';
if (checkLock('tasks')) {
die("Found .lock file, exit.\n");
}
lock('tasks');
$tasksList = new JsonDB(__taskdb);
foreach ($tasksList->data as $key => $task) {
$nextExec = nextExecDateTime($task);
echo "+++++++++++++++++++++++++++++++++++++\n";
echo $task['title'] . "\n";
echo "+++++++++++++++++++++++++++++++++++++\n";
echo "CurtTime = " . date('d.m.Y h:i', time()) . "\n";
echo "Lastexec = " . date('d.m.Y h:i', $task['lastExec']) . "\n";
echo "NextExec = " . date('d.m.Y h:i', $nextExec) . "\n";
if (time() >= $nextExec && $nextExec > 0) {
switch ($task['type']) {
case 'files_backup':
$res = 0;
$tasksList->data[$key]['execStatus'] = 0;
try {
$res = filesBackup($task);
} catch (Exception $e) {