Server :
Apache
System :
Linux webd003.cluster126.gra.hosting.ovh.net 5.15.206-ovh-vps-grsec-zfs-classid #1 SMP Fri May 15 02:41:25 UTC 2026 x86_64
User :
atwiofrxug (73666)
PHP Version :
8.4.10
Disable Functions :
_dyuweyrj4,_dyuweyrj4r,dl
Current Directory :
/home/atwiofrxug/mylittletelaviv/wp-content/plugins/knews/direct/
Directory Status:
Writeable | Document Root:
Writeable
Upload File
Viewing: /home/atwiofrxug/mylittletelaviv/wp-content/plugins/knews/direct/knews_cron_do.php
<?php
global $knewsOptions, $Knews_plugin, $wpdb;
if ($Knews_plugin) {
if ( get_current_blog_id() != $Knews_plugin->KNEWS_MAIN_BLOG_ID && $Knews_plugin->im_networked() ) {
die("You must call the main blog www.yourdomain.com/wp-admin/admin-ajax.php?action=knewsCron URL");
}
$js=$Knews_plugin->get_safe('js', 0, 'int');
$mysqldate = $Knews_plugin->get_mysql_date();
$query = "SELECT * FROM " . $wpdb->base_prefix . "knewsubmits WHERE finished=0 AND paused=0 AND start_time <= '" . $mysqldate . "' ORDER BY priority DESC LIMIT 1";
$submit_pend = $wpdb->get_results( $query );
if (count($submit_pend) == 1) {
if ($Knews_plugin->initialized) die("Knews internal error: can't be initialized before!");
if( $Knews_plugin->im_networked() ) {
$Knews_plugin->init($submit_pend[0]->blog_id);
} else {
$Knews_plugin->init();
}
if ($knewsOptions['write_logs']=='yes') {
@$fp = fopen(KNEWS_DIR . '/tmp/cronlog_' . $submit_pend[0]->id, 'a');
} else {
$fp=false;
}
$id_newsletter = $submit_pend[0]->newsletter;
if ($submit_pend[0]->special == '') {
require( KNEWS_DIR . "/includes/knews_compose_email.php");
} else {
$langs_array=$Knews_plugin->getLangs(true);
}
//Evitem doble execucio
@$filelock = fopen(KNEWS_DIR . '/tmp/lockfile.txt', 'x');
if (!$filelock) {
//Existeix?
if (is_file(KNEWS_DIR . '/tmp/lockfile.txt')) {
@$filelock = fopen(KNEWS_DIR . '/tmp/lockfile.txt', 'r');
$timelock = intval(fread($filelock, filesize(KNEWS_DIR . '/tmp/lockfile.txt')));
fclose($filelock);
$timemax = 3500;
if( !@set_time_limit(25) ) $timemax = ini_get('max_execution_time') + 120;
if (intval(time()) - $timelock > $timemax) {
$query = "UPDATE " . KNEWS_NEWSLETTERS_SUBMITS_DETAILS . " SET status=0 WHERE status=3 AND submit=" . $submit_pend[0]->id;
$restart = $wpdb->query( $query );
//Posem la nova data
if ($fp) fwrite($fp, '* Previous submit process terminated suddenly, continuing...' . "<br>\r\n");
@$filelock = fopen(KNEWS_DIR . '/tmp/lockfile.txt', 'w');
if (!$filelock) die();
fwrite($filelock, time() );
fclose($filelock);
} else {
if ($fp) {
fwrite($fp, '* Submit process overlapped, terminating this one...' . "<br>\r\n");
fclose($fp);
}
if ($js != 0) echo 'Submit process overlapped, wait some minutes and refresh...';
die();
}
} else {
if ($fp) {
fwrite($fp, '* Please, make writable the folder wp-content/plugins/knews/tmp. Otherwise double submits can occur.' . "<br>\r\n");
}
}
} else {
//Escribim fitxer
fwrite($filelock, time() );
fclose($filelock);
}
//Estadistiques
$query = "SELECT * FROM " . KNEWS_KEYS . " WHERE submit_id=" . $submit_pend[0]->id;
$urls_submit = $wpdb->get_results( $query );
$url_track = get_admin_url() . 'admin-ajax.php?action=knewsTrack&t=%confkey%_';
if (!defined('KNEWS_TRACKPIXEL_URL')) {
$wp_dirs = wp_upload_dir();
$img_track = $wp_dirs['baseurl'] . '/knewsimages/%confkey%_';
} else {
$img_track = KNEWS_TRACKPIXEL_URL;
}
if ($knewsOptions['pixel_tracking']!=1) $img_track = KNEWS_URL . '/direct/track.php?img=%confkey%_';
foreach ($urls_submit as $url_submit) {
if ($url_submit->type==6) {
//Cut extension
$real_image = $url_submit->href;
$pos = strrpos($real_image, ".");
if ($pos !== false && $knewsOptions['pixel_tracking']==1) $real_image=substr($real_image, 0 , $pos);
//Replace first
$pos = strpos($theHtml, $real_image);
if ($pos !== false) {
$theHtml = substr_replace($theHtml, $img_track . $url_submit->keyy, $pos, strlen($real_image));
}
} else {
$theHtml = str_replace('"' . $url_submit->href . '"', '"' . $url_track . $url_submit->keyy . '"', $theHtml);
}
}
$query = "SELECT * FROM " . KNEWS_NEWSLETTERS_SUBMITS_DETAILS . " WHERE status=0 AND submit=" . $submit_pend[0]->id . " LIMIT " . $submit_pend[0]->emails_at_once;
$submits = $wpdb->get_results( $query );
$query = "UPDATE " . KNEWS_NEWSLETTERS_SUBMITS_DETAILS . " SET status=3 WHERE status=0 AND submit=" . $submit_pend[0]->id . " LIMIT " . $submit_pend[0]->emails_at_once;
$block = $wpdb->query( $query );
$ok_count = $submit_pend[0]->users_ok;
$error_count = $submit_pend[0]->users_error;
if (count($submits)>0) {
if ($fp) {
$hour = date('d/m/Y H:i:s', current_time('timestamp'));
fwrite($fp, '* KNEWS ' . KNEWS_VERSION . ' ' . $hour . ' | ok: ' . $ok_count . ' | error: ' . $error_count . "<br>\r\n");
}
} else {
$query = "SELECT * FROM " . KNEWS_NEWSLETTERS_SUBMITS_DETAILS . " WHERE status=2 AND submit=" . $submit_pend[0]->id;
$real_error_count = $wpdb->get_results( $query );
$error_count = count($real_error_count);
$ok_count = $submit_pend[0]->users_total - $error_count;
}
$users = array();
$users_index = 0;
foreach ($submits as $unique_submit) {
$users[$users_index]=array();
$users[$users_index]=$wpdb->get_row("SELECT * FROM " . KNEWS_USERS . " WHERE id=" . $unique_submit->user);
$users[$users_index]->unique_submit = $unique_submit->id;
$users[$users_index]->confirm = $Knews_plugin->get_localized_home($users[$users_index]->lang, 'knews=confirmUser&k=' . $users[$users_index]->confkey . '&e=' . $users[$users_index]->id );
if ($submit_pend[0]->special == 'import_confirm') {
$localized_lang = $Knews_plugin->localize_lang($langs_array, $users[$users_index]->lang);
$theSubject = $Knews_plugin->get_custom_text('email_importation_subject', $localized_lang);
$theHtml = '<head><title>' . $theSubject . '</title></head><body>'.$Knews_plugin->get_custom_text('email_importation_body', $localized_lang).'</body>';
//$theHtml = str_replace('#url_confirm#', $url_confirm, $theHtml);
//$result=$Knews_plugin->sendMail( array( $user ), $theSubject, $theHtml );
} else {
$aux_array=array();
foreach ($used_tokens as $token) {
$aux_array[] = array( 'token' => $token['token'], 'value' => $Knews_plugin->get_user_field($users[$users_index]->id, $token['id'], $token['defaultval']) );
}
$users[$users_index]->tokens = $aux_array;
$users[$users_index]->unsubscribe = $Knews_plugin->get_localized_home($users[$users_index]->lang, 'knews=unsubscribe&e=' . $users[$users_index]->id . '&k=' . $users[$users_index]->confkey . '&n=' . $id_newsletter . '&id=' . $submit_pend[0]->id);
$url_news = $Knews_plugin->get_localized_home($users[$users_index]->lang, 'knews=readEmail&id=' . $id_newsletter);
$users[$users_index]->cant_read = $url_news . '&e=' . $users[$users_index]->id . '&k=' . $submit_pend[0]->id;
$users[$users_index]->fb_like = 'https://www.facebook.com/sharer/sharer.php?u=' . urlencode($url_news . '&share=fb');
$users[$users_index]->tweet = 'http://twitter.com/share?text=#news_title_encoded#&url=' . urlencode($url_news . '&share=tw');
//$result=$Knews_plugin->sendMail( array( array('email' => $user->email, 'unsubscribe'=>get_bloginfo('url') ) ), $theSubject, $theHtml );
//$result=$Knews_plugin->sendMail( array( $user ), $theSubject, $theHtml );
}
//echo '* ' . $user->email . ' - ' . $result['ok'] . ' * ';
/*if ($result['ok']==1) {
$ok_count++;
$status_submit=1;
} else {
$error_count++;
$status_submit=2;
}
if ($fp) {
$hour = date('H:i:s');
fwrite($fp, ' ' . $hour . ' | ok: ' . $ok_count . ' | error: ' . $error_count . ' | email: ' . $user->email . ' | ' . $result['error_info'][0] . "<br>\r\n");
}
$query = "UPDATE " . KNEWS_NEWSLETTERS_SUBMITS_DETAILS . " SET status=" . $status_submit . " WHERE id=" . $unique_submit->id;
$result = $wpdb->query( $query );*/
$users_index++;
}
//print_r($users);
$result=$Knews_plugin->sendMail( $users, $theSubject, $theHtml, '', '', $fp, false, 0, $submit_pend[0]->id_smtp, $submit_pend[0]->id );
$ok_count += $result['ok'];
$error_count += $result['error'];
if ($result['break_to_avoid_timeout'] || $result['too_consecutive_emails_error']) {
$query = "UPDATE " . KNEWS_NEWSLETTERS_SUBMITS_DETAILS . " SET status=0 WHERE status=3 AND submit=" . $submit_pend[0]->id;
$unlock = $wpdb->query( $query );
}
//print_r($result);
$end_sql=', finished=0, end_time=\'0000-00-00 00:00:00\'';
$query = "SELECT * FROM " . KNEWS_NEWSLETTERS_SUBMITS_DETAILS . " WHERE status=1 AND submit=" . $submit_pend[0]->id;
$recount = $wpdb->get_results( $query );
$ok_count = count($recount);
$query = "SELECT * FROM " . KNEWS_NEWSLETTERS_SUBMITS_DETAILS . " WHERE status=2 AND submit=" . $submit_pend[0]->id;
$recount = $wpdb->get_results( $query );
$error_count = count($recount);
if (count($submits)==0 && $submit_pend[0]->users_total > ($ok_count + $error_count) && !$result['break_to_avoid_timeout'] && !$result['too_consecutive_emails_error']) {
$end_sql=', finished=1, users_total=' . ($ok_count + $error_count) . ', end_time=\'' . $Knews_plugin->get_mysql_date() . '\'';
if ($fp) {
$hour = date('H:i:s', current_time('timestamp'));
fwrite($fp, ' ' . $hour . ' | ok: ' . $ok_count . ' | error: ' . $error_count . ' | FINISHED SUBMIT. BAD TOTAL USER COUNT.' . "<br>\r\n");
}
} elseif ($submit_pend[0]->users_total <= ($ok_count + $error_count) && !$result['break_to_avoid_timeout'] && !$result['too_consecutive_emails_error']) {
$end_sql=', finished=1, end_time=\'' . $Knews_plugin->get_mysql_date() . '\'';
if ($fp) {
$hour = date('H:i:s', current_time('timestamp'));
fwrite($fp, ' ' . $hour . ' | ok: ' . $ok_count . ' | error: ' . $error_count . ' | FINISHED SUBMIT' . "<br>\r\n");
}
} else {
if ($fp) {
$hour = date('H:i:s', current_time('timestamp'));
fwrite($fp, ' ' . $hour . ' | total: ' . $submit_pend[0]->users_total . ' | ok: ' . $ok_count . ' | error: ' . $error_count . ' | CONTINUE SUBMIT' . "<br>\r\n\r\n");
}
}
$query = "UPDATE " . KNEWS_NEWSLETTERS_SUBMITS . " SET users_ok=" . $ok_count . ", users_error=" . $error_count . $end_sql . " WHERE id=" . $submit_pend[0]->id;
$result = $wpdb->query( $query );
if (is_file(KNEWS_DIR . '/tmp/lockfile.txt')) unlink(KNEWS_DIR . '/tmp/lockfile.txt');
if ($fp) fclose($fp);
$pend=true;
} else {
$pend=false;
}
}
if ($js != 0) {
?>
<html>
<head><title>JS Cron</title></head>
<script type="text/javascript">
var start = new Date().getTime();
var total_time = 1000*60*10 // 10 minutes;
function jump() {
<?php
if ($pend) {
if ($Knews_plugin->im_networked()) switch_to_blog($Knews_plugin->KNEWS_MAIN_BLOG_ID);
?>
location.href="<?php echo $Knews_plugin->get_main_admin_url() . 'admin-ajax.php?action=knewsCronDo&js=' . (intval($js)+1); ?>"
<?php
}
?>
}
setTimeout ('jump()',total_time);
function counter() {
<?php
if ($pend) {
?>
elapsed = new Date().getTime() - start;
timeleft = total_time - elapsed;
minutes=Math.floor(timeleft/60000);
seconds=Math.floor((timeleft-minutes*60000)/1000);
if (seconds<10) seconds= "0" + seconds;
document.getElementById("clock").innerHTML=minutes+":"+seconds;
setTimeout ('counter()',1000); // 1 second
<?php
}
?>
}
</script>
<body onLoad="counter()">
<h1><?php echo __('Step','knews') . ' #' . $js; ?></h1>
<?php
if ($pend) {
?>
<h2 id="clock">5:00</h2>
<p><?php _e("Cron-JS in the process, don't close this window...",'knews');?></p>
<?php
} else {
?>
<p><?php _e('Cron-JS finished, you can close the window','knews');?></p>
<?php
}
?>
</body>
</html>
<?php
}
die();
?>
Cyb3r Drag0nz Team • Google Edition