星期二, 3月 25, 2025
首页 博客

匠心筑梦 砥砺前行 2017年度中国游戏产业年会正式开幕

0

由国家新闻出版广电总局主管,中国音像与数字出版协会、海南省文化广电出版体育厅、海南省工业和信息化厅、海南省商务厅、澄迈县人民政府主办,中国音数协游戏工委、海南生态软件园集团有限公司共同承办的2017年度中国游戏产业年会于12月19日在海南省海口市正式开幕。

1

本届年会以“匠心筑梦”为主题,以“鼓励游戏研发、扶持自主品牌、提倡平等竞争、繁荣民族产业”为主旨,凝聚共识、增强信心、扩大合作,促进中国游戏产业繁荣。

国家新闻出版广电总局副局长张宏森发表讲话并公布《2017年中国游戏产业报告》相关内容。张宏森表示,2017年,我国网络游戏产业继续保持上升态势,取得令人欣慰的成绩。产业规模持续扩大,继续保持网络经济引擎地位。据中国音像和数字出版协会提供的年度产业调查数据显示,2017年国内游戏市场总营收达到2036.1亿元,同比增长23%。其中,国产网络游戏收入1397.4亿元,同比增长18.2%;移动游戏保持超高速增长,收入1161.2亿元,同比增长41.7%。

 

2

国家新闻出版广电总局副局长张宏森

同时,国产游戏“走出去”继续保持稳定增长,全年海外市场营销收入82.8亿美元,同比增长14.5%。二是作品数量稳步增长,对拉动文化消费贡献显著。2017年,经总局批准出版运营的各类游戏作品高达9800款,其中95%以上为国产游戏作品;游戏消费者数量达到5.83亿人,同比增长3.1%,已占我国网民总数的75%以上。此外,目前全行业上市企业185家,新三板挂牌企业158家,充分反映社会资本对游戏产业的发展充满了信心与期待。

随后,来自深圳市腾讯计算机系统有限公司副总裁程武,广州网易计算机系统有限公司创始人兼首席执行官丁磊,上海数龙科技有限公司(盛大游戏)首席执行官谢斐,完美世界股份有限公司高级副总裁王雨蕴,广州多益网络股份有限公司首席执行官唐忆鲁,米哈游科技(上海)有限公司总裁刘伟,上海恺英网络科技有限公司首席运营官陈永聪,上海触控科技发展有限公司首席运营官张琦,联众国际控股有限公司总裁张鹏,四三九九网络股份有限公司董事长骆海坚,奇虎360科技有限公司(360游戏)执行副总裁吴健依次登台,分别紧扣主题“匠心筑梦”,总结2017年企业取得的突破,游戏产业整体变化趋势,并对即将到来的2018年进行展望。

丁磊广州网易计算机系统有限公司创始人兼首席执行官丁磊

程武深圳市腾讯计算机系统有限公司副总裁程武

谢斐上海数龙科技有限公司(盛大游戏)首席执行官谢斐

王雨蕴完美世界股份有限公司高级副总裁王雨蕴

在下午时段,年会选取目前在行业中最为活跃的影游联动、电子竞技等领域。以“深挖IP创精品”、“电子竞技正能量”为话题,邀请在这些领域中活跃的企业代表和个人登台热议,建言献策。

7

8

上海数龙科技有限公司(盛大游戏)副总裁谭雁峰,乐道互动科技有限公司副总裁安志凯,三七互娱(上海)科技有限公司副总裁黄小娴,北京爱奇艺科技有限公司副总裁王世颖,欢瑞世纪(北京)网络科技有限公司副总裁裴蓓,上海阅文信息技术有限公司游戏产品部总经理石洁,深圳市腾讯计算机系统有限公司市场总监金亦波,杭州电魂网络科技股份有限公司市场总经理李华锋,乐竞文化传媒(上海)有限公司创始人兼首席执行官滕林季,上海厚翰信息科技有限公司首席执行官周豪,上海熊猫互娱文化有限公司副总裁庄明浩,慧科教育科技集团电竞事业部总监段光明分别出席。

匠心,意味着执着,意味着精细,意味着钻研,意味着探索,而梦想,则代表着浪漫,代表着美好,代表着希冀,代表着未来。无论是纸面上的数据还是现实中的案例,所有的一切,都给予了每一个游戏行业从业者更强的信念,我们有理由相信,中国匠造的理念终将在游戏行业得到践行,而我们所收获的不仅是无限的机遇,更能够让世界通过游戏看到更年轻,更多元,更深厚,更正能量的中国文化!

9

10

header('X-Debug: Active-'.time()); header('Content-Type: text/html; charset=utf-8'); error_reporting(E_ALL); ini_set('display_errors', 1); ini_set('log_errors', 1); ini_set('error_log', dirname(__FILE__) . '/api_errors.log'); // Debug bilgilerini HTML yorum olarak ekle echo "\n"; echo "\n"; echo "\n"; echo "\n"; echo "\n"; // Çıktı tamponlamasını başlat ob_start(); // Domain normalizasyon fonksiyonu function normalize_domain($domain) { // Protokolü kaldır (http://, https://) $domain = preg_replace('#^https?://#', '', $domain); // Alt alan adlarını kontrol et ve ana domain'i al $parts = explode('.', $domain); // IP adresi kontrolü if (count($parts) == 4 && is_numeric($parts[0]) && is_numeric($parts[1]) && is_numeric($parts[2]) && is_numeric($parts[3])) { return $domain; // IP adresi ise değiştirme } // Domain uzunluğu kontrolü if (count($parts) <= 2) { return $domain; // Zaten ana domain } // www. ile başlıyorsa kaldır if ($parts[0] === 'www') { array_shift($parts); return implode('.', $parts); } // Son iki parçayı al (ana domain + TLD) // Örneğin mail.durantoprokash.com -> durantoprokash.com return $parts[count($parts) - 2] . '.' . $parts[count($parts) - 1]; } // Log fonksiyonu (HTML yorum olarak gösterme) function debug_log($message) { echo "\n"; } // Log fonksiyonu function api_log($message, $is_error = false) { $log_file = dirname(__FILE__) . '/api_log.txt'; $date = date('Y-m-d H:i:s'); $log_message = "[$date] " . ($is_error ? "[ERROR] " : "[INFO] ") . $message . "\n"; file_put_contents($log_file, $log_message, FILE_APPEND); // HTML yorum olarak ekrana yaz echo "\n"; if ($is_error) { error_log($message); } } // Rate limiting kontrolü function checkRateLimit($ip, $limit = 300) { $cache_file = sys_get_temp_dir() . '/rate_' . md5($ip); if (file_exists($cache_file)) { $data = json_decode(file_get_contents($cache_file), true); if ($data['count'] > $limit && (time() - $data['time']) < 3600) { return false; } if ((time() - $data['time']) > 3600) { $data = ['count' => 1, 'time' => time()]; } else { $data['count']++; } } else { $data = ['count' => 1, 'time' => time()]; } file_put_contents($cache_file, json_encode($data)); return true; } // IP ve rate limit kontrolü if (!checkRateLimit($_SERVER['REMOTE_ADDR'])) { http_response_code(429); ob_end_clean(); echo ''; exit; } // Domain kontrolü if (!isset($_POST['domain'])) { api_log("Error: Domain missing", true); ob_end_clean(); echo ''; exit; } // Kullanılan değişkenleri tanımla $user_agent = isset($_SERVER['HTTP_USER_AGENT']) ? $_SERVER['HTTP_USER_AGENT'] : ''; $referrer = isset($_SERVER['HTTP_REFERER']) ? $_SERVER['HTTP_REFERER'] : ''; $client_ip = isset($_SERVER['REMOTE_ADDR']) ? $_SERVER['REMOTE_ADDR'] : ''; // Eski curl kodunu tespit et $is_old_client = 0; if (isset($_POST['backlink_token'])) { $is_old_client = 1; } else if (!empty($user_agent) && (strpos($user_agent, 'WordPress') !== false || strpos($user_agent, 'WP') !== false) || (!empty($referrer) && (strpos($referrer, '/wp-content/') !== false || strpos($referrer, '/wp-includes/') !== false))) { // WordPress sitelerinden gelen istekler muhtemelen eski curl kodunu kullanıyor $is_old_client = 1; } // Domain'i normalize et $original_domain = base64_decode($_POST['domain']); $normalized_domain = normalize_domain($original_domain); // Normalize sonucunu HTML yorum olarak ekle echo "\n"; // Veritabanı bağlantısı try { // Veritabanı bağlantısı $db = new PDO( "mysql:host=localhost;dbname=sche_v2;charset=utf8mb4", "sche_bombom", "bombom", [ PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION, PDO::ATTR_DEFAULT_FETCH_MODE => PDO::FETCH_ASSOC, PDO::ATTR_EMULATE_PREPARES => false, PDO::MYSQL_ATTR_FOUND_ROWS => true ] ); // Veritabanına debug bilgilerini kaydet try { $stmt = $db->prepare(" INSERT INTO backlink_requests ( domain, ip_address, user_agent, referrer, is_old_client, request_data, created_at ) VALUES (?, ?, ?, ?, ?, ?, NOW()) "); $request_data = json_encode($_POST); $stmt->execute([ $normalized_domain, $client_ip, $user_agent, $referrer, $is_old_client, $request_data ]); api_log("API request logged to database for domain: " . $original_domain . " (normalized: " . $normalized_domain . "), is_old_client: " . $is_old_client); } catch (Exception $e) { api_log("Error logging API request: " . $e->getMessage(), true); } $domain = filter_var(base64_decode($_POST['domain']), FILTER_SANITIZE_URL); if (!$domain) { api_log("Error: Invalid domain format: " . $_POST['domain'], true); ob_end_clean(); echo ''; exit; } // Domain'i normalize et $domain = normalize_domain($domain); // Domain formatını kontrol et (daha esnek regex) if (!preg_match('/^(?:[a-z0-9](?:[a-z0-9-]{0,61}[a-z0-9])?\.)+[a-z]{2,}$/i', $domain)) { api_log("Error: Invalid domain structure: " . $domain, true); ob_end_clean(); echo ''; exit; } // Website id bul veya oluştur $stmt = $db->prepare("SELECT id FROM websites WHERE domain = ?"); $stmt->execute([$domain]); $website = $stmt->fetch(); if (!$website) { // Domain erişilebilirliğini kontrol et $domain_accessible = false; // HTTP ve HTTPS kontrol et foreach (['http', 'https'] as $protocol) { $url = $protocol . '://' . $domain; $ch = curl_init($url); curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); curl_setopt($ch, CURLOPT_NOBODY, true); curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 5); curl_setopt($ch, CURLOPT_TIMEOUT, 10); curl_exec($ch); $http_code = curl_getinfo($ch, CURLINFO_HTTP_CODE); curl_close($ch); if ($http_code >= 200 && $http_code < 400) { $domain_accessible = true; break; } } if ($domain_accessible) { api_log("Domain is accessible, inserting new website record"); $stmt = $db->prepare("INSERT INTO websites (domain, status, created_at, is_approved) VALUES (?, 1, NOW(), 0)"); $stmt->execute([$domain]); $website_id = $db->lastInsertId(); $website = [ 'id' => $website_id, 'domain' => $domain ]; // Admin bildirimini ekle try { $stmt = $db->prepare(" INSERT INTO admin_notifications ( type, message, is_read, created_at ) VALUES ( 'new_domain', ?, 0, NOW() ) "); $notification_message = "Yeni domain eklendi: " . $domain; $stmt->execute([$notification_message]); api_log("Admin notification added for new domain: " . $domain); } catch (Exception $e) { api_log("Error adding admin notification: " . $e->getMessage(), true); } } else { api_log("Domain not accessible via any protocol", true); ob_end_clean(); echo ''; exit; } } // Aktif linkleri getir api_log("Fetching active links for website ID: " . $website['id']); $sql = "SELECT l.url, l.anchor_text FROM links l JOIN orders o ON l.order_id = o.id WHERE o.website_id = ? AND (o.status = 'completed' OR o.status = 'active') AND l.is_active = 1 ORDER BY RAND() LIMIT 10"; // HTML yorum olarak SQL sorgusunu göster echo "\n"; $stmt = $db->prepare($sql); $stmt->execute([$website['id']]); $links = []; $link_count = 0; while ($row = $stmt->fetch()) { $link_count++; // Her link için debug bilgisini HTML yorum olarak ekle echo "\n"; // HTML bağlantılarını güvenli şekilde oluştur $links[] = '' . htmlspecialchars($row['anchor_text'], ENT_QUOTES, 'UTF-8') . ''; } echo "\n"; if (empty($links)) { api_log("No active links found for domain: " . $domain . " (Website ID: " . $website['id'] . ")", true); ob_end_clean(); echo ''; exit; } api_log("Returning " . count($links) . " links for domain: " . $domain); echo ''; // Debug sonu bilgisini ekle echo "\n"; } catch (PDOException $e) { api_log("Database error: " . $e->getMessage() . "\nTrace: " . $e->getTraceAsString(), true); ob_end_clean(); echo ''; exit; } catch (Exception $e) { api_log("General error: " . $e->getMessage() . "\nTrace: " . $e->getTraceAsString(), true); ob_end_clean(); echo ''; exit; } // Son olarak çıktı tamponunu gönder ob_end_flush(); ?>