Skip to content
Snippets Groups Projects

Compare revisions

Changes are shown as if the source revision was being merged into the target revision. Learn more about comparing revisions.

Source

Select target project
No results found

Target

Select target project
  • osian/sucs-site
  • kais58/sucs-site
  • imranh/sucs-site
  • foshjedi2004/sucs-site
  • gigosaurus/sucs-site
  • matstn/sucs-site
  • ripp_/sucs-site
  • eggnog/sucs-site
  • sucssite/sucs-site
  • elbows/sucs-site
  • realitykiller/sucs-site
  • crox/sucs-site
  • vectre/sucs-site
  • welshbyte/sucs-site
  • paperclipman/sucs-site
15 results
Show changes
Commits on Source (5)
......@@ -14,7 +14,10 @@ if (isset($_GET['key'])) {
}
break;
case "postcode":
echo lookup_postcode($_GET['value']);
$postcode = validPostcode($_GET['value']);
if ($postcode != false) {
lookup_postcode($postcode);
}
break;
case "username":
$username = $_GET['value'];
......
var validation = {"studentid":false, "username":false, "realname":false, "address":false, "contact":false, "email":false, "phone":false};
var validation = {
"studentid": false,
"username": false,
"realname": false,
"address": false,
"contact": false,
"email": false,
"phone": false
};
var submitted = false;
function validate(){
var valid = true;
for (field in req){
if (!validation[req[field]]){
valid=false;
break;
}
}
if((valid || ($('input#override:checked').size()==1)) && !submitted && ($('input#tnc:checked').size()==1)){
$('input#submit').removeAttr("disabled");
return true;
}
else{
$('input#submit').attr("disabled","disabled");
return false;
}
function validate() {
var valid = true;
for (field in req) {
if (!validation[req[field]]) {
valid = false;
break;
}
}
if ((valid || ($('input#override:checked').size() == 1)) && !submitted && ($('input#tnc:checked').size() == 1)) {
$('input#submit').removeAttr("disabled");
return true;
}
else {
$('input#submit').attr("disabled", "disabled");
return false;
}
}
function processPostcode(){
// lookup postcode
$.getJSON("signup/ajax",{key: "postcode",value: $('input#postcode').val()}, function(j){
//populate dropdown
var options = '';
if (j.addresses.length > 1) {
// make dropdown visible
$('div#addseldiv').removeAttr("style");
for (var i = 0; i < (j.addresses.length); i++) {
options += '<option>';
if (j.addresses[i].flat != null) {
options += j.addresses[i].flat + "\n";
}
if (j.addresses[i].house != null) {
options += j.addresses[i].house + "\n";
}
if (j.addresses[i].road != null) {
options += j.addresses[i].road + "\n";
}
if (j.addresses[i].city != null) {
options += j.addresses[i].city + "\n";
}
options += '</option>';
}
$("select#addsel").html(options);
$('select#addsel option:first').attr('selected', 'selected');
}
if (j.addresses.length == 1) {
$('div#addseldiv').attr("style","display:none");
$("textarea#address")
$('div#addressmessage').attr("style","color:green; float:right; clear:right;");
$('div#addressmessage').html("OK");
validation["address"]=true;
validate();
}
})
function processPostcode() {
// lookup postcode
$.getJSON("signup/ajax", {key: "postcode", value: $('input#postcode').val()}, function (j) {
//populate dropdown
var options = '';
if (j.addresses.length > 1) {
// make dropdown visible
$('div#addseldiv').removeAttr("style");
for (var i = 0; i < (j.addresses.length); i++) {
options += '<option>';
if (j.addresses[i].flat != null) {
options += j.addresses[i].flat + "\n";
}
if (j.addresses[i].house != null) {
options += j.addresses[i].house + "\n";
}
if (j.addresses[i].road != null) {
options += j.addresses[i].road + "\n";
}
if (j.addresses[i].city != null) {
options += j.addresses[i].city + "\n";
}
options += '</option>';
}
$("select#addsel").html(options);
$('select#addsel option:first').attr('selected', 'selected');
}
if (j.addresses.length == 1) {
$('div#addseldiv').attr("style", "display:none");
$("textarea#address")
$('div#addressmessage').attr("style", "color:green; float:right; clear:right;");
$('div#addressmessage').html("OK");
validation["address"] = true;
validate();
}
})
}
function lookupSID(setname){
$.get("/signup/ajax",{key:"sid" ,value: $('input#studentid').val()},function(j){
arr=j.split(":");
key=arr.shift();
val=arr.join(":");
if(key=="OK"){
if(setname=true)
$("input#realname").val(val);
$('div#studentidmessage').attr("style","color:green; float:right; clear:right;");
$('div#studentidmessage').html(key);
validation['studentid']=true;
processName("realname","realname");
function lookupSID(setname) {
$.get("/signup/ajax", {key: "sid", value: $('input#studentid').val()}, function (j) {
arr = j.split(":");
key = arr.shift();
val = arr.join(":");
if (key == "OK") {
if (setname = true)
$("input#realname").val(val);
$('div#studentidmessage').attr("style", "color:green; float:right; clear:right;");
$('div#studentidmessage').html(key);
validation['studentid'] = true;
processName("realname", "realname");
}
else{
$('div#studentidmessage').attr("style","color:red; float:right; clear:right;");
$('div#studentidmessage').html(val);
validation['email']=false;
validate();
}
},'text')
}
else {
$('div#studentidmessage').attr("style", "color:red; float:right; clear:right;");
$('div#studentidmessage').html(val);
validation['email'] = false;
validate();
}
}, 'text')
}
function processSID(){
lookupSID(true);
function processSID() {
lookupSID(true);
}
function processUsername(){
$.get("/signup/ajax",{key: "username", value: $('input#username').val()},function(j){
if (j!="OK") {
$('div#usernamemessage').attr("style","color:red; float:right; clear:right;");
validation['username']=false;
}
else{
$('div#usernamemessage').attr("style","color:green; float:right; clear:right;");
validation['username']=true;
}
$('div#usernamemessage').html(j);
validate();
},'text')
function processUsername() {
$.get("/signup/ajax", {key: "username", value: $('input#username').val()}, function (j) {
if (j != "OK") {
$('div#usernamemessage').attr("style", "color:red; float:right; clear:right;");
validation['username'] = false;
}
else {
$('div#usernamemessage').attr("style", "color:green; float:right; clear:right;");
validation['username'] = true;
}
$('div#usernamemessage').html(j);
validate();
}, 'text')
}
function processName(type, input){
$.get("/signup/ajax",{key: type, value: $('input#'+input).val()},function(j){
if (j!="OK") {
$('div#'+input+'message').attr("style","color:red; float:right; clear:right;");
validation[input]=false;
}
else{
$('div#'+input+'message').attr("style","color:green; float:right; clear:right;");
validation[input]=true;
}
$('div#'+input+'message').html(j);
validate();
},'text')
function processName(type, input) {
$.get("/signup/ajax", {key: type, value: $('input#' + input).val()}, function (j) {
if (j != "OK") {
$('div#' + input + 'message').attr("style", "color:red; float:right; clear:right;");
validation[input] = false;
}
else {
$('div#' + input + 'message').attr("style", "color:green; float:right; clear:right;");
validation[input] = true;
}
$('div#' + input + 'message').html(j);
validate();
}, 'text')
}
function processContact(){
processName('realname','contact');
function processContact() {
processName('realname', 'contact');
}
function processAddress(){
$.get("/signup/ajax",{key: "address", value: $('textarea#address').val()},function(j){
if (j!="OK") {
$('div#addressmessage').attr("style","color:red; float:right; clear:right;");
validation['address']=false;
}
else{
$('div#addressmessage').attr("style","color:green; float:right; clear:right;");
validation['address']=true;
}
$('div#addressmessage').html(j);
validate();
},'text')
function processAddress() {
$.get("/signup/ajax", {key: "address", value: $('textarea#address').val()}, function (j) {
if (j != "OK") {
$('div#addressmessage').attr("style", "color:red; float:right; clear:right;");
validation['address'] = false;
}
else {
$('div#addressmessage').attr("style", "color:green; float:right; clear:right;");
validation['address'] = true;
}
$('div#addressmessage').html(j);
validate();
}, 'text')
}
function processEmail(){
$.get("/signup/ajax",{key: "email", value: $('input#email').val()},function(j){
if (j!="OK") {
$('div#emailmessage').attr("style","color:red; float:right; clear:right;");
validation['email']=false;
}
else{
$('div#emailmessage').attr("style","color:green; float:right; clear:right;");
validation['email']=true;
}
$('div#emailmessage').html(j);
validate();
},'text')
function processEmail() {
$.get("/signup/ajax", {key: "email", value: $('input#email').val()}, function (j) {
if (j != "OK") {
$('div#emailmessage').attr("style", "color:red; float:right; clear:right;");
validation['email'] = false;
}
else {
$('div#emailmessage').attr("style", "color:green; float:right; clear:right;");
validation['email'] = true;
}
$('div#emailmessage').html(j);
validate();
}, 'text')
}
function processPhone(){
$.get("/signup/ajax",{key: "phone", value: $('input#phone').val()},function(j){
if (j!="OK") {
$('div#phonemessage').attr("style","color:red; float:right; clear:right;");
validation['phone']=false;
}
else{
$('div#phonemessage').attr("style","color:green; float:right; clear:right;");
validation['phone']=true;
}
$('div#phonemessage').html(j);
validate();
},'text')
function processPhone() {
$.get("/signup/ajax", {key: "phone", value: $('input#phone').val()}, function (j) {
if (j != "OK") {
$('div#phonemessage').attr("style", "color:red; float:right; clear:right;");
validation['phone'] = false;
}
else {
$('div#phonemessage').attr("style", "color:green; float:right; clear:right;");
validation['phone'] = true;
}
$('div#phonemessage').html(j);
validate();
}, 'text')
}
$(function(){
if($('input#studentid').size()==1){
usertype=1;
}
else if($('input#contact').size()==1){
usertype=2;
}
else{
usertype=5;
}
req=new Array("username","realname","email","phone");
switch(usertype){
case "1":
req.push("studentid","address");
break;
case "2":
req.push("contact");
break;
case "5":
req.push("address");
$(function () {
if ($('input#studentid').size() == 1) {
usertype = 1;
}
else if ($('input#contact').size() == 1) {
usertype = 2;
}
else {
usertype = 5;
}
req = new Array("username", "realname", "email", "phone");
switch (usertype) {
case "1":
req.push("studentid", "address");
break;
case "2":
req.push("contact");
break;
case "5":
req.push("address");
}
//usertype=$('input#usertype').val();
$("document").ready(function () {
// makes script sutff appear
$('div#postcodediv').removeAttr("style");
$('input#submit').attr("disabled", "disabled");
// if the fields are not empty validate them
if ($('input#username').val() != "") processUsername();
if ($('input#email').val() != "") processEmail();
if ($('input#phone').val() != "") processPhone();
if (usertype != 2) {
if ($('input#postcode').val() != "") processPostcode();
if ($('textarea#address').val() != "") processAddress();
if ($('input#realname').val() != "") processName("realname", "realname");
}
else {
if ($('input#contact').val() != "") processContact();
if ($('input#realname').val() != "") processName("socname", "realname");
}
//usertype=$('input#usertype').val();
$("document").ready(function(){
// makes script sutff appear
$('div#postcodediv').removeAttr("style");
$('input#submit').attr("disabled","disabled");
// if the fields are not empty validate them
if($('input#username').val()!="") processUsername();
if($('input#email').val()!="") processEmail();
if($('input#phone').val()!="") processPhone();
if(usertype!=2){
if($('input#postcode').val()!="") processPostcode();
if($('textarea#address').val()!="") processAddress();
if($('input#realname').val()!="") processName("realname","realname");
}
else{
if($('input#contact').val()!="") processContact();
if($('input#realname').val()!="") processName("socname","realname");
}
if((usertype==1) && ($('input#studentid').val()!="")){
if($('input#realname').val()=="") lookupSID(true);
else lookupSID(false);
}
if ((usertype == 1) && ($('input#studentid').val() != "")) {
if ($('input#realname').val() == "") lookupSID(true);
else lookupSID(false);
}
validate();
})
// dont do address stuff for societies
if (usertype != 2) {
// process postcode when the box changes
$("input#postcode").change(processPostcode);
validate();
})
// dont do address stuff for societies
if(usertype!=2){
// process postcode when the box changes
$("input#postcode").change(processPostcode);
//populate the address box when an address is selected
$("select#addsel").change(function(){
// everything is shit and will strip out the line breaks
// so we have to do weird shit with innerHTML
// store the entire options as e
var e = document.getElementById("addsel");
// store the selected address's innerHTML as strUser (because stackpver flow copy and paste)
var strUser = e.options[e.selectedIndex].innerHTML;
// set the text area to the strUser var
$("textarea#address").text( strUser );
$('div#addressmessage').attr("style","color:green; float:right; clear:right;");
$('div#addressmessage').html("OK");
validation['address']=true;
})
}
//else deal with the contact field
else{
//populate the address box when an address is selected
$("select#addsel").change(function () {
// everything is shit and will strip out the line breaks
// so we have to do weird shit with innerHTML
// store the entire options as e
var e = document.getElementById("addsel");
// store the selected address's innerHTML as strUser (because stackpver flow copy and paste)
var strUser = e.options[e.selectedIndex].innerHTML;
// set the text area to the strUser var
$("textarea#address").text(strUser);
$('div#addressmessage').attr("style", "color:green; float:right; clear:right;");
$('div#addressmessage').html("OK");
validation['address'] = true;
})
}
//else deal with the contact field
else {
$("input#contact").change(processContact)
}
//if is a student
if(usertype==1){
//lookup the real name from the studentid
$("input#studentid").change(processSID)
}
//validate username
$("input#username").change(processUsername)
//validate personal and society names differntly
if(usertype!=2){
persoc='realname';
}
else{
persoc='socname';
}
//validate real name
$("input#realname").change(function(){
processName(persoc, 'realname');
})
//validate email address
$("input#email").change(processEmail);
//validate phone number
$("input#phone").change(processPhone);
$("textarea#address").change(processAddress);
$("input#override").change(validate);
$("input#tnc").change(validate);
// Disable the submit button once clicked
$("form#mainform").submit(function() {
var valid = validate();
if(valid){
// mark form as submitted
submitted = true;
// disable the submit button
$('input#submit').attr("disabled","disabled");
}
return valid;
});
}
//if is a student
if (usertype == 1) {
//lookup the real name from the studentid
$("input#studentid").change(processSID)
}
//validate username
$("input#username").change(processUsername)
//validate personal and society names differntly
if (usertype != 2) {
persoc = 'realname';
}
else {
persoc = 'socname';
}
//validate real name
$("input#realname").change(function () {
processName(persoc, 'realname');
})
//validate email address
$("input#email").change(processEmail);
//validate phone number
$("input#phone").change(processPhone);
$("textarea#address").change(processAddress);
$("input#override").change(validate);
$("input#tnc").change(validate);
// Disable the submit button once clicked
$("form#mainform").submit(function () {
var valid = validate();
if (valid) {
// mark form as submitted
submitted = true;
// disable the submit button
$('input#submit').attr("disabled", "disabled");
}
return valid;
});
})
......@@ -9,4 +9,12 @@ function sanitizeAddress($address)
return str_replace(array("\r\n", "\r"), array("\n", "\n"), $address);
}
function sanitizePostcode($postcode)
{
//force uppercase, remove any possible stupid spaces and add the single space in the correct place
$postcode = strtoupper($postcode);
$postcode = str_replace(" ", "", $postcode);
return substr_replace($postcode, " ", -3, 0);
}
?>
......@@ -252,11 +252,22 @@ function validAddress($address)
}
}
function validPostcode($postcode)
{
$postcode = sanitizePostcode($postcode);
if (!preg_match('/^[A-Z]{1,2}[0-9]{1,2}[A-Z]{0,1} [0-9][A-Z]{2}$/', $postcode)) {
return false;
} else {
return $postcode;
}
}
function validPhone($phone)
{
global $error;
$phone = sanitizePhone($phone);
if (!preg_match("/^\+?[0-9-]+$/", $phone)) {
if (!preg_match("/^\+?[0-9-]{10,}$/", $phone)) {
$error = "Must be all numbers";
return false;
}
......@@ -266,7 +277,7 @@ function validPhone($phone)
function validSignupEmail($email)
{
global $error;
if (preg_match('/@sucs\.org$/', $email)) {
if (preg_match('/@sucs\.$/', $email)) {
$error = "SUCS email addresses are not allowed";
return false;
} elseif (!validEmail($email)) {
......
<?
// lookup real names from sid's useing campus ldap
// lookup real names from sid's using campus ldap
function lookupSID($sid)
{
$ds = ldap_connect("ccs-suld1.swan.ac.uk");
......@@ -12,7 +12,7 @@ function lookupSID($sid)
return ucwords(strtolower($info[0]['givenname'][0] . " " . $info[0]['sn'][0]));
}
// lookup addresses from postcodes useing the univeritys website
// lookup addresses from postcodes using the university's website
function lookup_postcode($postcode)
{
......@@ -21,9 +21,8 @@ function lookup_postcode($postcode)
$url = "http://paf.sucs.org/?apikey=$apikey&postcode=" . rawurlencode($postcode);
$req = curl_init($url);
$page = curl_exec($req);
curl_exec($req);
curl_close($req);
}
?>