Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <iostream>
- #include <vector>
- #include <string>
- #include <stdio.h>
- #include <stdlib.h>
- #include <strings.h>
- #include <cgicc/CgiDefs.h>
- #include <cgicc/Cgicc.h>
- #include <cgicc/HTTPHTMLHeader.h>
- #include <cgicc/HTMLClasses.h>
- #include <sqlite3.h>
- using namespace std;
- using namespace cgicc;
- string userName;
- string passWord;
- string sortCode;
- string userTest;
- // getting user input from form //
- // compares user input to database //
- //TODO create and send session ID to accounts page?
- //
- static int callback(void *data, int argc, char **argv, char **azColName)
- {
- int i;
- cout << " : " << (const char*)data;
- cout << " " << endl;
- if (userName == argv[1] && passWord == argv[2] && sortCode == argv[3]){
- cout << " MATCH TO DATABASE " << endl;
- //flag to send cookie
- cout << userName << passWord << sortCode << endl;
- }/* else{
- cout << " NO USER EXISTS" << endl;
- }*/
- cout << " " << endl;
- return 0;
- }
- int main()
- {
- sqlite3 *db;
- char *errMsg = 0;
- int rc;
- string sql;
- const char* data = "Callback called : ";
- //Opening the database
- rc = sqlite3_open("/usr/lib/cgi-bin/bank.db", &db);
- //cout<< "USERNAME : " << userName << endl;
- //cout <<"PASSWORD : " << passWord << endl;
- //cout << " SSID : " << sortCode << endl;
- /*
- // Setting the cookie information
- //cout << "Set-Cookie:UserID = "<< userName << ";\r\n";
- //cout << "Set-Cookie:Password = " << passWord << ";\r\n";
- //cout << "Set-Cookie:SessionID = " << sortCode << ";\r\n";
- //cout << "Set-Cookie:Domain = /index.html;\r\n";
- //cout << "Set-Cookie:Path = /account.html;\r\n";
- */
- cout << "Content-type:text/html\r\n\r\n";
- /*//cout << "Location: /account.html\r\n\r\n" ; */
- cout << "<html>\n";
- /*//cout << "<meta https-equiv='Refresh' content='3 ; url=/account.html'>" ;*/
- cout << "<head>\n";
- cout << "<title> WELCOME TO EL BANCO DE NATHAN </title>\n";
- cout << "</head>\n";
- Cgicc formData;
- form_iterator fi = formData.getElement("username");
- if(!fi->isEmpty() && fi != (*formData).end())
- {
- cout << "Username :" << **fi << endl;
- userName = **fi ;
- }else{
- cout << "Nothing entered" << endl;
- }
- cout << "<br/>\n";
- fi = formData.getElement("password");
- if(!fi->isEmpty() && fi != (*formData).end())
- {
- cout << "Password :" << **fi << endl;
- passWord = **fi;
- }else{
- cout << "Nothing entered" << endl;
- }
- cout << "<br/>\n";
- fi = formData.getElement("branch");
- if(!fi->isEmpty() && fi !=(*formData).end())
- {
- cout << "Branch :" << **fi << endl;
- sortCode = **fi;
- }else{
- cout << "Nothing Entered" << endl;
- }
- cout << "<br/>\n";
- if (rc)
- {
- cout << "CANNAE OPEN DATABASE" << endl;
- return(0);
- }else {
- cout << "OPENED THE DATABASE" << endl;
- }
- userTest.append(userName);
- cout << "userTest :" << userTest << endl;
- sql = "SELECT * FROM BANK WHERE username = '";
- sql.append(userTest);
- sql.append("'");
- cout << sql << endl;
- rc = sqlite3_exec(db,sql.c_str(),callback, (void*)data, &errMsg);
- if (rc != SQLITE_OK)
- {
- cout << "SQL HAS ERROR " << errMsg << endl;
- sqlite3_free(errMsg);
- } else {
- cout << "OPERATION COMPLETE" << endl;
- }
- cout << "<br/>";
- cout << "<a href=/account.html> View YOUR Account</a>";
- cout << "</body>\n";
- cout << "</html>\n";
- sqlite3_close(db);
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement