Issues (1369)

includes/general/general_urlAndHttp.php (2 issues)

Severity
1
<?php
2
/**
3
 * Created by Gorlum 04.12.2017 4:45
4
 */
5
6
// ----------------------------------------------------------------------------------------------------------------
7
function sys_redirect($url) {
8
  header("Location: {$url}");
9
  ob_end_flush();
10
  die();
0 ignored issues
show
Using exit here is not recommended.

In general, usage of exit should be done with care and only when running in a scripting context like a CLI script.

Loading history...
11
}
12
13
/**
14
 * Redirects via JS-script
15
 *
16
 * @param string $url
17
 */
18
function sys_redirect_js($url) {
19
  ob_end_flush();
20
21
  $redirectTemplate = SnTemplate::gettemplate('_redirect');
22
  $redirectTemplate->assign_vars(array(
23
    'URL' => js_safe_string($url),
24
  ));
25
26
  SnTemplate::display($redirectTemplate);
27
  die();
0 ignored issues
show
Using exit here is not recommended.

In general, usage of exit should be done with care and only when running in a scripting context like a CLI script.

Loading history...
28
}
29
30
31
// ----------------------------------------------------------------------------------------------------------------
32
/**
33
 * Wrapper for header() function
34
 *
35
 * @param string $header
36
 */
37
function setHeader($header) {
38
  header($header);
39
}
40
41
42
// ----------------------------------------------------------------------------------------------------------------
43
function sn_get_url_contents($url) {
44
  if (function_exists('curl_init')) {
45
    $crl     = curl_init();
46
    $timeout = 5;
47
    curl_setopt_array($crl, [
48
      // CURLOPT_IPRESOLVE => CURL_IPRESOLVE_V4,
49
      // CURLOPT_DNS_USE_GLOBAL_CACHE => false,
50
      // CURLOPT_DNS_CACHE_TIMEOUT => 2,
51
      CURLOPT_CONNECTTIMEOUT => $timeout,
52
      CURLOPT_RETURNTRANSFER => true,
53
      CURLOPT_URL            => $url,
54
    ]);
55
    $return = curl_exec($crl);
56
    curl_close($crl);
57
  } else {
58
    $return = @file_get_contents($url);
59
  }
60
61
  return $return;
62
}
63
64
/**
65
 * @param $url
66
 * @param array $data
67
 *
68
 * @return bool|false|string
69
 */
70
function sn_post_url_contents($url, $data) {
71
  if (function_exists('curl_init')) {
72
    $crl = curl_init();
73
    $timeout = 5;
74
    curl_setopt($crl, CURLOPT_URL, $url);
75
    curl_setopt($crl, CURLOPT_RETURNTRANSFER, 1);
76
    curl_setopt($crl, CURLOPT_CONNECTTIMEOUT, $timeout);
77
    curl_setopt($crl, CURLOPT_POST, true);
78
    curl_setopt($crl, CURLOPT_POSTFIELDS, $data);
79
    $return = curl_exec($crl);
80
81
//    var_dump('error: ' . curl_error($crl));
82
83
    curl_close($crl);
84
  } else {
85
    $return = @file_get_contents($url);
86
  }
87
88
  return $return;
89
}
90
91
function invokeUrl($url) {
92
  exec("curl $url > /dev/null 2>&1 &");
93
}
94
95
// ----------------------------------------------------------------------------------------------------------------
96
function sn_setcookie($name, $value = null, $expire = null, $path = SN_ROOT_RELATIVE, $domain = null, $secure = null, $httponly = null) {
97
  $_COOKIE[$name] = $value;
98
99
  return setcookie($name, $value, $expire, $path, $domain, $secure, $httponly);
100
}
101
102
103
// ----------------------------------------------------------------------------------------------------------------
104
/**
105
 * Возвращает информацию об IPv4 адресах пользователя
106
 *
107
 * НЕ ПОДДЕРЖИВАЕТ IPv6!
108
 *
109
 * @return array
110
 */
111
function sec_player_ip() {
112
  // TODO - IPv6 support
113
  $ip = array(
114
    'ip'          => $_SERVER["REMOTE_ADDR"],
115
    'proxy_chain' => $_SERVER["HTTP_X_FORWARDED_FOR"]
116
      ? $_SERVER["HTTP_X_FORWARDED_FOR"]
117
      : ($_SERVER["HTTP_CLIENT_IP"]
118
        ? $_SERVER["HTTP_CLIENT_IP"]
119
        : '' // $_SERVER["REMOTE_ADDR"]
120
      ),
121
  );
122
123
  // Quick hack to support IPv6 at least on local host
124
  if($ip['ip'] == '::1') {
125
    $ip['ip'] = '127.0.0.1';
126
  }
127
128
  foreach($ip as &$val) {
129
    $val = SN::$db->db_escape($val);
130
  }
131
132
  return $ip;
133
//  return array_map('db_escape', $ip);
134
}
135