Exemplo n.º 1
0
 def run(self):
     print("{} has soccused connected!")
     while True:
         recv_msg = (self.socket.recv(1024)).decode('utf-8')  # 接收到的信息
         print(recv_msg)
         msg = ast.literal_eval(recv_msg)
         recv_type = msg['msgtype']
         print(msg['msgtype'])
         if not self.logged:
             # 没有登陆的时候,暂时只有注册以及登陆的选项 只要不登陆,线程就会阻塞在这里
             if recv_type == 0:
                 # 如果接收到的信息类型为注册类型,判断是否存在这个邮箱
                 if self.register_manage(msg['email']):
                     # 从信息之中取出注册信息
                     u1 = u.user(msg['name'], msg['pass'],
                                 str(random.randint(10000, 100000 - 1)),
                                 msg['sex'], msg['email'])
                     db1 = ms.MySql()
                     flag = db1.adduser(u1)
                     while not flag:
                         # 可能会出现两个user_no相同导致插入失败
                         u1.No = str(random.randint(10000, 100000 - 1))
                         flag = db1.adduser(u1)
                     socket.send(("你的id为%s" % (u1.No)).encode('utf-8'))
             elif recv_type == 1:
                 # 如果接收到的消息类型为登陆类型,则判断是否登陆成功
                 self.login(msg['EmailOrId'], msg['pass'])
             else:
                 print("尚未登陆")
                 self.socket.send("尚未登陆,请登陆后重试".encode('utf8'))
         elif self.logged:
             # 已经登陆了,暂定可以处理修改用户信息以及发送接收图片功能
             if recv_type == 2:
                 # 修改用户信息指令
                 u1 = u.user(msg['name'], msg['pass'], msg['id'],
                             msg['sex'], msg[' email'])
                 self.reset(u1)
                 self.user = u1
                 pass
             elif recv_type == 3:
                 # 接受用户上传并处理图片
                 self.socket.send("ready".encode('utf-8'))
                 self.img_manage()
                 pass
Exemplo n.º 2
0
 def sendregister(self, u_name, u_pass, u_email, u_sex):
     msg = '{"msgtype":0,"name":"%s","pass":"******","email":"%s","sex":"%s"}' % (
         u_name, u_pass, u_email, u_sex)
     self.conn.send(msg.encode('utf-8'))
     recvmsg = self.conn.recv(1024).decode('utf8')
     if recvmsg == "注册邮箱已存在":
         print(recvmsg)
     else:
         self.user = u.user(u_name, u_pass, recvmsg[5:], u_sex, u_email)
         print("Congratulations you had succed registed :" + str(self.user))
Exemplo n.º 3
0
 def sendlog(self, u_m1, u_pass):
     msg = '{"msgtype":1,"EmailOrId":"%s","pass":"******"}' % (u_m1, u_pass)
     self.conn.send(msg.encode('utf-8'))
     recvmsg = self.conn.recv(1024).decode('utf8')
     print(recvmsg)
     if recvmsg != "用户名或密码错误":
         msg = ast.literal_eval(recvmsg)
         self.user = u.user(msg['name'], msg['pass'], msg['id'], msg['sex'],
                            msg['email'])
         self.ftpuser = '******'
         #  同时需要进入指定目录
         self.ftp.login(self.ftpuser, self.ftpuser)
         self.ftp.cwd(str(self.user.No))
         print("Congratulations you had succed log in :" + str(self.user))
     else:
         print(recvmsg)
Exemplo n.º 4
0
 def login(self, token, password):
     # 根据用户传输过来的信息判断是否到了成功
     """
     :param socket: 处理用户的套接字
     :param msg: 发送的用户登陆信息,字典类型(username,userpassword)
     :param token:  用户的登陆标识符,可为email或者id中的任何一个
     :param password:  用户的登陆口令,俗称密码
     :return: 返回是否登陆成功
     """
     # print(msg)
     db1 = ms.MySql()
     flag = db1.queryuser((token, password))
     if not flag:
         self.socket.send("用户名或密码错误".encode('utf-8'))
     else:
         msg1 = '{"name":"%s","id":"%s","pass":"******","email":"%s","sex":"%s"}' % (
             flag[0][0], flag[0][1], flag[0][2], flag[0][3], flag[0][4])
         # 既然登录成功了,那么就把类中的user对象设置为登陆者的相关信息
         self.user = u.user(flag[0][0], flag[0][2], flag[0][1], flag[0][4], flag[0][3])
         # 都登陆成功了,肯定要把self.logged 设置为真喽
         self.logged = True
         # print(msg1)
         self.socket.send(msg1.encode('utf-8'))
Exemplo n.º 5
0
        return flag

    def resetuser(self, user: u.user):
        sql = "update user set user_name = '%s',user_email = '%s' ,user_pass = '******' ,u_sex = '%s'where user_id='%s';" % (
        user.name, user.email, user.password, user.sex, user.No)
        print(sql)
        flag = False
        cursor = self.mysql.cursor()
        try:
            cursor.execute(sql)
            # print("更新成功")
            self.mysql.commit()
            flag = True
        except:
            self.mysql.rollback()
            # print("插入失败")
        cursor.close()
        return flag


if __name__ == "__main__":
    # name=None,password=None,No=None,sex=None,email=None,birthday=None)
    m1 = MySql()
    if m1.queryuser(("djh05", "201726010111")):
        print("yes the customer exsit")
    else:
        print("sorry num or pass error")
    u1 = u.user("张三", "123456", "289653", "男", "*****@*****.**", "2001-05-23")
    m1.adduser(u1)
    m1.resetpass(u1, "58698756")