Guest User

Untitled

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