diff --git a/components/susignup.php b/components/susignup.php new file mode 100755 index 0000000000000000000000000000000000000000..7f1f12c73d2657eb561348293c53b507c397b8d0 --- /dev/null +++ b/components/susignup.php @@ -0,0 +1,129 @@ +<?php + +//unique society identifier +$GroupingID = "6613"; + +include "../lib/member_functions.php"; +include "../suapi.inc.php"; + + +$mode = 'login'; +//login +if(isset($_REQUEST['sid'])&&isset($_REQUEST['transactionID'])&&$_REQUEST['sid']!=''&&$_REQUEST['transactionID']!=''){ +//set signup details + + $sid = $_REQUEST['sid']; + $transactionID = $_REQUEST['transactionID']; + + //set POST variables + $url = "https://'$suapi_user':'$suapi_pass'@hap.swansea-union.co.uk/memberships/Membership.asmx/GetMemberByTransactionID"; + $fields = array( + 'transactionID'=>urlencode($transactionID), + 'GroupingID'=>urlencode($GroupingID), + ); + //url-ify the data for the POST + foreach($fields as $key=>$value) { $fields_string .= $key.'='.$value.'&'; } + rtrim($fields_string,'&'); + //open connection + $ch = curl_init(); + + //set the url, number of POST vars, POST data + curl_setopt($ch,CURLOPT_URL,$url); + curl_setopt($ch,CURLOPT_POST,count($fields)); + curl_setopt($ch,CURLOPT_POSTFIELDS,$fields_string); + curl_setopt($ch,CURLOPT_RETURNTRANSFER,TRUE); + //execute post + $result = curl_exec($ch); + + //close connection + curl_close($ch); + if(!result){ + //HTTP Error + }else{ + $re1='.*?'; + $re2='(\\{.*?\\})'; + if ($c=preg_match_all ("/".$re1.$re2."/is", $result, $matches)) + { + $json_string=$matches[1][0]; + }else{ + //ERROR + } + + $array = json_decode($json_string,TRUE); + + if($array['cardNumber'] == $sid && $sid != ""){ + $mode = 'form'; + + // connect to sucs database + $sucsDB = NewADOConnection('postgres8'); + + // SET THIS FOR DEBUG MODE + $sucsDB->debug = true; + // SET THIS TO YOUR DB FOR TESTING + $sucsDB->Connect('dbname=sucs'); + + $sucsDB->SetFetchMode(ADODB_FETCH_ASSOC); + $query = "INSERT INTO transactions (transactionID,fullName,emailAddress,cardNumber,personID) values(?, ? ?, ?, ?, ?)"; + $attribs[]=$transactionID; + $attribs[]=$array['firstName']; + $attribs[]=$array['lastName']; + $attribs[]=$array['emailAddress']; + $attribs[]=$array['cardNumber']; + $attribs[]=$array['personID']; + + + if(!$sucsDB->Execute($query,$attribs)) { + unset($query); + unset($attribs); + $query = "SELECT * FROM transactions WHERE transactionID = ? AND signupid IS NULL"; + $attribs[]=$transactionID; + $data = $sucsDB->GetAll($query,$attribs); + if(is_array($data)&&sizeof($data)==1){ + //ERROR SOMEONE TRIED TO USE SAME TRANSACTIONID TWICE SIGNUP SLIP ALREADY GENERATED + // MAIL ERROR MESSAGE THEN DIE + die(); + } + } + + $pass = make_password(); + unset($query); + $query = "insert into signup (password,sid,issuedby) values( ?, ?, ?) returning id"; + unset($attribs); + $attribs[]=addslashes($pass); + $attribs[]=$array['cardNumber']; + $attribs[]='SUSU API'; + + $id = $sucsDB->Execute($query,$attribs); + if (!$id) { + echo "Entering id $id failed.<br>\n"; + } else { + + unset($query); + $query = "update transactions set signupid = ? WHERE transactionID = ?"; + unset($attribs); + $attribs[]=$id; + $attribs[]=$transactionID; + if(!$sucsDB->Execute($query,$attibs)) { + //ERROR + } else { + $smarty->assign("id", $id); + $smarty->assign("pass", $pass); + } + } + + } + + + } + + +} + +$smarty->assign("mode", $mode); +$output = $smarty->fetch("susignup.tpl"); + +$smarty->assign("title", "Join"); +$smarty->assign("body", $output); + + +?> diff --git a/templates/susignup.tpl b/templates/susignup.tpl new file mode 100644 index 0000000000000000000000000000000000000000..236ad4894ac4913e9f884f1b1c652d5651aef72a --- /dev/null +++ b/templates/susignup.tpl @@ -0,0 +1,45 @@ +{if $mode=='login'} +<form action="{$componentpath}" method="post"> + <div class="box" style="width: 70%; margin: auto;"> + <div class="boxhead"><h2>Membership Signup</h2></div> + <div class="boxcontent"> + + <p>Please enter the details from your transaction receipt</p> + + <div class="row"> + <label for="sid">Student Number:</label> + <span class="textinput"><input type="text" size="20" name="sid" id="sid" /></span> + </div> + <div class="row"> + <label for="transactionID">Transaction ID:</label> + <span class="textinput"><input type="text" size="20" name="transactionID" id="transactionID" /></span> + </div> + <div class="row"><span class="textinput"> + <input type="submit" name="submit" value="Join" /></span> + </div> + <div class="clear"></div> + <div class="note">If you wish to renew an existing account instead, please login to <a href="https://sucs.org/Options">Membership Options</a> using your existing account details.</div> + </div> + <div class="hollowfoot"><div><div></div></div></div> + </div> +</form> +{elseif $mode=='form' || $mode=="re-form"} + <h1>Signup</h1> + <p>To continue signup later please use the link below to dispay and print off your signup slip</p> + <form action="https://sucs.org/~kais58/sucstest/sucs/generate.php" method="post" target="_blank"> + <input type=hidden name="id" value={$id}/> + <input type=hidden name="pass" value={$pass}/> + <input type=submit name="submit" value="Proceed" /> + </form> + <p>To finish signup now click below to continue</p> + <form action="https://sucs.org/signup/" method="post"> + <input type=hidden name="signupid" value={$id}/> + <input type=hidden name="signuppw" value={$pass}/> + <input type=submit name="submit" value="Proceed" /> + </form> + +{else} +<h1>Error</h1> +An error occured during signup, please email <a href='mailto:admin@sucs.org'>admin@sucs.org</a> for assistance. +{/if} +