From e211bb797ec6fb6b91e750b3e67bc544d4de8e68 Mon Sep 17 00:00:00 2001 From: joeyajames Date: Tue, 11 Nov 2014 20:20:05 -0800 Subject: [PATCH] Working website, Rev 1. Register user, login, chg pw, reset pw, view accounts, all work. Can't create a new account yet. --- f8l_exception/artwork/f8l_exception_logo.png | Bin 0 -> 12635 bytes f8l_exception/artwork/vault.jpg | Bin 0 -> 25069 bytes f8l_exception/change_password.php | 99 +++++++++ f8l_exception/deposit.php | 70 +++++++ f8l_exception/includes/inc_dbConnect.php | 10 + .../includes/inc_generatePassword.php | 7 + .../includes/inc_getNumberOfAccounts.php | 18 ++ f8l_exception/includes/inc_header.php | 1 + f8l_exception/includes/inc_text_menu.php | 17 ++ f8l_exception/includes/inc_validateEmail.php | 27 +++ f8l_exception/includes/inc_validateInput.php | 20 ++ f8l_exception/includes/inc_validateLogin.php | 34 ++++ .../includes/inc_validatePassword.php | 60 ++++++ .../includes/inc_validateUserName.php | 48 +++++ f8l_exception/index.php | 23 +++ f8l_exception/loan_payment.php | 124 ++++++++++++ f8l_exception/login.php | 71 +++++++ f8l_exception/logout.php | 22 ++ f8l_exception/my_accounts.php | 64 ++++++ f8l_exception/new_account.php | 103 ++++++++++ f8l_exception/new_customer.php | 116 +++++++++++ f8l_exception/new_loan.php | 124 ++++++++++++ f8l_exception/reset_password.php | 120 +++++++++++ f8l_exception/view_statement.php | 85 ++++++++ f8l_exception/withdraw.php | 70 +++++++ proj.txt | 189 ++++++++++++------ 26 files changed, 1464 insertions(+), 58 deletions(-) create mode 100644 f8l_exception/artwork/f8l_exception_logo.png create mode 100644 f8l_exception/artwork/vault.jpg create mode 100644 f8l_exception/change_password.php create mode 100644 f8l_exception/deposit.php create mode 100644 f8l_exception/includes/inc_dbConnect.php create mode 100644 f8l_exception/includes/inc_generatePassword.php create mode 100644 f8l_exception/includes/inc_getNumberOfAccounts.php create mode 100644 f8l_exception/includes/inc_header.php create mode 100644 f8l_exception/includes/inc_text_menu.php create mode 100644 f8l_exception/includes/inc_validateEmail.php create mode 100644 f8l_exception/includes/inc_validateInput.php create mode 100644 f8l_exception/includes/inc_validateLogin.php create mode 100644 f8l_exception/includes/inc_validatePassword.php create mode 100644 f8l_exception/includes/inc_validateUserName.php create mode 100644 f8l_exception/index.php create mode 100644 f8l_exception/loan_payment.php create mode 100644 f8l_exception/login.php create mode 100644 f8l_exception/logout.php create mode 100644 f8l_exception/my_accounts.php create mode 100644 f8l_exception/new_account.php create mode 100644 f8l_exception/new_customer.php create mode 100644 f8l_exception/new_loan.php create mode 100644 f8l_exception/reset_password.php create mode 100644 f8l_exception/view_statement.php create mode 100644 f8l_exception/withdraw.php diff --git a/f8l_exception/artwork/f8l_exception_logo.png b/f8l_exception/artwork/f8l_exception_logo.png new file mode 100644 index 0000000000000000000000000000000000000000..e6a79473c46a8bbcab0db21755e26491bb418c8d GIT binary patch literal 12635 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 JPDHLkV1m4AvQz*7 literal 0 HcmV?d00001 diff --git a/f8l_exception/artwork/vault.jpg b/f8l_exception/artwork/vault.jpg new file mode 100644 index 0000000000000000000000000000000000000000..699fdbeb4d97df88c6e6451e41f77bd85cae04b8 GIT binary patch literal 25069 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 GfdAPZ)~{0l literal 0 HcmV?d00001 diff --git a/f8l_exception/change_password.php b/f8l_exception/change_password.php new file mode 100644 index 0000000..5463a47 --- /dev/null +++ b/f8l_exception/change_password.php @@ -0,0 +1,99 @@ + + + + + + + F8L Exception Online Bank | Change Password + + +

Change Password


+ + + +Unable to connect to the database server.

" . "

Error code " . mysql_errno() . ": " . mysql_error() . "

"; + + else { + if (!@mysql_select_db($db_name, $db_connect)) + echo "

Connection error. Please try again later.

"; + else { + $sql = "UPDATE user SET password='$newPassword' WHERE username='$userName'"; + $result = mysql_query($sql); + } + mysql_close($db_connect); + } + return ($retval); +} + +function displayForm($userName) { + global $errorMessage; + echo $errorMessage; + ?> +
+

User Name:

+

Old Password:

+

New Password:

+

Confirm New Password:

+ +

+
+

+ + "; + $errorCount++; + } + if ($errorCount == 0) + $showForm = FALSE; + else + $showForm = TRUE; +} + +if ($showForm == TRUE) { + if ($errorCount > 0) // if there were errors + $errorMessage .= "

Please re-enter the form information below.

\n"; + displayForm ($userName); +} +else { + // encrypt password here + + // change password in db + changePassword($userName,$oldPassword,$newPassword); + echo "

\nPassword has been changed!.



\n"; + include 'includes/inc_text_menu.php'; +} +?> + + + \ No newline at end of file diff --git a/f8l_exception/deposit.php b/f8l_exception/deposit.php new file mode 100644 index 0000000..48a7e1c --- /dev/null +++ b/f8l_exception/deposit.php @@ -0,0 +1,70 @@ + + + + + + + F8L Exception Online Bank | Deposit + + +

Deposit -- under construction


+ + + + +

Enter your User Name and Password.

+ +
+

User Name

+

Password

+

+
+

+ + 0) { // errors logged + displayForm(); + } +else { + if ($ShowForm == TRUE) { + displayForm(); // new page load + } + else { // login approved + $_SESSION['login'] = $Login; + //header("location:my_documents.php"); + ?> + + + \ No newline at end of file diff --git a/f8l_exception/includes/inc_dbConnect.php b/f8l_exception/includes/inc_dbConnect.php new file mode 100644 index 0000000..7043044 --- /dev/null +++ b/f8l_exception/includes/inc_dbConnect.php @@ -0,0 +1,10 @@ + \ No newline at end of file diff --git a/f8l_exception/includes/inc_generatePassword.php b/f8l_exception/includes/inc_generatePassword.php new file mode 100644 index 0000000..19edb5b --- /dev/null +++ b/f8l_exception/includes/inc_generatePassword.php @@ -0,0 +1,7 @@ + \ No newline at end of file diff --git a/f8l_exception/includes/inc_getNumberOfAccounts.php b/f8l_exception/includes/inc_getNumberOfAccounts.php new file mode 100644 index 0000000..09a9eb4 --- /dev/null +++ b/f8l_exception/includes/inc_getNumberOfAccounts.php @@ -0,0 +1,18 @@ + \ No newline at end of file diff --git a/f8l_exception/includes/inc_header.php b/f8l_exception/includes/inc_header.php new file mode 100644 index 0000000..97bae72 --- /dev/null +++ b/f8l_exception/includes/inc_header.php @@ -0,0 +1 @@ +F8L Exception Online Bank \ No newline at end of file diff --git a/f8l_exception/includes/inc_text_menu.php b/f8l_exception/includes/inc_text_menu.php new file mode 100644 index 0000000..4ea5087 --- /dev/null +++ b/f8l_exception/includes/inc_text_menu.php @@ -0,0 +1,17 @@ +Home | +New Customer | +Login | +Change Password | +Reset Password | +Logout +
+New Account | +My Accounts | +Deposit | +Withdraw | +View Statement +
+New Loan | +Make Loan Payment +
+Admin \ No newline at end of file diff --git a/f8l_exception/includes/inc_validateEmail.php b/f8l_exception/includes/inc_validateEmail.php new file mode 100644 index 0000000..26112f9 --- /dev/null +++ b/f8l_exception/includes/inc_validateEmail.php @@ -0,0 +1,27 @@ + \ No newline at end of file diff --git a/f8l_exception/includes/inc_validateInput.php b/f8l_exception/includes/inc_validateInput.php new file mode 100644 index 0000000..fe54c9e --- /dev/null +++ b/f8l_exception/includes/inc_validateInput.php @@ -0,0 +1,20 @@ +\n"; + $errorCount++; + $retval = ""; + } + else + { + // only clean up the input if it isn't empty + $retval = trim($data); + $retval = stripslashes($retval); + } + return ($retval); +} +?> \ No newline at end of file diff --git a/f8l_exception/includes/inc_validateLogin.php b/f8l_exception/includes/inc_validateLogin.php new file mode 100644 index 0000000..3cd315f --- /dev/null +++ b/f8l_exception/includes/inc_validateLogin.php @@ -0,0 +1,34 @@ +\n"; + } + mysql_close($db_connect); + return $myusername; +} +?> \ No newline at end of file diff --git a/f8l_exception/includes/inc_validatePassword.php b/f8l_exception/includes/inc_validatePassword.php new file mode 100644 index 0000000..7f39223 --- /dev/null +++ b/f8l_exception/includes/inc_validatePassword.php @@ -0,0 +1,60 @@ +\n"; + $errorCount++; + $retval = ""; + } + elseif ($data !== $data2) + { + $errorMessage .= "Passwords do not match.
\n"; + $errorCount++; + $retval = ""; + } + elseif (strlen($data) < 8) + { + $errorMessage .= "Password must be at least 8 characters, + must contain at least one upper case letter, at least one lower case letter, + at least one number, and at least one non-alphanumeric character.
\n"; + $errorCount++; + $retval = ""; + } + elseif (!containsUpper($data) or !containsLower($data) or !containsNumber($data) or + !containsOther($data) or containsSpaces($data)) + { + $errorMessage .= "Password must be at least 8 characters, + must contain at least one upper case letter, at least one lower case letter, + at least one number, and at least one non-alphanumeric character.
\n"; + $errorCount++; + $retval = ""; + } + else + { + // only clean up the input if it isn't empty + $retval = trim($data); + $retval = stripslashes($retval); + } + return ($retval); +} +?> \ No newline at end of file diff --git a/f8l_exception/includes/inc_validateUserName.php b/f8l_exception/includes/inc_validateUserName.php new file mode 100644 index 0000000..23dbfdd --- /dev/null +++ b/f8l_exception/includes/inc_validateUserName.php @@ -0,0 +1,48 @@ +\n"; + $errorCount++; + $retval = ""; + } + + elseif (strlen($data) < 4 || strlen($data) > 30) { + $errorMessage .= $fieldName . " must be at least 4 and at most 30 characters.
\n"; + $errorCount++; + } + + else { + include 'includes/inc_dbConnect.php'; + + // Select database. + if ($db_connect === FALSE) + echo "

Unable to connect to the database server.

" . "

Error code " . mysql_errno() . ": " . mysql_error() . "

"; + + else { + if (!@mysql_select_db($db_name, $db_connect)) + echo "

Connection error. Please try again later.

"; + else { + $SQLstring = "SELECT * FROM user WHERE username = '$data'"; + + $QueryResult = @mysql_query($SQLstring, $db_connect); + if (mysql_num_rows($QueryResult) > 0) { + //echo "Please select a different User Name.
\n"; + $errorMessage .= "Please select a different User Name.
\n"; + $errorCount++; + $retval = ""; + } + else { + $retval = trim($data); + $retval = stripslashes($retval); + } + } + mysql_close($db_connect); + } + } + return ($retval); +} +?> \ No newline at end of file diff --git a/f8l_exception/index.php b/f8l_exception/index.php new file mode 100644 index 0000000..74950a5 --- /dev/null +++ b/f8l_exception/index.php @@ -0,0 +1,23 @@ + + + + + + + F8L Exception Online Bank | Home + + +

Welcome to F8L Exception Online Bank!


+ + + +

Secure online banking with zero fees

+ +

What? You're looking for a secure and reliable online bank to stash your cash in that won't bury you with fees? The F8L Exception Online Bank has it all. +It is free, quick and easy to set up an account, and you can access all your funds conveniently online.

+
+ \ No newline at end of file diff --git a/f8l_exception/loan_payment.php b/f8l_exception/loan_payment.php new file mode 100644 index 0000000..840b96e --- /dev/null +++ b/f8l_exception/loan_payment.php @@ -0,0 +1,124 @@ + + + + + + + F8L Exception Online Bank | Make a Loan Payment + + +

Make a Loan Payment -- Under construction


+ + + +Unable to connect to the database server.

" . "

Error code " . mysql_errno() . ": " . mysql_error() . "

"; + + else { + if (!@mysql_select_db($db_name, $db_connect)) + echo "

Connection error. Please try again later.

"; + else { + $today = date("Ymd"); + $TableName = "account"; + $SQLstring = "INSERT INTO + $TableName (login,password,firstName,lastName,email,active,dateOpened) + VALUES ('$Login','$Password','$First','$Last','$Email',1,'$today')"; + + $QueryResult = @mysql_query($SQLstring, $db_connect); + } + mysql_close($db_connect); + } + return ($retval); +} + +function displayForm($First, $Last, $Email, $Login) { + global $errorMessage; + echo $errorMessage; + ?> +
+

First Name:

+

Last Name:

+

Your E-Mail:

+

User Name:

+

Password:

+

Confirm Password:

+ +

+
+

+ + "; + $errorCount++; + } + if ($errorCount == 0) + $showForm = FALSE; + else + $showForm = TRUE; +} + +if ($showForm == TRUE) { + if ($errorCount > 0) // if there were errors + $errorMessage .= "

Please re-enter the form information below.

\n"; + displayForm ($First, $Last, $Email, $Login); +} +else { + // encrypt password + //$options = array('cost' => 11); + //$password = password_hash($password, PASSWORD_BCRYPT, $options); + + // create account in db + createNewAccount($First,$Last,$Email,$Login,$Password); + + // send confirmation email + $SenderAddress = "$First <$Email>"; + $Headers = "From: $SenderAddress\nCC:$SenderAddress\n"; + + $from = "PVault"; // sender + $subject = "PVault Registration Confirmation"; + $message = $First . ",\nYou have successfully registered for PVault. Now you can Store your documents in the cloud, securely locked inside your own Personal Vault.\n\nThe PVault Team"; + // message lines should not exceed 70 characters (PHP rule), so wrap it + $message = wordwrap($message, 70); + // send mail + mail($Email,$subject,$message,"From: $from\n"); + + echo "

" . $First . "\nyour account has been created. Welcome to PVault!.



\n"; + include 'includes/inc_text_menu.php'; +} +?> + + + \ No newline at end of file diff --git a/f8l_exception/login.php b/f8l_exception/login.php new file mode 100644 index 0000000..e9117fe --- /dev/null +++ b/f8l_exception/login.php @@ -0,0 +1,71 @@ + + + + + + + F8L Exception Online Bank | Login + + +

Login


+ + + + +

Enter your User Name and Password.

+ +
+

User Name

+

Password

+

+
+

+ + 0) { // errors logged + displayForm(); + } +else { + if ($ShowForm == TRUE) { + displayForm(); // new page load + } + else { // login approved + $_SESSION['login'] = $userName; + //header("location:my_documents.php"); + ?> + + + \ No newline at end of file diff --git a/f8l_exception/logout.php b/f8l_exception/logout.php new file mode 100644 index 0000000..6f7661f --- /dev/null +++ b/f8l_exception/logout.php @@ -0,0 +1,22 @@ + + + + + + + + + + + + + + \ No newline at end of file diff --git a/f8l_exception/my_accounts.php b/f8l_exception/my_accounts.php new file mode 100644 index 0000000..1ef5b55 --- /dev/null +++ b/f8l_exception/my_accounts.php @@ -0,0 +1,64 @@ + + + + + + + F8L Exception Online Bank | My Accounts + + +

My Accounts


+ + + +Unable to connect to the database server.

" . "

Error code " . mysql_errno() . ": " . mysql_error() . "

"; + + else { + if (!@mysql_select_db($db_name, $db_connect)) + echo "

Connection error. Please try again later.

"; + else { + $SQLstring = "SELECT * from account + WHERE username='$userName'"; + + $QueryResult = @mysql_query($SQLstring, $db_connect); + if (mysql_num_rows($QueryResult) == 0) + echo "

You have no accounts open.

"; + else { + echo ""; + echo " + + + + "; + while (($Row = mysql_fetch_assoc($QueryResult)) !== FALSE) + { + echo ""; + echo ""; + echo ""; + } + echo "
Account TypeAccount NumberBalance
{$Row['accounttype']}{$Row['accountid']}{$Row['balance']}


"; + } + } + mysql_close($db_connect); + } + return ($retval); +} + +$userName = ""; +$userName = $_SESSION['login']; +echo "User Name: ".$userName."
"; +showAccounts($userName); + +include 'includes/inc_text_menu.php'; + +?> + + + \ No newline at end of file diff --git a/f8l_exception/new_account.php b/f8l_exception/new_account.php new file mode 100644 index 0000000..d274b94 --- /dev/null +++ b/f8l_exception/new_account.php @@ -0,0 +1,103 @@ + + + + + + + F8L Exception Online Bank | Open New Account + + +

Open a New Account


+ + + +Unable to connect to the database server.

" . "

Error code " . mysql_errno() . ": " . mysql_error() . "

"; + + else { + if (!@mysql_select_db($db_name, $db_connect)) + echo "

Connection error. Please try again later.

"; + else { + $today = date("Ymd"); + $TableName = "account"; + $SQLstring = "INSERT INTO + $TableName (login,password,firstName,lastName,email,active,dateOpened) + VALUES ('$Login','$Password','$First','$Last','$Email',1,'$today')"; + + $QueryResult = @mysql_query($SQLstring, $db_connect); + } + mysql_close($db_connect); + } + return ($retval); +} + +function displayForm($First, $Last, $Email, $Login) { + global $errorMessage; + echo $errorMessage; + + // figure out how to make a checkbox for savings or checking in this form. + ?> +
+

Initial Deposit:

+

Account Type:

+ +

+
+

+ + 1) + echo "You already have two accounts open. Each user is limited to two accounts."; +else { + $showForm = TRUE; + if (isset($_POST['Submit'])) { + $balance = validateInput($_POST['balance'],"Initial Deposit"); + $accountType = validateInput($_POST['accountType'],"Account Type"); +// gotta finish coding all this stuff below. + if($Login == $Password) { + $errorMessage .= "Password cannot be the same as user name
"; + $errorCount++; + } + if ($errorCount == 0) + $showForm = FALSE; + else + $showForm = TRUE; + } + + if ($showForm == TRUE) { + if ($errorCount > 0) // if there were errors + $errorMessage .= "

Please re-enter the form information below.

\n"; + displayForm (); + } + else { + // create account in db + createNewAccount($userName,$balance,$accountType); + + echo "

Your account has been created!.



\n"; + } +} +include 'includes/inc_text_menu.php'; +?> + + + \ No newline at end of file diff --git a/f8l_exception/new_customer.php b/f8l_exception/new_customer.php new file mode 100644 index 0000000..309c17b --- /dev/null +++ b/f8l_exception/new_customer.php @@ -0,0 +1,116 @@ + + + + + + + F8L Exception Online Bank | Register a New Customer + + +

Register a New Customer


+ + + +Unable to connect to the database server.

" . "

Error code " . mysql_errno() . ": " . mysql_error() . "

"; + + else { + if (!@mysql_select_db($db_name, $db_connect)) + echo "

Connection error. Please try again later.

"; + else { + $errorMessage .= "Inserting new user into db."; + echo "Inserting new user into db. $userName $pw $email"; + $SQLstring = "INSERT INTO + user (username,password,email) + VALUES ('$userName','$pw','$email')"; + + $QueryResult = @mysql_query($SQLstring, $db_connect); + } + mysql_close($db_connect); + } + return ($retval); +} + +function displayForm($userName,$email) { + global $errorMessage; + echo $errorMessage; + ?> +
+

User Name:

+

Email:

+

Password:

+

Confirm Password:

+ +

+
+

+ + "; + $errorCount++; + } + if ($errorCount == 0) + $showForm = FALSE; + else + $showForm = TRUE; +} + +if ($showForm == TRUE) { + if ($errorCount > 0) // if there were errors + $errorMessage .= "

Please re-enter the form information below.

\n"; + displayForm ($userName,$email); +} +else { + // should add password encryption code here + + // create account in db + createNewCustomer($userName, $password, $email); + + // send confirmation email + $SenderAddress = "F8L Exception Bank Customer <$email>"; + $Headers = "From: $SenderAddress\nCC:$SenderAddress\n"; + + $from = "F8L Exception Online Bank"; // sender + $subject = "F8L Exception Online Bank New Customer Confirmation"; + $message = "You have successfully registered as a new customer for F8L Exception Online Bank. We hope you will enjoy our service and our lack of fees!\n\nThe F8L Exception Online Bank"; + // message lines should not exceed 70 characters (PHP rule), so wrap it + $message = wordwrap($message, 70); + // send mail + mail($email,$subject,$message,"From: $from\n"); + + echo "

You have been set up as a new customer. Welcome to F8L Exception Online Bank!.



\n"; + include 'includes/inc_text_menu.php'; +} +?> + + + \ No newline at end of file diff --git a/f8l_exception/new_loan.php b/f8l_exception/new_loan.php new file mode 100644 index 0000000..109430b --- /dev/null +++ b/f8l_exception/new_loan.php @@ -0,0 +1,124 @@ + + + + + + + F8L Exception Online Bank | New Loan + + +

New Loan -- Under construction


+ + + +Unable to connect to the database server.

" . "

Error code " . mysql_errno() . ": " . mysql_error() . "

"; + + else { + if (!@mysql_select_db($db_name, $db_connect)) + echo "

Connection error. Please try again later.

"; + else { + $today = date("Ymd"); + $TableName = "account"; + $SQLstring = "INSERT INTO + $TableName (login,password,firstName,lastName,email,active,dateOpened) + VALUES ('$Login','$Password','$First','$Last','$Email',1,'$today')"; + + $QueryResult = @mysql_query($SQLstring, $db_connect); + } + mysql_close($db_connect); + } + return ($retval); +} + +function displayForm($First, $Last, $Email, $Login) { + global $errorMessage; + echo $errorMessage; + ?> +
+

First Name:

+

Last Name:

+

Your E-Mail:

+

User Name:

+

Password:

+

Confirm Password:

+ +

+
+

+ + "; + $errorCount++; + } + if ($errorCount == 0) + $showForm = FALSE; + else + $showForm = TRUE; +} + +if ($showForm == TRUE) { + if ($errorCount > 0) // if there were errors + $errorMessage .= "

Please re-enter the form information below.

\n"; + displayForm ($First, $Last, $Email, $Login); +} +else { + // encrypt password + //$options = array('cost' => 11); + //$password = password_hash($password, PASSWORD_BCRYPT, $options); + + // create account in db + createNewAccount($First,$Last,$Email,$Login,$Password); + + // send confirmation email + $SenderAddress = "$First <$Email>"; + $Headers = "From: $SenderAddress\nCC:$SenderAddress\n"; + + $from = "PVault"; // sender + $subject = "PVault Registration Confirmation"; + $message = $First . ",\nYou have successfully registered for PVault. Now you can Store your documents in the cloud, securely locked inside your own Personal Vault.\n\nThe PVault Team"; + // message lines should not exceed 70 characters (PHP rule), so wrap it + $message = wordwrap($message, 70); + // send mail + mail($Email,$subject,$message,"From: $from\n"); + + echo "

" . $First . "\nyour account has been created. Welcome to PVault!.



\n"; + include 'includes/inc_text_menu.php'; +} +?> + + + \ No newline at end of file diff --git a/f8l_exception/reset_password.php b/f8l_exception/reset_password.php new file mode 100644 index 0000000..2984823 --- /dev/null +++ b/f8l_exception/reset_password.php @@ -0,0 +1,120 @@ + + + + + + + F8L Exception Online Bank | Reset Password + + +

Reset Password


+ + + +Unable to connect to the database server.

" . "

Error code " . mysql_errno() . ": " . mysql_error() . "

"; + else { + if (!@mysql_select_db($db_name, $db_connect)) + echo "

Connection error. Please try again later.

"; + else { + // check login for validity + $sql = "SELECT * FROM user WHERE username='$userName' and email='$email'"; + $result = mysql_query($sql); + + // Mysql_num_row is counting table rows + $count = mysql_num_rows($result); + + // If result matched $userName, table row must be 1 row. Get Email address, and Reset PW + if($count == 1){ + $row = mysql_fetch_row($result); + //$email = $row[5]; + $newPassword = generatePassword(); + $sql = "UPDATE user SET password='$newPassword' WHERE username='$userName'"; + $result = mysql_query($sql); + } + else { + $errorCount++; + $errorMessage .= "Account not found. Please re-enter your User Name and Email.
\n"; + } + mysql_close($db_connect); + + return $newPassword; + } + } +} +function displayForm() { + global $errorMessage; + echo $errorMessage; + ?> +
+

User Name:

+

Email:

+

+
+

+ + 0) // if there were errors + $errorMessage .= "

Please re-enter the form information below.

\n"; + displayForm (); +} +else { + $newPassword = resetPassword($userName); + if ($errorCount > 0) { // if there were errors + $errorMessage .= "

Please re-enter the form information below.

\n"; + displayForm (); + } + else { + echo "

\nPassword has been reset!. A new password has been emailed to you.



\n"; + include 'includes/inc_text_menu.php'; + + // send confirmation email + $SenderAddress = "<$email>"; + $Headers = "From: $SenderAddress\nCC:$SenderAddress\n"; + + $from = "F8L Exception Online"; // sender + $subject = "F8L Exception Online Bank Password Reset"; + $message = "Your new password is $newPassword\nWe recommend you login using this password and change it to a new password of your choosing.\n\nF8L Exception Online Bank"; + // message lines should not exceed 70 characters (PHP rule), so wrap it + $message = wordwrap($message, 70); + // send mail + mail($email,$subject,$message,"From: $from\n"); + } +} +?> + + + \ No newline at end of file diff --git a/f8l_exception/view_statement.php b/f8l_exception/view_statement.php new file mode 100644 index 0000000..87f2c3a --- /dev/null +++ b/f8l_exception/view_statement.php @@ -0,0 +1,85 @@ + + + + + + + F8L Exception Online Bank | View Statement + + +

View Statement -- Under construction


+ + + +Unable to connect to the database server.

" . "

Error code " . mysql_errno() . ": " . mysql_error() . "

"; + + else { + if (!@mysql_select_db($db_name, $db_connect)) + echo "

No data found.

"; + else { + + $TableName = "document"; + $SQLstring = "SELECT * FROM $TableName WHERE login = '$Login' and active = 1"; + + $QueryResult = @mysql_query($SQLstring, $db_connect); + if (mysql_num_rows($QueryResult) == 0) + echo "

No data found .

"; + else + { + echo ""; + echo " + + + + + + + "; + while (($Row = mysql_fetch_assoc($QueryResult)) !== FALSE) + { + echo ""; + echo ""; + echo ""; + echo ""; + ?> + +

"; + } + mysql_free_result($QueryResult); + } + } + include 'includes/inc_text_menu.php'; +} +$Login = ""; +$Login = $_SESSION['login']; +if ($Login == "") { // redirect to login page if not logged in + ?> + + + \ No newline at end of file diff --git a/f8l_exception/withdraw.php b/f8l_exception/withdraw.php new file mode 100644 index 0000000..49f8a1b --- /dev/null +++ b/f8l_exception/withdraw.php @@ -0,0 +1,70 @@ + + + + + + + F8L Exception Online Bank | Withdraw + + +

Withdraw -- Under construction


+ + + + +

Enter your User Name and Password.

+ + +

User Name

+

Password

+

+ +

+ + 0) { // errors logged + displayForm(); + } +else { + if ($ShowForm == TRUE) { + displayForm(); // new page load + } + else { // login approved + $_SESSION['login'] = $Login; + //header("location:my_documents.php"); + ?> + + + \ No newline at end of file diff --git a/proj.txt b/proj.txt index 66d4319..eae6759 100644 --- a/proj.txt +++ b/proj.txt @@ -4,54 +4,59 @@ Project Title: Online Banking System Link to Github: https://github.com/dhurng/cs157AOnlineBanking/edit/master/proj.txt Database Schema -1. Users {id, username, password, checkingAmount, savingsAmount} - int id: autogenerated id number. - String username: Customer's account username. - String password: Customer's account password. - boolean checkingAmount: yes if customer has a checking account. - boolean savingsAmount: yes if customer has a savings account. +1. User {userId, username, password, loanId, accountId1, accountId2} + int userId: autogenerated user id number. + String username: Customer's username. + String password: Customer's password. + int loanId: loan number, if user has a loan. + int accountId1: account number for first account + int accountId2: account number for second account -2. Transfer {id1, id2, amount, checking, savings} - int id1: sender. - int id2: recipient. +2. Transfer {id1, id2, amount} + int id1: sender account. + int id2: recipient account. double amount: amount to transfer. - boolean checking: true if amount is coming from checking account. - boolean savings: true if amount is coming from savings account. -3. Loan {id, date, overdue, amount, balance} - int id: sender. - Date date: date of payment. - boolean overdue: true if payment is late. +3. Loan {loanId, userId, amount, paymentDueDate, paymentDate balance} + int loanId: loan number. + int userId: user who owns this loan. double amount: amount to pay. + Date paymentDueDate: date payment is due + Date paymentDate: date most recent payment was made double balance: remaining balance. - -4. Checking {id, balance, amount} - int id: customer id. - double balance: checking balance. - double amount: amount to withdraw or deposit. -5. Savings {id, balance, interestRate, amount} - int id: customer id. - double balance: savings balance. - double interestRage: interest rate to add to balance. - double amount: amount to withdraw or deposit. +4. Account {accountId, userId, balance, interestRate, accountType} + int accountId: account number. + int userId: user who owns this account. + double balance: account balance. + double interestRate: interest rate to add to balance. + String accountType: account type - savings, checking + +5. Transaction {userId, accountId, accountType, date, amount, transactionType, toId} + int userId: customer id + int accountId: account number or loan number + String accountType: checking, savings, loan + Date date: date of transaction + double amount: transaction amount + String transactionType: transaction type - deposit, withdraw, interest, payment + int toId: to customer id, for transfers Functional Requirements -1. Customer can register to create an account. -2. Customer can close their account. -3. Customer can log into their account. -4. Customer can log out of their account. +1. Customer can register to create a new user. +2. Customer can open a new account. +3. Customer can close their account. +4. Customer can log into their account. 5. Customer can change password. 6. Customer can reset their password. -7. Customer can check their checking account balance. -8. Customer can check their savings account balance. -9. Customer can withdraw from their accounts. -10. Customer can deposit to their accounts. +7. Customer can check their checking or savings account balance. +8. Customer can check their loan balance. +9. Customer can withdraw from their checking or savings accounts. +10. Customer can deposit to their checking or savings accounts. 11. Customer can view their statements from each account (Checking and Savings). -12. Customer can pay their credit card bill. +12. Customer can pay their loan payment. 13. Administrator can reset non-Admin password. 14. Administrator can view customers who have a zero balance in their checking and/or savings account. -15. Administrator can view who is a late paying their credit card bill. +15. Administrator can view who is a late paying their loan payment. Requirements Functionalities //Send Query to Database @@ -62,47 +67,115 @@ function queryMysql($query){ return $result; } -// Customer Registration -function registration ($username, $password, $checkAmount, $savingsAmount){ - $result = queryMysql("INSERT INTO Users(username, password, checkingAmount, savingsAmount) - VALUES ('$username', '$password', '$checkAmount', '$savingsAmount'"); +// 1. Customer Registers to Create new User +function registerUser ($username, $password){ + $result = queryMysql("INSERT INTO User(username, password) + VALUES ('$username', '$password'", $link) or die ("Database Error"); } -// Customer Account Cancellation -function cancelAccount ($username){ - $result = queryMysql("DELETE FROM Users WHERE username = '$username'"); +//2. Customer opens a New Account +function registerAccount ($userid, $initialAmount, $accountType){ + $result = queryMysql("INSERT INTO Account(userId, balance, accountType) + VALUES ('$userId', '$initialAmount', '$accountType'", $link) or die ("Database Error"); + $result = queryMysql("INSERT INTO Transaction(userId, accountId, accountType, amount, date) + VALUES ('$userId', 'accountId', '$accountType', '$initialAmount', '$today'", $link) or die ("Database Error"); + +// 3. Customer Closes Account +function cancelAccount ($userId, $accountId){ + $result = queryMysql("DELETE FROM Account WHERE userId='$userId' and accountId='$accountId'", $link) + or die ("Database Error"); } -// Customer Log In +// 4. Customer Logs In function userLogIn ($username, $password){ - $result = queryMysql("SELECT * FROM Users WHERE username='$username' and password='$password'"); + $result = queryMysql("SELECT * FROM User WHERE username='$username' and password='$password'", $link) or die ("Database Error"); } -// Customer Change Password +// 5. Customer Changes Password function checkPassword($username, $oldPass, $newPass){ - $result = queryMysql("UPDATE Users SET password = '$newPass' WHERE old.password='$oldPass'"); + $result = queryMysql("UPDATE User SET password = '$newPass' + WHERE username='$username' and password='$oldPass'", $link) or die ("Database Error"); } -// Reset Customer Password -function resetPassword ($username) { +// 6. Reset Customer Password +function resetPassword ($username, $userId) { $salt1 = "qm&h"; $token = hash('f8luser', "$salt1'somePassword'"); - $result = queryMysql("UPDATE Users SET password='$token'"); + $result = queryMysql("UPDATE User SET password='$token' + WHERE username='$username' and userId='$userId'", $link) or die ("Database Error"); return $token; } -//Check Checking Account Balance -function check_CheckingBalance ($checkingsAccount) { +// 7. Check Checking Account Balance +function get_CheckingBalance ($username, $accountId) { include 'db_connect.php'; - $result=mysql_query("SELECT * FROM checkingsAccount ORDER BY account_type", $link) or die ("Database Error"); + $result=mysql_query("SELECT balance FROM account + WHERE accountType='checking' and username='$username' and accountId='$accountId'", $link) + or die ("Database Error"); } -//Check Savings Account Balance -function check_SavingBalance ($savingsAccount) { +// 8. Check Savings Account Balance +function check_SavingBalance ($username, $accountId) { include 'db_connect.php'; - $result=mysql_query("SELECT * FROM savingsAccount ORDER BY account_type", $link) or die ("Database Error"); + $result=mysql_query("SELECT balance FROM account + WHERE accountType='savings' and username='$username' and accountId='$accountId'", $link) + or die ("Database Error"); } -//Withdraw from Accounts -function withdraw ($ -//Deposit into Account +// 9. Customer can withdraw from their accounts. +function accountWithdraw($userId, $accountId, $accountType, $amount) { + include 'db_connect.php'; + $result=mysql_query("UPDATE Account SET balance=balance-'$amount' + WHERE userId='$userId' and accountId='$accountId'", $link) or die ("Database Error"); + $result = queryMysql("INSERT INTO Transaction(userId, accountId, accountType, amount, date) + VALUES ('$userId', 'accountId', '$accountType', '$amount', '$today'", $link) + or die ("Database Error"); +} + +// 10. Customer can deposit to their accounts. +function accountDeposit($userId, $accountId, $accountType, $amount) { + include 'db_connect.php'; + $result=mysql_query("UPDATE Account SET balance=balance+'$amount' + WHERE userId='$userId' and accountId='$accountId'", $link) or die ("Database Error"); + $result = queryMysql("INSERT INTO Transaction(userId, accountId, accountType, amount, date) + VALUES ('$userId', 'accountId', '$accountType', '$amount', '$today'", $link) + or die ("Database Error"); +} + +// 11. Customer can view their statements from each account (Checking and Savings). +function viewStatement($userId) { + include 'db_connect.php'; + $result=mysql_query("SELECT accountType, date, transactionType, amount + FROM Transaction GROUP BY accountType + HAVING userId='$userId' ORDER BY date", $link) or die ("Database Error"); +} + +// 12. Customer can pay their loan payment. +function loanPayment($userId, $loanId, $amount) { + include 'db_connect.php'; + $result=mysql_query("UPDATE Loan SET balance=balance-'$amount', paymentDate='$today' + WHERE userId='$userId' and loanId='$loanId'", $link) or die ("Database Error"); + $result = queryMysql("INSERT INTO Transaction(userId, loanId, accountType, amount) + VALUES ('$userId', 'loanId', 'loan', '$amount'", $link) or die ("Database Error"); +} + +// 13. Administrator can reset non-Admin password. +function adminResetUserPassword ($userId, $newPassword) { + include 'db_connect.php'; + $result = queryMysql("UPDATE User SET password='$newPassword' WHERE userId='$userId'", $link) + or die ("Database Error"); +} + +// 14. Administrator can view customers who have a zero balance in their checking and/or savings account. +function adminGetPoorUsers() { + include 'db_connect.php'; + $result = queryMysql("SELECT userId FROM User WHERE balance<=0", $link) + or die ("Database Error"); +} + +// 15. Administrator can view who is late paying their loan payment. +function adminGetUsersOfOverdueLoans() { + include 'db_connect.php'; + $result=mysql_query("SELECT userId FROM User + WHERE userId IN (SELECT userId FROM Loan + WHERE paymentDueDate
TitleTagsRevised DateNote1EditRemove
{$Row['title']}{$Row['tags']}{$Row['revisedDate']}{$Row['note1']} +
+ + + +
+
+
+ + + +
+