--- a/labs/mywaybalance.php +++ b/labs/mywaybalance.php @@ -1,7 +1,7 @@ +echo '
Back

MyWay Balance

@@ -9,31 +9,60 @@
'; - $return = Array(); -function logout() { +function logout() +{ setcookie("card_number", "", time() - 60 * 60 * 24 * 100, "/"); setcookie("date", "", time() - 60 * 60 * 24 * 100, "/"); setcookie("secret_answer", "", time() - 60 * 60 * 24 * 100, "/"); + setcookie("contribute_myway", "", time() - 60 * 60 * 24 * 100, "/"); } -function printBalance($cardNumber, $date, $pwrd) +function printBalance($mywayResult) { - global $return; - $return = json_decode(getPage(curPageURL() . "/myway_api.json.php?card_number=$cardNumber&DOBday={$date[0]}&DOBmonth={$date[1]}&DOByear={$date[2]}&secret_answer=$pwrd") , true); - if (isset($return['error'])) { + if (isset($mywayResult['error'])) { logout(); - echo '

' . $return['error'][0] . "

"; + echo '

' . $mywayResult['error'][0] . "

"; } else { - echo "

Balance: " . $return['myway_carddetails']['Card Balance'] . "

"; + echo "

Balance: " . $mywayResult['myway_carddetails']['Card Balance'] . "

"; echo '"; + } +} +function recordMyWayObservations($mywayResult) +{ + global $conn; + if (!isset($mywayResult['error'])) { + $stmt = $conn->prepare("insert into myway_observations (observation_id, myway_stop, time, myway_route) + values (:observation_id, :myway_stop, :time, :myway_route)"); + $stmt->bindParam(':observation_id', $observation_hash); + $stmt->bindParam(':myway_stop', $myway_stop); + $stmt->bindParam(':time', $timestamp); + $stmt->bindParam(':myway_route', $myway_route); + // insert a record + $resultCount = 0; + foreach ($mywayResult['myway_transactions'] as $transaction) { + if ($transaction["Stop Name"] != "" && $transaction["Deduction Type"] != "DEFAULT") { + $observation_hash = md5($mywayResult['myway_carddetails']['MyWay Number'] . $transaction["TX Reference No"]); + $timestamp = date("c", strtotime($transaction["Date / Time"])); + $myway_stop = $transaction["Stop Name"]; + $myway_route = $transaction["Route"]; + if ($stmt->execute()) $resultCount++; + } + } + echo "

Thanks for participating in the study! $resultCount transactions were recorded

"; } } if (isset($_REQUEST['card_number']) && isset($_REQUEST['date']) && isset($_REQUEST['secret_answer'])) { @@ -43,9 +72,12 @@ if ($_REQUEST['remember'] == "on") { setcookie("card_number", $cardNumber, time() + 60 * 60 * 24 * 100, "/"); setcookie("date", $_REQUEST['date'], time() + 60 * 60 * 24 * 100, "/"); + setcookie("contribute_myway", $_REQUEST['contribute_myway'], time() + 60 * 60 * 24 * 100, "/"); setcookie("secret_answer", $pwrd, time() + 60 * 60 * 24 * 100, "/"); } - printBalance($cardNumber, $date, $pwrd); + $mywayResult = json_decode(getPage(curPageURL() . "/myway_api.json.php?card_number=$cardNumber&DOBday={$date[0]}&DOBmonth={$date[1]}&DOByear={$date[2]}&secret_answer=$pwrd") , true); + if ($_REQUEST['contribute_myway'] == "on") recordMyWayObservations($mywayResult); + printBalance($mywayResult); } else if (isset($_REQUEST['logout'])) { echo '

Logged out of MyWay balance

Back to main menu...
'; @@ -54,7 +86,9 @@ $cardNumber = $_COOKIE['card_number']; $date = explode("/", $_COOKIE['date']); $pwrd = $_COOKIE['secret_answer']; - printBalance($cardNumber, $date, $pwrd); + $mywayResult = json_decode(getPage(curPageURL() . "/myway_api.json.php?card_number=$cardNumber&DOBday={$date[0]}&DOBmonth={$date[1]}&DOByear={$date[2]}&secret_answer=$pwrd") , true); + if ($_COOKIE['contribute_myway'] == "on") recordMyWayObservations($mywayResult); + printBalance($mywayResult); } else { $date = (isset($_REQUEST['date']) ? filter_var($_REQUEST['date'], FILTER_SANITIZE_STRING) : date("m/d/Y")); @@ -75,6 +109,14 @@
+
+ + +
+
+ + +
'; } include_footer();