. */ function ssl_redirect() { if(headers_sent()) { echo " ssl_redirect: Headers already sent."; return; } if(!isset($_SERVER['HTTPS']) || $_SERVER['HTTPS'] != "on") { if(!isset($_SERVER['REQUEST_URI']) OR !isset($_SERVER['HTTP_HOST'])) { include("./include/header.php"); echo " Your browser doesn't support HTTP 1.1 requests.\n"; echo " Please use https:// instead of http://\n"; include("./include/footer.php"); return; } echo "\n \n"; echo " \n"; echo " \n"; exit; } } function get_date($date) { // convert from 2002-02-01 to 01.02.2002 if( $date == "0000-00-00 00:00:00" OR $date == "0000-00-00" ) return ""; elseif( strlen($date)==10 ) return date("d.m.Y", strtotime($date)); elseif( strlen($date)==16 ) return date("d.m.Y H:i", strtotime($date)); elseif( strlen($date)==19 ) return date("d.m.Y H:i:s", strtotime($date)); else return $date; } function get_sql_date($date) { // convert from 01.02.2002 to 2002-02-01 $d = substr($date, 0, 2); $m = substr($date, 3, 2); $Y = substr($date, 6, 4); if( strlen($date)==10 ) { return "$Y-$m-$d"; }elseif( strlen($date)==16 ) { $H = substr($date, 11, 2); $i = substr($date, 14, 2); return "$Y-$m-$d $H:$i"; }elseif( strlen($date)==19 ) { $H = substr($date, 11, 2); $i = substr($date, 14, 2); $s = substr($date, 17, 2); return "$Y-$m-$d $H:$i:$s"; }else { return null; } } function get_var($var) { if( isset($_GET[$var]) ) return stripslashes($_GET[$var]); elseif( isset($_POST[$var]) ) return stripslashes($_POST[$var]); else return null; } function get_int($var) { if( preg_match("/^-?[0-9]+$/", get_var($var)) ) { return get_var($var); }else { return false; } } function get_money($var) { if( preg_match("/^-?[0-9]*(\.[0-9]{1,2})?$/", get_var($var)) ) { return get_var($var); }elseif( preg_match("/^-?[0-9]*(,[0-9]{1,2})?$/", get_var($var)) ) { return str_replace(",", ".", get_var($var)); }else { return 0; } } function get_signature($content, $applid) { global $setup; $h = substr(md5(date("U")), 0, 4); return $h . substr(md5( $h . SECRET . $setup['EventCode'] . $content . $applid ), 0, 24); } function check_signature($sig, $content, $applid) { global $setup; $h = substr($sig, 0, 4); return ( ($h . substr(md5( $h . SECRET . $setup['EventCode'] . $content . $applid ), 0, 24))==$sig ); } function check_email($Email) { // Check if the supplied e-mail address is a valid e-mail address. If yes, return true, else return false $re="/(^(\w|\.|-|\+)+@(\w|-)+(\.(\w|-)+)*\.[a-zA-Z]{2,4}$)/"; if( preg_match($re,$Email) ) { //Regex matches, now check MX if( getmxrr(substr($Email,strpos($Email,"@")+1), $mxhosts) ) { return true; }else { return false; } }else { return false; } } function encode($header, $quotesifascii=true) { #=?UTF-8?B?SWYgeW91IGNhbiByZWFkIHRoaXMgeW8=?= for( $i=0; $i127 ) { // Header contains non-ascii characters return "=?UTF-8?B?".base64_encode($header)."=?="; } } if( $quotesifascii ) return "\"".$header."\""; else return $header; } function check_date($year, $month, $day, $hour, $minute) { if( $hour==" " ) $hour="00"; if( $minute==" " ) $minute="00"; if( (($year<1900) OR ($year>2099)) OR (($month<1) OR ($month>12)) OR ($day<1) OR (($hour<0) OR ($hour>23)) OR (($minute<0) OR ($minute>59)) ) { return false; // out of range }elseif( (!preg_match("/(^(\d){4}$)/",$year)) OR (!preg_match("/(^(\d){2}$)/",$month)) OR (!preg_match("/(^(\d){2}$)/",$day)) OR (!preg_match("/(^(\d){2}$)/",$hour)) OR (!preg_match("/(^(\d){2}$)/",$minute)) ) { return false; // no numbers, or wrong length }elseif( ( ($month==1) OR ($month==3) OR ($month==5) OR ($month==7) OR ($month==8) OR ($month=10) OR ($month=12) ) AND ($day>31) ) { return false; // day out of range }elseif( ( ($month==4) OR ($month==6) OR ($month==9) OR ($month==11) ) AND ($day>30) ) { return false; // day out of range }elseif( ( ($month==2) AND ($day>29) ) OR ( ($month==2) AND (($year%4)!=0) AND ($day>28) ) ) { return false; // day out of range }else return true; } ### Time functions ### function show_date($name, $value, $editable, $day_min, $day_max, $month_min, $month_max, $year_min, $year_max, $olderage=false) { $y = substr($value, 0, 4); $m = substr($value, 5, 2); $d = substr($value, 8, 2); // Show days $r=show_date_days($name, $editable, $d, $day_min, $day_max); // Show months $r.=show_date_months($name, $editable, $m, $month_min, $month_max); // Show year $r.=show_date_years($name, $editable, $y, $year_min, $year_max, $olderage); return $r; } function show_date_days($name, $editable, $value, $min, $max ) { // Show days if( $min<1 ) $min=1; if( $max>31 ) $max=31; if( $editable ) $r=""; return $r; } function show_date_months($name, $editable, $value, $min, $max) { // Show months if( $min<1 ) $min=1; if( $max>12 ) $max=12; if( $editable ) $r=""; return $r; } function show_date_years($name, $editable, $value, $min, $max, $olderage=false) { // Show years if( $min<1900 ) $min=1900; if( $max>2099 ) $max=2099; if( $editable ) $r=""; for($i=$min;$i<=$max;$i++) { if( $i<10 ) $r.=""; } $r.="h"; return $r; } function show_time_minutes($name, $editable, $value, $min, $max, $step) { // Show minutes if( $min<0 ) $min=0; if( $max>59 ) $max=59; $r = "m"; return $r; } function show_workshop($name, $value, $timeslot, $readonly) { global $setup; if( $timeslot==1 ) { $query="SELECT `id`, `title`, `slot` FROM `workshops` WHERE (`slot`='first' OR `slot`='both') ORDER BY `title`"; }elseif( $timeslot==3 ) { $query="SELECT `id`, `title`, `slot` FROM `workshops` WHERE `slot`='strategy' ORDER BY `title`"; }else { $query="SELECT `id`, `title`, `slot` FROM `workshops` WHERE `slot`='second' ORDER BY `title`"; } if( @mysql_num_rows( $res=doquery($query) ) ) { $r = ""; }else { require_once("./include/SendMailPage.php"); $r = "Failed loading workshops. Please contact the ".SendMailPage::getLink("webmaster", "webmaster").""; } return $r; } function check_workshop($value, $timeslot) { // Check if workshop is held in selected timeslot if( !($value>0) ) return false; if( $timeslot==1 ) { $query="SELECT `id`, `slot` FROM `workshops` WHERE (`slot`='first' OR `slot`='both') AND `id`=".addslashes($value); }elseif( $timeslot==3 ) { $query="SELECT `id`, `title`, `slot` FROM `workshops` WHERE `slot`='strategy' ORDER BY `title`"; }else { $query="SELECT `id`, `slot` FROM `workshops` WHERE `slot`='second' AND `id`=".addslashes($value); } if( @mysql_num_rows($res=doquery($query))==0 ) return false; else { $row=mysql_fetch_array($res); return $row["slot"]; } } function send_mail($to, $subject, $message, $Header="", $add_user=true, $add_footer=true) { // *still in use by mailer* // @include_once("./include/mail_smtp.old.php"); @include_once("../include/mail_smtp.old.php"); global $setup; if( strlen(stristr($Header, "From:"))==0 ) { $Header="Reply-To: \"".$setup['EventName']."\" <".$setup['EventApplFromEmail'].">\n".$Header; $Header="From: \"".$setup['SetupEventType']." Application Mailer\" <".$setup['EventApplFromEmail'].">\n".$Header; $Header.="\n"; }else { $Header.="\n"; } $Header.="X-Mailer: AEGEE-Europe statutary event application\n"; if( strlen($_SERVER['REMOTE_ADDR'])>0 ) $Header.="X-Posting-Host: ".$_SERVER['REMOTE_HOST']." [".$_SERVER['REMOTE_ADDR']."]"; if( $add_footer ) { $message.=str_replace("\\n","\n", $setup['MailFooter']); } if( $add_user ) { if( $_SESSION['sess_uid']==-3 ) { $message="*** This application was updated by ".$_SESSION['sess_BodyName']." ***\n\n\n$message"; }elseif( $_SESSION['sess_uid']>0 ) { $message="*** This application was updated by ".$_SESSION['sess_name']." ***\n\n\n$message"; } } // It seems that the to e-mail address is normally not put into the headers, so we check this, // and add it when missing. Furthermore, we make sure we use only the e-mail address for to, // otherwise smtp will fail if( check_email($to) ) { $toMail=$to; //echo "\n\n
Email address is already valid\n"; }else { if( preg_match_all("/((\w|\.|-)+@(\w|-)+(\.(\w|-)+)*\.[a-zA-Z]{2,4})/", $to, $matches, PREG_SET_ORDER)>0 ) { $toMail=$matches[0][0]; for( $i=1; $imail($toMail, $subject, $message, $setup['MailReturnpath'], $Header)) ) { // Failed sending mail $query="INSERT INTO `mailout` (`date`, `to`, `subject`, `message`, `from`, `header`) VALUES ('".date("Y-m-d H:i:s")."', '".addslashes($to)."', '".addslashes($subject)."', '".addslashes($message)."', '".addslashes($setup['MailReturnpath'])."', '".addslashes($Header)."')"; if( !doquery($query) ) { // Query failed echo " I was not able to send an e-mail, neither was I able to save\n"; echo " the mail for later sending. Mail has been lost.\n"; } } return $r; } function is_anon() { if( isset($_SESSION['access_user']) && $_SESSION['access_user'] ) return false; elseif( isset($_SESSION['sess_functions']) ) return false; else return true; } function get_selection() { global $setup; $_SESSION['sess_sel'] = "((0 "; if( !isset($_SESSION['sess_sel_accept_nosel']) || $_SESSION['sess_sel_accept_nosel']!="no" ) { $_SESSION['sess_sel_accept_nosel'] = "yes"; $_SESSION['sess_sel'] .= "OR `Accepted`='-' "; } if( !isset($_SESSION['sess_sel_accept_yes']) || $_SESSION['sess_sel_accept_yes']!="no" ) { $_SESSION['sess_sel_accept_yes'] = "yes"; $_SESSION['sess_sel'] .= "OR `Accepted`='yes' "; } if( !isset($_SESSION['sess_sel_accept_pending']) || $_SESSION['sess_sel_accept_pending']!="no" ) { $_SESSION['sess_sel_accept_pending'] = "yes"; $_SESSION['sess_sel'] .= "OR `Accepted`='pending' "; } if( !isset($_SESSION['sess_sel_accept_confirm']) || $_SESSION['sess_sel_accept_confirm']!="no" ) { $_SESSION['sess_sel_accept_confirm'] = "yes"; $_SESSION['sess_sel'] .= "OR `Accepted`='confirmed' "; } if( !isset($_SESSION['sess_sel_accept_no']) || $_SESSION['sess_sel_accept_no']!="no" ) { $_SESSION['sess_sel_accept_no'] = "yes"; $_SESSION['sess_sel'] .= "OR `Accepted`='no' "; } if( !isset($_SESSION['sess_sel_accept_cancel']) || $_SESSION['sess_sel_accept_cancel']!="no" ) { $_SESSION['sess_sel_accept_cancel'] = "yes"; $_SESSION['sess_sel'] .= "OR `Accepted`='cancel' "; } if( !isset($_SESSION['sess_sel_accept_arrived']) || $_SESSION['sess_sel_accept_arrived']!="no" ) { $_SESSION['sess_sel_accept_arrived'] = "yes"; $_SESSION['sess_sel'] .= "OR `Accepted`='arrived' "; } $_SESSION['sess_sel'].=")"; if( isset($_SESSION['sess_sel_registrationdesk']) && $_SESSION['sess_sel_registrationdesk']>0 ) { $_SESSION['sess_sel'].=" AND `RegistrationDesk`=".addslashes($_SESSION['sess_sel_registrationdesk']); } if( isset($_SESSION['sess_sel_gym']) && $_SESSION['sess_sel_gym']>0 ) { $_SESSION['sess_sel'].=" AND `Gym`=".addslashes($_SESSION['sess_sel_gym']); } $_SESSION['sess_sel'].=")"; } function unhtmlentities($string) { $trans_tbl = get_html_translation_table (HTML_ENTITIES); $trans_tbl = array_flip ($trans_tbl); return strtr($string, $trans_tbl); } function urlopen($host, $path) { if( $fp = fsockopen($host, 80) ) { fputs($fp, "GET $path HTTP/1.1\r\n"); fputs($fp, "Host: $host\r\n"); fputs($fp, "Connection: close\r\n\r\n"); $buf="a"; while( !feof($fp) AND $buf!="\r\n" ) { $buf = fgets($fp, 1024); } return $fp; }else { return null; } } function get_bytesize($size) { // Return the size, converted to B, KB, MB, GB or TB // Input is in bytes $SIZE_LABEL=array(0=>"B", 1=>"KB", 2=>"MB", 3=>"GB", 4=>"TB"); $size_loop=0; while( $size>950 ) { $size_loop++; $size=$size/1024; } if( $size>99.5 ) return number_format($size, 0, ",", ".")." ".$SIZE_LABEL[$size_loop]; else return number_format($size, 1, ",", ".")." ".$SIZE_LABEL[$size_loop]; } function get_bytes($size) { // Return the size in bytes // Input is in B, KB, MB, GB or TB $SIZE_LABEL=array("B"=>1, "KB"=>1024, "K"=>1024, "MB"=>pow(1024,2), "M"=>pow(1024,2), "GB"=>pow(1024,3), "G"=>pow(1024,3), "TB"=>pow(1024,4), "T"=>pow(1024,4)); if( preg_match("/^([0-9]+)\w*([BKMGT]+)$/", $size, $matches) ) { // Number and measure as input if( array_key_exists($matches[2], $SIZE_LABEL) ) { return $matches[1]*$SIZE_LABEL[ $matches[2] ]; }else { // Unknown measure return false; } }elseif( preg_match("/^([0-9]+$/", $size) ) { // Only numbers, return input return $size; }else { // Unknown return false; } } function check_capitals($text) { // We allow max 2 + 1 per 4 characters capitals. $count = 0; for( $i=0; $i=65 AND ord(substr($text, $i, 1))<=90 ) $count++; } return (2+strlen(trim($text))/4)>$count; } ?>