2 include_once('../slack.php');
3 include_once('security.php');
4 include_once('/var/www/secure.php'); //outside webserver
5 include_once('functions.php');
6 if ($_COOKIE['level'] == 'user'){
7 slack_general('ADMIN: Redirect User Home ('.$_COOKIE['name'].') ('.$_COOKIE['level'].')','md-petition');
8 header('Location: user_home.php');
10 if (isset($_GET['clear_php_session_id'])){
11 $id = $_GET['clear_php_session_id'];
12 $petition->query("update presign set presign_status = 'DONE' where php_session_id = '$id' ");
13 header('Location: analytics.php');
15 if (isset($_GET['sign_php_session_id'])){
16 $id = $_GET['sign_php_session_id'];
17 $petition->query("update presign set presign_status = 'SIGNED' where php_session_id = '$id' ");
18 header('Location: analytics.php');
20 if ($_COOKIE['level'] == 'manager'){
21 slack_general('ADMIN: Redirect Manager Home ('.$_COOKIE['name'].') ('.$_COOKIE['level'].')','md-petition');
22 header('Location: manager_home.php');
24 if (isset($_GET['flag_invalid_signature'])){
25 $id = $_GET['flag_invalid_signature'];
26 $petition->query("update signatures set signature_status = 'flag_invalid_signature' where id = '$id' ");
27 header('Location: analytics.php');
29 if (isset($_GET['flag_duplicate'])){
30 $id = $_GET['flag_duplicate'];
31 $petition->query("update signatures set signature_status = 'flag_duplicate' where id = '$id' ");
32 header('Location: analytics.php');
34 if (isset($_GET['flag_ip_address'])){
35 $ip = $_GET['flag_ip_address'];
36 $petition->query("update signatures set signature_status = 'flag_ip_address' where ip_address = '$ip' ");
37 header('Location: analytics.php');
39 if (isset($_GET['resign_requested'])){
40 $id = $_GET['resign_requested'];
41 $petition->query("update signatures set signature_status = 'resign_requested' where id = '$id' ");
42 header('Location: analytics.php');
44 if (isset($_GET['bot'])){
46 $petition->query("update signatures set signature_status = 'bot' where id = '$id' ");
47 header('Location: analytics.php');
49 if (isset($_GET['flag_VTRID'])){
50 $VTRID = $_GET['flag_VTRID'];
51 $petition->query("update signatures set signature_status = 'flag_VTRID' where VTRID = '$VTRID' ");
52 header('Location: analytics.php');
54 if (isset($_GET['flag_phone'])){
55 $flag_phone = $_GET['flag_phone'];
56 $petition->query("update signatures set signature_status = 'flag_phone' where contact_phone = '$flag_phone' ");
57 header('Location: analytics.php');
59 include_once('header.php');
60 if (isset($_GET['ip_address'])){
61 $ip = $_GET['ip_address'];
62 echo "<h1>Review $ip</h1><table width='100%' border='1' cellpadding='5' cellspacing='5'>";
63 $q = "SELECT * FROM signatures where ip_address = '$ip' order by signature_status desc ";
64 $r = $petition->query($q);
65 while($d = mysqli_fetch_array($r)){
67 $pos = strpos($d['date_time_signed'], date('Y-m-d'));
71 echo "<tr style='background-color:$color;'>
72 <td><b>$d[date_time_signed]</b></td>
73 <td><a href='?VTRID=$d[VTRID]'>$d[VTRID]</a></td>
74 <td>".id2petition($d['petition_id'])."</td>
75 <td>$d[signed_name_as]</td>
76 <td>$d[signed_name_as_circulator]</td>
77 <td>$d[contact_phone]</td>
78 <td>$d[signature_status]</td>
79 <td>$d[printed_status]</td>
80 <td><a href='?flag_invalid_signature=$d[id]'>flag invalid signature</a></td>
81 <td><a href='?flag_VTRID=$d[VTRID]'>flag VTRID</a></td>
82 <td><a href='?flag_ip_address=$d[ip_address]'>flag ip address</a></td>
83 <td><a href='?flag_duplicate=$d[id]'>flag duplicate</a></td>
84 <td><a href='?flag_phone=$d[contact_phone]'>contact phone</a></td>
85 <td><a href='?resign_requested=$d[id]'>resign requested</a></td>
86 <td><a href='?bot=$d[id]'>bot</a></td>
90 }elseif(isset($_GET['php_session_id']) && empty($_GET['follow_up'])){
91 $php_session_id = $_GET['php_session_id'];
92 echo "<h1>Review $php_session_id</h1><table width='100%' border='1' cellpadding='5' cellspacing='5'>";
93 $q = "SELECT * FROM presign where php_session_id = '$php_session_id' order by id desc ";
94 $r = $petition->query($q);
95 while($d = mysqli_fetch_array($r)){
97 $test = date('Y-m-d',strtotime($d['action_on']));
98 $pos = strpos($test, date('Y-m-d'));
102 echo "<tr style='background-color:$color;'>
103 <td style='white-space:pre;'><b>$d[action_on]</b></td>
104 <td style='white-space:pre;'>$d[php_page]</td>
105 <td style='white-space:pre;'>".id2petition($d['petition'])."</td>
106 <td style='white-space:pre;'>$d[invite]</td>
107 <td style='white-space:pre;'>$d[invite_error]</td>
108 <td style='white-space:pre;'>$d[name]</td>
109 <td style='white-space:pre;'>$d[email_for_follow_up]</td>
110 <td style='white-space:pre;'>$d[phone_for_validation]</td>
111 <td style='white-space:pre;'>$d[presign_status]</td>
112 <td style='white-space:pre;'>$d[ip_address]</td>
113 <td style='white-space:pre;'>$d[browser_string]</td>
116 echo "</table><a href='?clear_php_session_id=$php_session_id'>CLEAR ALERT</a> - <a href='?sign_php_session_id=$php_session_id'>SIGNATURE FOUND</a> - <a href='?php_session_id=$php_session_id&follow_up=1'>ADD TO FOLLOW UP LIST 1</a>";
117 }elseif(isset($_GET['php_session_id']) && isset($_GET['follow_up'])){
118 $php_session_id = $_GET['php_session_id'];
119 echo "<h1>Adding Follow up for $php_session_id to $_GET[follow_up]</h1><table width='100%' border='1' cellpadding='5' cellspacing='5'>";
120 $q = "SELECT * FROM presign where php_session_id = '$php_session_id' order by id desc ";
121 $r = $petition->query($q);
123 while($d = mysqli_fetch_array($r)){
125 $petition->query("insert into follow_up (name, email, php_session, petition_id) values ('$d[name]','$d[email]','$php_session_id','$_GET[follow_up]') ");
128 $test = date('Y-m-d',strtotime($d['action_on']));
129 $pos = strpos($test, date('Y-m-d'));
130 if ($pos !== false) {
134 echo "<tr style='background-color:$color;'>
135 <td style='white-space:pre;'><b>$d[action_on]</b></td>
136 <td style='white-space:pre;'>$d[php_page]</td>
137 <td style='white-space:pre;'>".id2petition($d['petition'])."</td>
138 <td style='white-space:pre;'>$d[invite]</td>
139 <td style='white-space:pre;'>$d[invite_error]</td>
140 <td style='white-space:pre;'>$d[name]</td>
141 <td style='white-space:pre;'>$d[email_for_follow_up]</td>
142 <td style='white-space:pre;'>$d[phone_for_validation]</td>
143 <td style='white-space:pre;'>$d[presign_status]</td>
144 <td style='white-space:pre;'>$d[ip_address]</td>
145 <td style='white-space:pre;'>$d[browser_string]</td>
148 echo "</table><a href='?clear_php_session_id=$php_session_id'>CLEAR ALERT</a> - <a href='?sign_php_session_id=$php_session_id'>SIGNATURE FOUND</a>";
149 }elseif (isset($_GET['VTRID'])){
150 $VTRID = $_GET['VTRID'];
151 echo "<h1>Review $VTRID</h1><table width='100%' border='1' cellpadding='5' cellspacing='5'>";
152 $q = "SELECT * FROM signatures where VTRID = '$VTRID' and signature_status <> 'deleted' order by petition_id, id DESC ";
153 $r = $petition->query($q);
154 while($d = mysqli_fetch_array($r)){
156 $pos = strpos($d['date_time_signed'], date('Y-m-d'));
157 if ($pos !== false) {
160 echo "<tr style='background-color:$color;'>
161 <td><b>$d[date_time_signed]</b></td>
162 <td><a href='?ip_address=$d[ip_address]'>$d[ip_address]</a></td>
163 <td>".id2petition($d['petition_id'])."</td>
164 <td>$d[signed_name_as]</td>
165 <td>$d[signed_name_as_circulator]</td>
166 <td>$d[contact_phone]</td>
167 <td>$d[signature_status]</td>
168 <td>$d[printed_status]</td>
169 <td><a href='?flag_invalid_signature=$d[id]'>flag invalid signature</a></td>
170 <td><a href='?flag_VTRID=$d[VTRID]'>flag VTRID</a></td>
171 <td><a href='?flag_ip_address=$d[ip_address]'>flag ip address</a></td>
172 <td><a href='?flag_duplicate=$d[id]'>flag duplicate</a></td>
173 <td><a href='?flag_phone=$d[contact_phone]'>contact phone</a></td>
174 <td><a href='?resign_requested=$d[id]'>resign requested</a></td>
175 <td><a href='?bot=$d[id]'>bot</a></td>
182 <h1
>Signature Analytics
</h1
>
183 <h2
>NEVER NEVER NEVER CALL
OR TEXT ANYONE
- ONLY EMAIL
!!!</h2
>
184 <h3
>SysOp Says
: Transparency
= Trust
</h3
>
189 <div
>Follow up requested
- never signed
.</div
><ol
>
191 $q="SELECT distinct php_session_id FROM presign where presign_status = 'NEW' and email_for_follow_up <> '' order by id desc";
192 $r = $petition->query($q);
193 while($d = mysqli_fetch_array($r)){
194 $q2="SELECT * FROM presign where php_session_id = '$d[php_session_id]' order by id desc";
195 $r2 = $petition->query($q2);
196 $d2 = mysqli_fetch_array($r2);
197 echo "<li><a href='?php_session_id=$d2[php_session_id]'>$d2[name] $d2[email_for_follow_up] ".id2petition($d2['petition'])." $d2[invite]</a></li>";
203 <div
>Last
10</div
><ol
>
205 $q="SELECT * FROM signatures where signature_status = 'verified' order by id desc limit 0, 10";
206 $r = $petition->query($q);
207 while($d = mysqli_fetch_array($r)){
208 echo "<li>$d[date_time_signed] ".id2petition($d['petition_id'])." $d[signed_name_as]</li>";
216 <div
>Watching
for duplicates
.</div
><ol
>
218 $q="SELECT ip_address, petition_id,VTRID, COUNT(*) as count FROM signatures where signature_status = 'verified' group by ip_address, petition_id, VTRID";
219 $r = $petition->query($q);
220 while($d = mysqli_fetch_array($r)){
221 if ($d['count'] > 1){
222 echo "<li><a href='?ip_address=$d[ip_address]'>$d[ip_address]</a> ".id2petition($d['petition_id'])." <b>$d[count]</b> $d[signed_name_as]</li>";
226 </td
><td valign
="top">
228 <div
>Watching
for duplicates
.</div
><ol
>
230 $q="SELECT VTRID, petition_id, COUNT(*) as count FROM signatures where signature_status = 'verified' group by VTRID, petition_id";
231 $r = $petition->query($q);
232 while($d = mysqli_fetch_array($r)){
233 if ($d['count'] > 1){
234 echo "<li><a href='?VTRID=$d[VTRID]'>$d[VTRID]</a> ".id2petition($d['petition_id'])." <b>$d[count]</b> $d[signed_name_as]</li>";
238 </td
></tr
><tr
><td valign
="top">
240 <div
>Watching
for 0</div
><ol
>
242 $q="SELECT * FROM signatures where VTRID = '0' and signature_status <> 'bot' and signature_status <> 'flag_invalid_signature' and signature_status <> 'resign_requested'";
243 $r = $petition->query($q);
244 while($d = mysqli_fetch_array($r)){
245 echo "<li>$d[date_time_signed] <a href='?ip_address=$d[ip_address]'>$d[ip_address]</a> <a target='_Blank' href='https://ipinfo.io/$d[ip_address]'>IP INFO</a> $d[petition_id] $d[signed_name_as]</li>";
248 </td
><td valign
="top">
249 <h2
>Petition ID Bugs
</h2
>
250 <div
>Watching
for 0</div
><ol
>
252 $q="SELECT * FROM signatures where (petition_id = '0' or petition_id = '') and signature_status <> 'bot' and signature_status <> 'flag_invalid_signature' and signature_status <> 'resign_requested'";
253 $r = $petition->query($q);
254 while($d = mysqli_fetch_array($r)){
255 echo "<li>$d[date_time_signed] <a href='?ip_address=$d[ip_address]'>$d[ip_address]</a> <a target='_Blank' href='https://ipinfo.io/$d[ip_address]'>IP INFO</a> $d[petition_id] $d[signed_name_as]</li>";
258 </td
></tr
><tr
><td valign
="top">
260 <h2
>resign_requested
</h2
>
261 <div
>These are most likely from early bugs
</div
><ol
>
263 $q="SELECT * FROM signatures where signature_status = 'resign_requested' order by ip_address";
264 $r = $petition->query($q);
266 while($d = mysqli_fetch_array($r)){
268 echo "<li>$d[date_time_signed] <a href='?ip_address=$d[ip_address]'>$d[ip_address]</a> <a target='_Blank' href='https://ipinfo.io/$d[ip_address]'>IP INFO</a> <a href='?VTRID=$d[VTRID]'>$d[VTRID]</a> $d[petition_id] $d[signed_name_as]</li>";
271 <?PHP
$html = ob_get_clean(); if ( $show == 1 ){ echo $html; } ?
>
277 <div
>These are bots on the site
.</div
><ol
>
279 $q="SELECT * FROM signatures where signature_status = 'bot' order by ip_address";
280 $r = $petition->query($q);
282 while($d = mysqli_fetch_array($r)){
284 echo "<li>$d[date_time_signed] <a href='?ip_address=$d[ip_address]'>$d[ip_address]</a> <a target='_Blank' href='https://ipinfo.io/$d[ip_address]'>IP INFO</a> <a href='?VTRID=$d[VTRID]'>$d[VTRID]</a> $d[petition_id] $d[signed_name_as]</li>";
287 <?PHP
$html = ob_get_clean(); if ( $show == 1 ){ echo $html; } ?
>
298 include_once('footer.php');