- ./
- ./admin
- ./admin/javascript
- ./admin/templates
- ./admin/templates/bookings
- ./admin/templates/customers
- ./admin/templates/flights
- ./admin/templates/information
- ./admin/templates/pages
- ./css
- ./javascript
- ./templates
- ./templates/booking
- ./templates/manage
- ./templates/pages
./manage.cgi
#! /usr/local/bin/perl -w
use CGI::Carp qw(fatalsToBrowser);
use CGI qw(:standard);
use DBI;
use Time::localtime;
use POSIX;
require "common.pl";
$connection = mysql_connect();
$cookie = cookie('webair');
@cookie = split /-/, $cookie;
#check that the cookie contains a valid username
$query = "SELECT * FROM users WHERE user_id = '".$cookie[0]."' AND email = '".$cookie[1]."';";
$result = mysql_query($query);
if($result->rows>0)
{
while($row = $result->fetchrow_hashref)
{
#check password
$password = crypt($cookie[2], 'salt');
if($password eq $row->{password})
{
$login = 'true';
$newcookie = cookie(-name => "webair",
-value => $cookie[0].'-'.$cookie[1].'-'.$cookie[2],
-expires => "+20m",
);
$setcookie = 'true';
}
}
}
if($login ne "true")
{
$body = load_template('manage/login');
if(param(stage) eq "login")
{
$query = "SELECT * FROM users WHERE email = '".param(email)."';";
$result = mysql_query($query);
if($result->rows>0)
{
while($row = $result->fetchrow_hashref)
{
$password = crypt(param(password), 'salt');
if($password eq $row->{password})
{
#Login correct, set login cookie
$cookie = cookie(-name => "webair",
-value => $row->{user_id}.'-'.$row->{email}.'-'.param(password),
-expires => "+20m",
);
print "Location:http://****/webair/manage.cgi\r\n";
#Reload the page now the cookie has been set
print header(-cookie=>$cookie);
$header = 'true';
}
else
{
$body = str_replace('%%ERROR%%', '<b>Your email address or password was not correct</b>', $body);
}
}
}
else
{
$body = str_replace('%%ERROR%%', '<b>Your email address or password was not correct</b>', $body);
}
}
else
{
$body = str_replace('%%ERROR%%', '', $body);
}
}
else
{
if(!param(req))
{
$body = load_template("manage/home");
}
if(param(req)eq'flights')
{
if(param(func) eq "Cancel")
{
$message = 'You flight has been canceled.';
$query = "DELETE FROM bookings WHERE Booking_id = '".param(id)."' AND user_id = '".$cookie[0]."'";
mysql_query($query);
}
if(param(func) eq "Pay")
{
$message = 'Thank you for paying.';
$query = "UPDATE bookings SET payment_status = '1' WHERE Booking_id = '".param(id)."' AND user_id = '".$cookie[0]."'";
mysql_query($query);
}
$query = "SELECT bookings.*, flights.* FROM bookings, flights WHERE bookings.flight_id = flights.Flight_id AND User_id = '$cookie[0]';";
$result = mysql_query($query);
if($result->rows>0)
{
$body = $message.load_template('manage/flights_head');
while($row = $result->fetchrow_hashref)
{
$out .= load_template('manage/flight');
$out = str_replace('%BOOKINGID',$row->{Booking_id},$out);
$out = str_replace('%DEPARTUREPLACE' ,tc($row->{departure}), $out);
$out = str_replace('%ARRIVALPLACE' ,tc($row->{destination}), $out);
$out = str_replace('%DATE' ,makenormdate($row->{booking_date}), $out);
$out = str_replace('%DEPARTURETIME ' ,makenormtime($row->{departure_time}), $out);
$out = str_replace('%ARRIVALTIME' ,makenormtime($row->{arrival_time}), $out);
$out = str_replace('%TICKETS' ,$row->{seats}, $out);
$out = str_replace('%PRICE' ,$row->{total_price}, $out);
if($row->{payment_status}==1)
{
$out = str_replace('%STATUS' ,'Paid', $out);
$out = str_replace('%%PAY%%' ,'', $out);
}
else
{
$out = str_replace('%STATUS' ,'Unpaid', $out);
$out = str_replace('%%PAY%%' ,'<input type="submit" value="Pay" name="func">', $out);
}
}
$body = str_replace('%FLIGHTS', $out, $body);
}
}
if(param(req)eq'details')
{
$body= load_template("manage/detail_form");
if(!param(forenames))
{
$query = "SELECT * FROM users WHERE user_id= '".$cookie[0]."';";
$result = mysql_query($query);
while($row = $result->fetchrow_hashref)
{
$body= str_replace ('%%SURNAME%%', $row->{surname}, $body);
$body=str_replace('%%EMAIL%%', $row->{email}, $body);
$body=str_replace('%%ADDRESS_LINE_ONE%%',$row->{address_line_one}, $body);
$body=str_replace('%%ADDRESS_LINE_TWO%%',$row->{address_line_two}, $body);
$body=str_replace('%%COUNTY%%',$row->{county}, $body);
$body=str_replace('%%CITY%%',$row->{city}, $body);
$body=str_replace('%%POSTCODE%%',$row->{post_code}, $body);
$body=str_replace('%%HOMEPHONE%%',$row->{landline_number}, $body);
$body=str_replace('%%MOBILEPHONE%%',$row->{mobile_number}, $body);
$body=str_replace($row->{country}.'"%%SELECTED%%', $row->{country}.'" selected', $body);
$body = str_replace('%%FORENAMES%%', $row->{forename}, $body);
}
$body = str_replace('%%SELECTED%%', '', $body);
$body = str_replace('%%ERROR%%', '', $body);
}
else
{
if(!param(forenames) || param(forenames) =~ /[^[:space:]a-zA-Z]{1,}/)
{
$errors .= "<li>Please enter a valid forname.</li>";
}
if(!param(surname) || param(surname) =~ /[^[:space:]a-zA-Z]{1,}/)
{
$errors .= "<li>Please enter a valid surname.</li>";
}
if(!param(email) || param(email) =~ /[^a-z0-9A-Z@._-]{1,}/)
{
$errors .= "<li>Please enter a valid email address.</li>";
}
if(!param(address_line_one) || param(address_line_one) =~ /[:space:][^0-9][^a-z][^A-Z]{1,}/)
{
$errors .= "<li>Please enter a valid address.</li>";
}
if(!param(city) || param(city) =~ /[:space:][^a-z][^A-Z]{1,}/)
{
$errors .= "<li>Please enter a valid city.</li>";
}
if(!param(county) || param(county) =~ /[:space:][^a-z][^A-Z]{1,}/)
{
$errors .= "<li>Please enter a valid county.</li>";
}
if(!param(country) || param(country) eq "select")
{
$errors .= "<li>Please select a country.</li>";
}
if(!param(postcode) || param(postcode) =~ /[:space:][^a-z][^A-Z]{1,}/)
{
$errors .= "<li>Please enter a valid postcode.</li>";
}
if(!param(homephone) || param(homephone) =~ /[^0-9]{1,}/)
{
$errors .= "<li>Please enter a valid home phone number.</li>";
}
if(!param(mobilephone) || param(mobilephone) =~ /[^0-9]{1,}/)
{
$errors .= "<li>Please enter a valid mobile phone number.</li>";
}
if($errors)
{
$body = str_replace('%%ERROR%%', '<b>Please correct the followering:</b><ul>'.$errors.'</ul>', $body);
}
else
{
$query = "UPDATE users SET forename = '".param(forenames)."' WHERE user_id = '".$cookie[0]."'";
mysql_query($query);
$query = "UPDATE users SET surname = '".param(surname)."' WHERE user_id = '".$cookie[0]."'";
mysql_query($query);
$query = "UPDATE users SET address_line_one = '".param(address_line_one)."' WHERE user_id = '".$cookie[0]."'";
mysql_query($query);
$query = "UPDATE users SET address_line_two = '".param(address_line_two)."' WHERE user_id = '".$cookie[0]."'";
mysql_query($query);
$query = "UPDATE users SET city = '".param(city)."' WHERE user_id = '".$cookie[0]."'";
mysql_query($query);
$query = "UPDATE users SET county = '".param(county)."' WHERE user_id = '".$cookie[0]."'";
mysql_query($query);
$query = "UPDATE users SET country = '".param(country)."' WHERE user_id = '".$cookie[0]."'";
mysql_query($query);
$query = "UPDATE users SET post_code = '".param(postcode)."' WHERE user_id = '".$cookie[0]."'";
mysql_query($query);
$query = "UPDATE users SET landline_number = '".param(homephone)."' WHERE user_id = '".$cookie[0]."'";
mysql_query($query);
$query = "UPDATE users SET mobile_number = '".param(mobilephone)."' WHERE user_id = '".$cookie[0]."'";
mysql_query($query);
$query = "UPDATE users SET email = '".param(email)."' WHERE user_id = '".$cookie[0]."'";
mysql_query($query);
#The cookie information may now be invalid so we need to update it
$query = "SELECT * FROM users WHERE user_id= '".$cookie[0]."';";
$result = mysql_query($query);
while($row = $result->fetchrow_hashref)
{
$newcookie = cookie(-name => "webair",
-value => $row->{user_id}.'-'.$row->{email}.'-'.$cookie[2],
-expires => "+20m",
);
$setcookie = 'true';
}
$body = str_replace('%%ERROR%%', 'Your new information has been saved.', $body);
}
}
}
if(param(req)eq'card')
{
$body= load_template("manage/card_form");
if(!param(cardtype))
{
$query = "SELECT * FROM users WHERE user_id= '".$cookie[0]."';";
$result = mysql_query($query);
while($row = $result->fetchrow_hashref)
{
$body= str_replace ('%%NAMR%%', $row->{name_on_the_card}, $body);
$body=str_replace('%%NUMBER%%', $row->{card_number}, $body);
$body=str_replace($row->{card_type}.'"%%CSELECTED%%', $row->{card_type}.'" selected', $body);
@date = split '-', $row->{expire_date};
$body=str_replace($date[0].'"%%YSELECTED%%', $date[0].'" selected', $body);
$body=str_replace($date[1].'"%%MSELECTED%%', $date[1].'" selected', $body);
}
$body = str_replace('%%CSELECTED%%', '', $body);
$body = str_replace('%%YSELECTED%%', '', $body);
$body = str_replace('%%MSELECTED%%', '', $body);
$body = str_replace('%%ERROR%%', '', $body);
}
else
{
if(!param(number) || param(number) =~ /[:space:][0-9]/)
{
$errors .= "<li>Please enter a valid card number.</li>";
}
if(!param(namr) || param(namr) =~ /[:space:]-[^a-z][^A-Z]/)
{
$errors .= "<li>Please enter your name as it appears on the card.</li>";
}
if(param(cardtype) eq "select")
{
$errors .= "<li>Please select a card type.</li>";
}
if(param(expire_month) eq "--")
{
$errors .= "<li>Please select the month your card expires.</li>";
}
if(param(expire_year) eq "----")
{
$errors .= "<li>Please select the year your card expires.</li>";
}
if($errors)
{
$body = str_replace('%%ERROR%%', '<b>Please correct the followering:</b><ul>'.$errors.'</ul>', $body);
}
else
{
$query = "UPDATE users SET card_number = '".param(number)."' WHERE user_id = '".$cookie[0]."'";
mysql_query($query);
$query = "UPDATE users SET name_on_the_card = '".param(namr)."' WHERE user_id = '".$cookie[0]."'";
mysql_query($query);
$query = "UPDATE users SET card_type = '".param(cardtype)."' WHERE user_id = '".$cookie[0]."'";
mysql_query($query);
$query = "UPDATE users SET expire_date = '".param(expire_year)."-".param(expire_month)."' WHERE user_id = '".$cookie[0]."'";
mysql_query($query);
$body = str_replace('%%ERROR%%', 'Your new information has been saved.', $body);
}
}
}
if(param(req)eq'password')
{
$body= load_template("manage/password_form");
if(!param(btn))
{
$body = str_replace('%%ERROR%%', '', $body);
}
else
{
if(!param(password) || !param(repassword))
{
$errors .= "<li>Please enter and re-enter your password.</li>";
}
if(param(password) ne param(repassword))
{
$errors .= "<li>Please make sure that your passwords match.</li>";
}
if($errors)
{
$body = str_replace('%%ERROR%%', '<b>Please correct the followering:</b><ul>'.$errors.'</ul>', $body);
}
else
{
$password = crypt(param(password), 'salt');
$query = "UPDATE users SET password = '".$password."' WHERE user_id = '".$cookie[0]."'";
mysql_query($query);
$newcookie = cookie(-name => "webair",
-value => $cookie[0].'-'.$cookie[1].'-'.param(password),
-expires => "+20m",
);
$setcookie = 'true';
$body = str_replace('%%ERROR%%', 'Your new information has been saved.', $body);
}
}
}
}
foreach $value (@parameters)
{
if($value ne "country")
{
$body = str_replace('%%'.uc($value).'%%', param($value), $body);
}
else
{
$body = str_replace(param(country).'"%%SELECTED%%', param(country).'" selected', $body);
}
}
$body = str_replace(param(cardtype).'"%%CSELECTED%%', param(cardtype).'" selected', $body);
$body = str_replace(param(expire_year).'"%%YSELECTED%%', param(expire_year).'" selected', $body);
$body = str_replace(param(expire_month).'"%%MSELECTED%%', param(expire_month).'" selected', $body);
$body = str_replace('%%CSELECTED%%', '', $body);
$body = str_replace('%%YSELECTED%%', '', $body);
$body = str_replace('%%MSELECTED%%', '', $body);
$body = str_replace('%%SELECTED%%', '', $body);
if($setcookie eq 'true')
{
#Reload the page now the cookie has been set
print header(-cookie=>$newcookie);
$header = 'true';
}
if($header ne 'true')
{
print header;
}
$head = load_template("head");
$head = str_replace('%%BODY%%', '', $head);
print $head;
print $body;
print load_template("foot");
mysql_disconnect();