Rev 3 | Only display areas with differences | Regard whitespace | Details | Blame | Last modification | View Log | RSS feed
Rev 3 | Rev 7 | ||
---|---|---|---|
1 | <?php |
1 | <?php |
2 | 2 | ||
3 | /* |
3 | /* |
4 | * PHP Counter mit Reloadsperre, Textdatenbank und Graphic-Libary (without Error Images) |
4 | * PHP Counter mit Reloadsperre, Textdatenbank und Graphic-Libary (without Error Images) |
5 | * (C)Copyright 2010 - 2019 Daniel Marschall |
5 | * (C)Copyright 2010 - 2022 Daniel Marschall |
6 | * Revision: 2019-02-18 |
6 | * Revision: 2022-01-09 |
7 | */ |
7 | */ |
8 | 8 | ||
9 | function pdox_execute($statement, $args=array()) { |
9 | function pdox_execute($statement, $args=array()) { |
10 | if (!$statement->execute($args)) { |
10 | if (!$statement->execute($args)) { |
11 | echo "SQL Error <br />"; |
11 | echo "SQL Error <br />"; |
12 | echo $statement->queryString."<br />"; |
12 | echo $statement->queryString."<br />"; |
13 | echo $statement->errorInfo()[2]; |
13 | echo $statement->errorInfo()[2]; |
14 | die(); |
14 | die(); |
15 | } |
15 | } |
16 | } |
16 | } |
17 | 17 | ||
18 | function fetchip() { |
18 | function fetchip() { |
19 | return md5($_SERVER['REMOTE_ADDR']); // masked IP wegen DSGVO Kacke |
19 | return md5($_SERVER['REMOTE_ADDR']); // masked IP wegen DSGVO Kacke |
20 | 20 | ||
21 | // Das ist alles Quatsch! Dann kann man die IP ja fälschen |
21 | // Das ist alles Quatsch! Dann kann man die IP ja fälschen |
22 | /* |
22 | /* |
23 | // Source: http://lists.phpbar.de/pipermail/php/Week-of-Mon-20040322/007749.html |
23 | // Source: http://lists.phpbar.de/pipermail/php/Week-of-Mon-20040322/007749.html |
24 | 24 | ||
25 | $client_ip = (isset($_SERVER['HTTP_CLIENT_IP'])) ? $_SERVER['HTTP_CLIENT_IP'] : ''; |
25 | $client_ip = (isset($_SERVER['HTTP_CLIENT_IP'])) ? $_SERVER['HTTP_CLIENT_IP'] : ''; |
26 | $x_forwarded_for = (isset($_SERVER['HTTP_X_FORWARDED_FOR'])) ? $_SERVER['HTTP_X_FORWARDED_FOR'] : ''; |
26 | $x_forwarded_for = (isset($_SERVER['HTTP_X_FORWARDED_FOR'])) ? $_SERVER['HTTP_X_FORWARDED_FOR'] : ''; |
27 | $remote_addr = (isset($_SERVER['REMOTE_ADDR'])) ? $_SERVER['REMOTE_ADDR'] : ''; |
27 | $remote_addr = (isset($_SERVER['REMOTE_ADDR'])) ? $_SERVER['REMOTE_ADDR'] : ''; |
28 | 28 | ||
29 | if (!empty($client_ip)) { |
29 | if (!empty($client_ip)) { |
30 | $ip_expl = explode('.', $client_ip); |
30 | $ip_expl = explode('.', $client_ip); |
31 | $referer = explode('.', $remote_addr); |
31 | $referer = explode('.', $remote_addr); |
32 | if($referer[0] != $ip_expl[0]) { |
32 | if($referer[0] != $ip_expl[0]) { |
33 | $ip = array_reverse($ip_expl); |
33 | $ip = array_reverse($ip_expl); |
34 | $return = implode('.', $ip); |
34 | $return = implode('.', $ip); |
35 | } else { |
35 | } else { |
36 | $return = $client_ip; |
36 | $return = $client_ip; |
37 | } |
37 | } |
38 | } else if (!empty($x_forwarded_for)) { |
38 | } else if (!empty($x_forwarded_for)) { |
39 | if (strstr($x_forwarded_for, ',')) { |
39 | if (strstr($x_forwarded_for, ',')) { |
40 | $ip_expl = explode(',', $x_forwarded_for); |
40 | $ip_expl = explode(',', $x_forwarded_for); |
41 | $return = end($ip_expl); |
41 | $return = end($ip_expl); |
42 | } |
42 | } |
43 | } else { |
43 | } else { |
44 | $return = $remote_addr; |
44 | $return = $remote_addr; |
45 | } |
45 | } |
46 | unset ($client_ip, $x_forwarded_for, $remote_addr, $ip_expl); |
46 | unset ($client_ip, $x_forwarded_for, $remote_addr, $ip_expl); |
47 | return $return; |
47 | return $return; |
48 | */ |
48 | */ |
49 | } |
49 | } |
50 | 50 | ||
51 | 51 | ||
52 | function rgb2hsl($r, $g, $b) { |
52 | function rgb2hsl($r, $g, $b) { |
53 | $var_R = ($r / 255); |
53 | $var_R = ($r / 255); |
54 | $var_G = ($g / 255); |
54 | $var_G = ($g / 255); |
55 | $var_B = ($b / 255); |
55 | $var_B = ($b / 255); |
56 | 56 | ||
57 | $var_Min = min($var_R, $var_G, $var_B); |
57 | $var_Min = min($var_R, $var_G, $var_B); |
58 | $var_Max = max($var_R, $var_G, $var_B); |
58 | $var_Max = max($var_R, $var_G, $var_B); |
59 | $del_Max = $var_Max - $var_Min; |
59 | $del_Max = $var_Max - $var_Min; |
60 | 60 | ||
61 | $v = $var_Max; |
61 | $v = $var_Max; |
62 | 62 | ||
63 | if ($del_Max == 0) { |
63 | if ($del_Max == 0) { |
64 | $h = 0; |
64 | $h = 0; |
65 | $s = 0; |
65 | $s = 0; |
66 | } else { |
66 | } else { |
67 | $s = $del_Max / $var_Max; |
67 | $s = $del_Max / $var_Max; |
68 | 68 | ||
69 | $del_R = ( ( ( $var_Max - $var_R ) / 6 ) + ( $del_Max / 2 ) ) / $del_Max; |
69 | $del_R = ( ( ( $var_Max - $var_R ) / 6 ) + ( $del_Max / 2 ) ) / $del_Max; |
70 | $del_G = ( ( ( $var_Max - $var_G ) / 6 ) + ( $del_Max / 2 ) ) / $del_Max; |
70 | $del_G = ( ( ( $var_Max - $var_G ) / 6 ) + ( $del_Max / 2 ) ) / $del_Max; |
71 | $del_B = ( ( ( $var_Max - $var_B ) / 6 ) + ( $del_Max / 2 ) ) / $del_Max; |
71 | $del_B = ( ( ( $var_Max - $var_B ) / 6 ) + ( $del_Max / 2 ) ) / $del_Max; |
72 | 72 | ||
73 | if ($var_R == $var_Max) $h = $del_B - $del_G; |
73 | if ($var_R == $var_Max) $h = $del_B - $del_G; |
74 | else if ($var_G == $var_Max) $h = ( 1 / 3 ) + $del_R - $del_B; |
74 | else if ($var_G == $var_Max) $h = ( 1 / 3 ) + $del_R - $del_B; |
75 | else if ($var_B == $var_Max) $h = ( 2 / 3 ) + $del_G - $del_R; |
75 | else if ($var_B == $var_Max) $h = ( 2 / 3 ) + $del_G - $del_R; |
- | 76 | else $h = 0; // should not happen |
|
76 | 77 | ||
77 | if ($h < 0) $h++; |
78 | if ($h < 0) $h++; |
78 | if ($h > 1) $h--; |
79 | if ($h > 1) $h--; |
79 | } |
80 | } |
80 | 81 | ||
81 | return array($h, $s, $v); |
82 | return array($h, $s, $v); |
82 | } |
83 | } |
83 | 84 | ||
84 | function hsl2rgb($h, $s, $v) { |
85 | function hsl2rgb($h, $s, $v) { |
85 | if($s == 0) { |
86 | if($s == 0) { |
86 | $r = $g = $B = $v * 255; |
87 | $r = $g = $B = $v * 255; |
87 | } else { |
88 | } else { |
88 | $var_H = $h * 6; |
89 | $var_H = $h * 6; |
89 | $var_i = floor( $var_H ); |
90 | $var_i = floor( $var_H ); |
90 | $var_1 = $v * ( 1 - $s ); |
91 | $var_1 = $v * ( 1 - $s ); |
91 | $var_2 = $v * ( 1 - $s * ( $var_H - $var_i ) ); |
92 | $var_2 = $v * ( 1 - $s * ( $var_H - $var_i ) ); |
92 | $var_3 = $v * ( 1 - $s * (1 - ( $var_H - $var_i ) ) ); |
93 | $var_3 = $v * ( 1 - $s * (1 - ( $var_H - $var_i ) ) ); |
93 | 94 | ||
94 | if ($var_i == 0) { $var_R = $v ; $var_G = $var_3 ; $var_B = $var_1 ; } |
95 | if ($var_i == 0) { $var_R = $v ; $var_G = $var_3 ; $var_B = $var_1 ; } |
95 | else if ($var_i == 1) { $var_R = $var_2 ; $var_G = $v ; $var_B = $var_1 ; } |
96 | else if ($var_i == 1) { $var_R = $var_2 ; $var_G = $v ; $var_B = $var_1 ; } |
96 | else if ($var_i == 2) { $var_R = $var_1 ; $var_G = $v ; $var_B = $var_3 ; } |
97 | else if ($var_i == 2) { $var_R = $var_1 ; $var_G = $v ; $var_B = $var_3 ; } |
97 | else if ($var_i == 3) { $var_R = $var_1 ; $var_G = $var_2 ; $var_B = $v ; } |
98 | else if ($var_i == 3) { $var_R = $var_1 ; $var_G = $var_2 ; $var_B = $v ; } |
98 | else if ($var_i == 4) { $var_R = $var_3 ; $var_G = $var_1 ; $var_B = $v ; } |
99 | else if ($var_i == 4) { $var_R = $var_3 ; $var_G = $var_1 ; $var_B = $v ; } |
99 | else { $var_R = $v ; $var_G = $var_1 ; $var_B = $var_2 ; } |
100 | else { $var_R = $v ; $var_G = $var_1 ; $var_B = $var_2 ; } |
100 | 101 | ||
101 | $r = $var_R * 255; |
102 | $r = $var_R * 255; |
102 | $g = $var_G * 255; |
103 | $g = $var_G * 255; |
103 | $B = $var_B * 255; |
104 | $B = $var_B * 255; |
104 | } |
105 | } |
105 | return array($r, $g, $B); |
106 | return array($r, $g, $B); |
106 | } |
107 | } |
107 | 108 | ||
108 | function imagehue(&$image, $angle) { |
109 | function imagehue(&$image, $angle) { |
109 | if (!is_numeric($angle)) return; |
110 | if (!is_numeric($angle)) return; |
110 | if($angle % 360 == 0) return; |
111 | if($angle % 360 == 0) return; |
111 | $width = imagesx($image); |
112 | $width = imagesx($image); |
112 | $height = imagesy($image); |
113 | $height = imagesy($image); |
113 | 114 | ||
114 | $imout = imagecreate($width, $height); |
115 | $imout = imagecreate($width, $height); |
115 | 116 | ||
116 | for($x = 0; $x < $width; $x++) { |
117 | for($x = 0; $x < $width; $x++) { |
117 | for($y = 0; $y < $height; $y++) { |
118 | for($y = 0; $y < $height; $y++) { |
118 | $rgb = imagecolorat($image, $x, $y); |
119 | $rgb = imagecolorat($image, $x, $y); |
119 | $r = ($rgb >> 16) & 0xFF; |
120 | $r = ($rgb >> 16) & 0xFF; |
120 | $g = ($rgb >> 8) & 0xFF; |
121 | $g = ($rgb >> 8) & 0xFF; |
121 | $b = $rgb & 0xFF; |
122 | $b = $rgb & 0xFF; |
122 | $alpha = ($rgb & 0x7F000000) >> 24; |
123 | $alpha = ($rgb & 0x7F000000) >> 24; |
123 | list($h, $s, $l) = rgb2hsl($r, $g, $b); |
124 | list($h, $s, $l) = rgb2hsl($r, $g, $b); |
124 | $h += $angle / 360; |
125 | $h += $angle / 360; |
125 | if($h > 1) $h--; |
126 | if($h > 1) $h--; |
126 | list($r, $g, $b) = hsl2rgb($h, $s, $l); |
127 | list($r, $g, $b) = hsl2rgb($h, $s, $l); |
127 | imagesetpixel($imout, $x, $y, imagecolorallocatealpha($imout, $r, $g, $b, $alpha)); |
128 | imagesetpixel($imout, $x, $y, imagecolorallocatealpha($imout, $r, $g, $b, $alpha)); |
128 | } |
129 | } |
129 | } |
130 | } |
130 | 131 | ||
131 | imagedestroy($image); |
132 | imagedestroy($image); |
132 | $image = $imout; |
133 | $image = $imout; |
133 | } |
134 | } |
134 | 135 | ||
135 | /** |
136 | /** |
136 | * TRUE if any tag matched |
137 | * TRUE if any tag matched |
137 | * FALSE if none matched |
138 | * FALSE if none matched |
138 | * NULL if header is not specified |
139 | * NULL if header is not specified |
139 | * http://stackoverflow.com/questions/2086712/http-if-none-match-and-if-modified-since-and-304-clarification-in-php |
140 | * http://stackoverflow.com/questions/2086712/http-if-none-match-and-if-modified-since-and-304-clarification-in-php |
140 | */ |
141 | */ |
141 | function anyTagMatched($myTag) { |
142 | function anyTagMatched($myTag) { |
142 | $if_none_match = isset($_SERVER['HTTP_IF_NONE_MATCH']) ? |
143 | $if_none_match = isset($_SERVER['HTTP_IF_NONE_MATCH']) ? |
143 | stripslashes($_SERVER['HTTP_IF_NONE_MATCH']) : |
144 | stripslashes($_SERVER['HTTP_IF_NONE_MATCH']) : |
144 | false ; |
145 | false ; |
145 | 146 | ||
146 | if( false !== $if_none_match ) { |
147 | if( false !== $if_none_match ) { |
147 | $tags = explode( ", ", $if_none_match ) ; |
148 | $tags = explode( ", ", $if_none_match ) ; |
148 | foreach( $tags as $tag ) { |
149 | foreach( $tags as $tag ) { |
149 | if( $tag == $myTag ) return true ; |
150 | if( $tag == $myTag ) return true ; |
150 | } |
151 | } |
151 | return false ; |
152 | return false ; |
152 | } |
153 | } |
153 | return null ; |
154 | return null ; |
154 | } |
155 | } |
155 | 156 | ||
156 | 157 |