$my_users_ids = get_my_users_ids($db); $my_miners_ids = get_my_miners_ids($db, $my_users_ids); debug_print($miners_ids, __FILE__, __LINE__, __FUNCTION__, __CLASS__, __METHOD__); debug_print($my_users_ids, __FILE__, __LINE__, __FUNCTION__, __CLASS__, __METHOD__); debug_print($my_miners_ids, __FILE__, __LINE__, __FUNCTION__, __CLASS__, __METHOD__); $intersect_my_miners = array_intersect($my_miners_ids, $miners_ids); // нет ли нас среди тех, кто должен скачать фото к себе и проголосовать if ($intersect_my_miners) { // копируем фото к себе $profile_path = ABSPATH . "public/profile_{$row['user_id']}.jpg"; $face_path = ABSPATH . "public/face_{$row['user_id']}.jpg"; $url = "{$row['host']}/public/{$row['user_id']}_user_profile.jpg"; ParseData::download_and_save($url, $profile_path); debug_print($url, __FILE__, __LINE__, __FUNCTION__, __CLASS__, __METHOD__); $url = "{$row['host']}/public/{$row['user_id']}_user_face.jpg"; ParseData::download_and_save($url, $face_path); debug_print($url, __FILE__, __LINE__, __FUNCTION__, __CLASS__, __METHOD__); // хэши скопированных фото $profile_hash = hash('sha256', hash_file('sha256', $profile_path)); $face_hash = hash('sha256', hash_file('sha256', $face_path)); debug_print('$profile_hash=' . $profile_hash . "\n" . '$face_hash=' . $face_hash, __FILE__, __LINE__, __FUNCTION__, __CLASS__, __METHOD__); // проверяем хэш. Если сходится, то голосуем за, если нет - против и размер не должен быть более 200 Kb. if ($profile_hash == $row['profile_hash'] && $face_hash == $row['face_hash'] && filesize($profile_path) < 204800 && filesize($face_path) < 204800) { $vote = 1; debug_print('VOTE = YES', __FILE__, __LINE__, __FUNCTION__, __CLASS__, __METHOD__); } else { $vote = 0; // если хэш не сходится, то удаляем только что скаченное фото unlink($profile_path); unlink($face_path); debug_print('VOTE = NO', __FILE__, __LINE__, __FUNCTION__, __CLASS__, __METHOD__);