Merge branch 'master' of https://github.com/phpmyadmin/phpmyadmin into 0609_monitor
[phpmyadmin/aamir.git] / version_check.php
blobeac1fd2c445608aa45fd10c02915a2d52e00a1ee
1 <?php
2 /* vim: set expandtab sw=4 ts=4 sts=4: */
3 /**
4 * A caching proxy for retrieving version information from phpmyadmin.net
6 * @package PhpMyAdmin
7 */
9 // Sets up the session
10 define('PMA_MINIMUM_COMMON', true);
11 require_once 'libraries/common.inc.php';
13 // Get response text from phpmyadmin.net or from the session
14 // Update cache every 6 hours
15 if (isset($_SESSION['cache']['version_check'])
16 && time() < $_SESSION['cache']['version_check']['timestamp'] + 3600 * 6
17 ) {
18 $save = false;
19 $response = $_SESSION['cache']['version_check']['response'];
20 } else {
21 $save = true;
22 $file = 'http://www.phpmyadmin.net/home_page/version.json';
23 if (ini_get('allow_url_fopen')) {
24 if (strlen($cfg['VersionCheckProxyUrl'])) {
25 $context = array(
26 'http' => array(
27 'proxy' => $cfg['VersionCheckProxyUrl'],
28 'request_fulluri' => true
31 if (strlen($cfg['VersionCheckProxyUser'])) {
32 $auth = base64_encode(
33 $cfg['VersionCheckProxyUser'] . ':' . $cfg['VersionCheckProxyPass']
35 $context['http']['header'] = 'Proxy-Authorization: Basic ' . $auth;
37 $response = file_get_contents(
38 $file,
39 false,
40 stream_context_create($context)
42 } else {
43 $response = file_get_contents($file);
45 } else if (function_exists('curl_init')) {
46 $curl_handle = curl_init($file);
47 if (strlen($cfg['VersionCheckProxyUrl'])) {
48 curl_setopt($curl_handle, CURLOPT_PROXY, $cfg['VersionCheckProxyUrl']);
49 if (strlen($cfg['VersionCheckProxyUser'])) {
50 curl_setopt(
51 $curl_handle,
52 CURLOPT_PROXYUSERPWD,
53 $cfg['VersionCheckProxyUser'] . ':' . $cfg['VersionCheckProxyPass']
57 curl_setopt($curl_handle, CURLOPT_RETURNTRANSFER, 1);
58 $response = curl_exec($curl_handle);
62 // Always send the correct headers
63 header('Content-type: application/json; charset=UTF-8');
65 // Save and forward the response only if in valid format
66 $data = json_decode($response);
67 if (is_object($data) && strlen($data->version) && strlen($data->date)) {
68 if ($save) {
69 $_SESSION['cache']['version_check'] = array(
70 'response' => $response,
71 'timestamp' => time()
74 echo $response;