Guest User

Untitled

a guest
Jun 10th, 2018
43
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 12.81 KB | None | 0 0
  1. import pymysql
  2. import re
  3. import time
  4.  
  5. conn = pymysql.connect(host='37.187.89.199', port=3306, user='root', passwd='123', db='dbinfo')
  6.  
  7.  
  8. cur = conn.cursor()
  9.  
  10. class mainvar():
  11. def mainvar(self):
  12. mainvar.login = 0
  13. mainvar.changedetails = 0
  14.  
  15.  
  16. class main():
  17. def main(self):
  18. print("This is a mySQL test")
  19. print("A) Sign Up\nB) Change details\nC) Login\nQ) Quit\n")
  20. reply=input().upper()
  21. if reply == "A":
  22. entername.entername()
  23. elif reply == "B":
  24. if mainvar.login == 1:
  25. changemenu.changemenu()
  26. else:
  27. mainvar.changedetails = 1
  28. menu.menu()
  29. elif reply == "C":
  30. menu.menu()
  31. elif reply == "Q":
  32. print("Exiting...")
  33. time.sleep(3)
  34. exit()
  35. else:
  36. print(reply,"is not an option on the list.")
  37. main.main()
  38.  
  39. #Signing in
  40. ####################################################################################################################################################################################################################
  41.  
  42. class loginpage():
  43. def loginpage(self):
  44.  
  45. cur.execute("SELECT * FROM userinfo WHERE email ='"+loginemail.email+"';")
  46. loginpage.data=cur.fetchone()
  47. print("You are currently logged in as",loginpage.data[2])
  48. print("What would you like to do?")
  49. print("A) Sign Out\nB) Change details\nC) Show details")
  50. option=str(input()).upper()
  51. if option == "A":
  52. mainvar.login = 0
  53. print("Signing out...")
  54. time.sleep(3)
  55. main.main()
  56. elif option == "B":
  57. mainvar.changedetails = 1
  58. changemenu.changemenu()
  59. elif option == "C":
  60. cur.execute("SELECT * FROM userinfo WHERE email ='"+loginemail.email+"';")
  61. loginpage.data=cur.fetchone()
  62. print("Name:",loginpage.data[0],loginpage.data[1])
  63. print("Username:",loginpage.data[2])
  64. print("Email:",loginpage.data[3])
  65. maths=(len(loginpage.data[4]))
  66. print("Password:",("*"*maths))
  67. loginpage.loginpage()
  68.  
  69.  
  70.  
  71. #assigning classes to objects
  72. loginpage=loginpage()
  73.  
  74. #Signing in
  75. ####################################################################################################################################################################################################################
  76. class menu():
  77. def menu(self):
  78. print("Please sign in.")
  79. loginemail.loginemail()
  80.  
  81. class loginemail():
  82. def loginemail(Self):
  83. print("Please enter your email adress")
  84. loginemail.email=str(input()).lower()
  85. match = re.match('^[_a-z0-9-]+(\.[_a-z0-9-]+)*@[a-z0-9-]+(\.[a-z0-9-]+)*(\.[a-z]{2,4})$', loginemail.email)
  86. if match == None:
  87. print("That is not a valid email format.")
  88. loginemail.loginemail()
  89. else:
  90. cur.execute("SELECT * FROM userinfo WHERE email ='"+loginemail.email+"';")
  91. loginemail.data=cur.fetchone()
  92. if loginemail.data:
  93. if loginemail.data[3] == loginemail.email:
  94. loginpw.loginpw()
  95. else:
  96. print("This email does not exist on the database.")
  97. loginemailfail.loginemailfail()
  98.  
  99.  
  100. class loginemailfail():
  101. def loginemailfail(self):
  102. print("Would you like to..")
  103. print("A) Sign up\nB) Retry")
  104. reply=input().upper()
  105. if reply == "A":
  106. enternam.entername()
  107. elif reply == "B":
  108. loginemail.loginemail()
  109. else:
  110. print(reply,"is not an option on the list")
  111. loginemailfail.loginemailfail()
  112.  
  113.  
  114. class loginpw():
  115. def loginpw(self):
  116. print("Please enter your password")
  117. loginpw.pw=str(input())
  118. cur.execute("SELECT * FROM userinfo WHERE email ='"+loginemail.email+"';")
  119. loginpw.data=cur.fetchone()
  120. if loginpw.data[4] == loginpw.pw:
  121. print("Successfully logged in")
  122. mainvar.login = 1
  123. if mainvar.changedetails == 1:
  124. changemenu.changemenu()
  125. elif mainvar.changedetails == 0 and mainvar.login == 1:
  126. loginpage.loginpage()
  127. else:
  128. print("Incorrect password")
  129. loginpw.loginpw()
  130.  
  131.  
  132.  
  133. #assigning classes to objects
  134. menu=menu()
  135. loginemail=loginemail()
  136. loginemailfail=loginemailfail()
  137. loginpw=loginpw()
  138.  
  139.  
  140. #Changeing details
  141. ####################################################################################################################################################################################################################
  142.  
  143.  
  144. class changemenu():
  145. def changemenu(self):
  146. print("What would you like to change?")
  147. print("A) Name")
  148. print("B) Username")
  149. print("C) Password")
  150. x=str(input()).upper()
  151. if x == "A":
  152. changenames.changenames()
  153. elif x == "B":
  154. changeusername.changeusername()
  155. elif x == "C":
  156. changepw.changepw()
  157. else:
  158. print(x,"is not an option on the list.")
  159. changemenu.changemenu()
  160.  
  161. class changenames():
  162. def changenames(self):
  163. print("Please enter the following")
  164. changename.changename()
  165.  
  166.  
  167. class changename():
  168. def changename(self):
  169. print("Enter your new first name")
  170. changename.name=str(input()).title()
  171. if changename.name == "":
  172. print("You haven't entered anything")
  173. entername.entername()
  174. else:
  175. changesname.changesname()
  176.  
  177. class changesname():
  178. def changesname(self):
  179. print("Please enter your new second name")
  180. changesname.name=str(input()).title()
  181. if changesname.name == "":
  182. print("You haven't entered anything")
  183. changesname.changesname()
  184. else:
  185. changenameend.changenameend()
  186.  
  187. class changenameend():
  188. def changenameend(self):
  189. cur.execute("SELECT * FROM userinfo WHERE email ='"+loginemail.email+"';")
  190. changenameend.data=cur.fetchone()
  191. print("Name:",changename.name,changesname.name)
  192. print("NickName:",changenameend.data[2])
  193. print("Email:",changenameend.data[3])
  194. print("Are these details correct?\nY/N")
  195. option=str(input()).upper()
  196. if option == "Y":
  197. cur.execute("UPDATE userinfo SET firstname = '"+changename.name+"',lastname = '"+changesname.name+"' WHERE firstname='"+changenameend.data[0]+"' AND lastname='"+changenameend.data[1]+"' AND email = '"+changenameend.data[3]+"' AND nickname = '"+changenameend.data[2]+"' AND password = '"+changenameend.data[4]+"';")
  198. conn.commit()
  199. main.main()
  200. elif option == "N":
  201. print("Would you like to..")
  202. print("A) exit")
  203. print("B) try again")
  204. option2=str(input()).upper()
  205. if option2 == "A":
  206. loginpage.loginpage()
  207. elif option2 == "B":
  208. changenames.changenames()
  209. else:
  210. print(option2,"is not an option on the list")
  211. changenameend.changenameend()
  212.  
  213.  
  214. class changeusername():
  215. def changeusername(self):
  216. print("Enter your new username")
  217. changeusername.name=str(input()).lower()
  218. if changeusername.name == "":
  219. print("You haven't entered anything")
  220. changeusername.changeusername()
  221. else:
  222. changeusernameend.changeusernameend()
  223.  
  224. class changeusernameend():
  225. def changeusernameend(self):
  226. cur.execute("SELECT * FROM userinfo WHERE email ='"+loginemail.email+"';")
  227. changeusernameend.data=cur.fetchone()
  228. print("Name:",changeusernameend.data[0],changeusernameend.data[1])
  229. print("NickName:",changeusername.name)
  230. print("Email:",changeusernameend.data[3])
  231. print("Are these details correct?\nY/N")
  232. option=str(input()).upper()
  233. if option == "Y":
  234. cur.execute("UPDATE userinfo SET nickname = '"+changeusername.name+"' WHERE firstname='"+changeusernameend.data[0]+"' AND lastname='"+changeusernameend.data[1]+"' AND email = '"+changeusernameend.data[3]+"' AND nickname = '"+changeusernameend.data[2]+"' AND password = '"+changeusernameend.data[4]+"';")
  235. conn.commit()
  236. main.main()
  237. elif option == "N":
  238. print("Would you like to..")
  239. print("A) exit")
  240. print("B) try again")
  241. option2=str(input()).upper()
  242. if option2 == "A":
  243. loginmenu.loginmenu()
  244. elif option2 == "B":
  245. changeusername.changeusername()
  246. else:
  247. print(option2,"is not an option on the list")
  248. changeusernameend.changeusernameend()
  249.  
  250.  
  251. class changepw():
  252. def changepw(self):
  253. cur.execute("SELECT * FROM userinfo WHERE email ='"+loginemail.email+"';")
  254. changepw.data=cur.fetchone()
  255. print("Enter your old password.")
  256. changepw.old=str(input())
  257. if changepw.old != changepw.data[4]:
  258. print("Password is invalid.")
  259. changepw.changepw()
  260. else:
  261. print("Please create a new password")
  262. changepw.new=str(input())
  263. print("Please re-enter your new password")
  264. changepw.new2=str(input())
  265. if changepw.new == changepw.new2:
  266. changepwend.changepwend()
  267. else:
  268. print("The 2 passwords didn't match")
  269. changepw.changepw()
  270.  
  271. class changepwend():
  272. def changepwend(self):
  273. cur.execute("SELECT * FROM userinfo WHERE email ='"+loginemail.email+"';")
  274. changepwend.data=cur.fetchone()
  275. print("Name:",changepwend.data[0],changepwend.data[1])
  276. print("Username:",changepwend.data[2])
  277. print("Email:",changepwend.data[3])
  278. print("Are these details correct?\nY/N")
  279. option=str(input()).upper()
  280. if option == "Y":
  281. cur.execute("UPDATE userinfo SET password = '"+changepw.new+"' WHERE firstname='"+changepwend.data[0]+"' AND lastname='"+changepwend.data[1]+"' AND email = '"+changepwend.data[3]+"' AND nickname = '"+changepwend.data[2]+"' AND password = '"+changepwend.data[4]+"';")
  282. conn.commit()
  283. mainvar.login = 0
  284. print("Password successfully changed")
  285. main.main()
  286. elif option == "N":
  287. print("Would you like to..")
  288. print("A) exit")
  289. print("B) try again")
  290. option2=str(input()).upper()
  291. if option2 == "A":
  292. loginmenu.loginmenu()
  293. elif option2 == "B":
  294. changepw.changepw()
  295. else:
  296. print(option2,"is not an option on the list")
  297. changepwend.changepwend()
  298.  
  299.  
  300.  
  301. #assigning classes to objects
  302. changemenu=changemenu()
  303. changenames=changenames()
  304. changename=changename()
  305. changesname=changesname()
  306. changenameend=changenameend()
  307. changeusername=changeusername()
  308. changeusernameend=changeusernameend()
  309. changepw=changepw()
  310. changepwend=changepwend()
  311.  
  312.  
  313. #registering
  314. ####################################################################################################################################################################################################################
  315. class entername():
  316. def entername(self):
  317. print("Please enter your first name")
  318. entername.name=str(input()).title()
  319. if entername.name == "":
  320. print("You haven't entered anything")
  321. entername.entername()
  322. else:
  323. entersname.entersname()
  324.  
  325. class entersname():
  326. def entersname(self):
  327. print("Please enter your last name")
  328. entersname.name=str(input()).title()
  329. if entersname.name == "":
  330. print("You haven't entered anything")
  331. entersname.entersname()
  332. else:
  333. enternickname.enternickname()
  334.  
  335. class enternickname():
  336. def enternickname(self):
  337. print("Please enter your username")
  338. enternickname.name=str(input()).lower()
  339. cur.execute("SELECT email FROM userinfo WHERE nickname = '"+enternickname.name+"';")
  340. enternickname.data=cur.fetchone()
  341. if enternickname.name == "":
  342. print("You haven't entered anything")
  343. enternickname.enternickname()
  344. elif enternickname.data:
  345. print(enternickname.name,"is already taken.")
  346. enternickname.enternickname()
  347. else:
  348. enteremail.enteremail()
  349.  
  350. class enteremail():
  351. def enteremail(self):
  352. print("Please enter your email")
  353. enteremail.name=str(input()).lower()
  354. cur.execute("SELECT nickname FROM userinfo WHERE email = '"+enteremail.name+"';")
  355. enteremail.data=cur.fetchone()
  356. match = re.match('^[_a-z0-9-]+(\.[_a-z0-9-]+)*@[a-z0-9-]+(\.[a-z0-9-]+)*(\.[a-z]{2,4})$', enteremail.name)
  357. if match == None:
  358. print("That is not a valid email.")
  359. enteremail.enteremail()
  360. elif enteremail.data:
  361. print("There is already an account with the email",enteremail.name)
  362. enteremail.enteremail()
  363. else:
  364. enterpassword.enterpassword()
  365.  
  366.  
  367. class enterpassword():
  368. def enterpassword(self):
  369. print("Please create a password")
  370. enterpassword.pw=str(input())
  371. print("Please repeat your password")
  372. enterpassword.pwr=str(input())
  373. if enterpassword.pw == enterpassword.pwr:
  374. enterpassword.pw == enterpassword.pwr
  375. details.details()
  376. else:
  377. print("The 2 passwords don't match")
  378. enterpassword.enterpassword()
  379.  
  380.  
  381. class details():
  382. def details(self):
  383. print("Name:",entername.name,entersname.name)
  384. print("NickName:",enternickname.name)
  385. print("Email:",enteremail.name)
  386. print("Are these details correct?\nY/N")
  387. details.ans=input().upper()
  388. if details.ans == "Y":
  389. print("Thank you for registering.")
  390. signupinject.signupinject()
  391. elif details.ans == "N":
  392. entername.entername()
  393. else:
  394. details.details()
  395.  
  396. class signupinject():
  397. def signupinject(self):
  398. cur.execute("INSERT INTO userinfo(firstname,lastname,nickname,email,password) VALUES('"+entername.name+"','"+entersname.name+"','"+enternickname.name+"','"+enteremail.name+"','"+enterpassword.pw+"');")
  399. conn.commit()
  400. main.main()
  401.  
  402. #assigning classes to objects to retrieve the variables within the functions.
  403.  
  404. main=main()
  405. entername=entername()
  406. entersname=entersname()
  407. enternickname=enternickname()
  408. enteremail=enteremail()
  409. enterpassword=enterpassword()
  410. details=details()
  411. signupinject=signupinject()
  412. mainvar=mainvar()
  413.  
  414. print("\n")
  415. mainvar.mainvar()
  416. main.main()
Add Comment
Please, Sign In to add comment