首页 > 数据库 >图形化登录,数据库设置

图形化登录,数据库设置

时间:2023-10-08 15:55:05浏览次数:37  
标签:10 登录 title -- 数据库 50 whiptail msgbox 图形化

# 创建库
root@localhost [tu] >create database tu;
## 进入库
use tu;
# 创建表结构
CREATE TABLE `tiao` (
  `ip` int(10) unsigned zerofill NOT NULL AUTO_INCREMENT COMMENT 'ip区分',
  `name` varbinary(5) NOT NULL COMMENT '用户昵称',
  `password` varbinary(20) NOT NULL COMMENT '用户密码',
  `qx` enum('1','2','3') DEFAULT NULL COMMENT '用户权限(默认没有)(1,运维2,开发3,测试)',
  PRIMARY KEY (`ip`,`name`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8


Database changed
root@localhost [tu] >show tables;
+--------------+
| Tables_in_tu |
+--------------+
| tiao         |
+--------------+
1 row in set (0.00 sec)

root@localhost [tu] >select * from tiao;
+------------+------+----------+------+
| ip         | name | password | qx   |
+------------+------+----------+------+
| 0000000001 | hhh  | 123      | 1    |
| 0000000002 | ttt  | 456      | 2    |
| 0000000003 | ccc  | 789      | 3    |
| 0000000004 | mmm  | 111      | NULL |
+------------+------+----------+------+
4 rows in set (0.00 sec)

# 登录脚本
[root@db04 ~]# cat tiao.sh 
#!/bin/bash
denlu() {
username=$(whiptail --title "用户登录" --inputbox "请输入用户名:" 8 60 3>&1 1>&2 2>&3)
account=$(mysql -uroot -p123 -e "select name from tu.tiao where name='${username}';"| awk 'NR==2')
if [[ -z $account ]]; then
    whiptail --title "错误" --msgbox "账户不存在,请创建一个新账户。" 10 50
    exit 1
fi
password=$(mysql -uroot -p123 -e "select * from tu.tiao where name='${username}'" | awk 'NR==2{print $3}')
role=$(mysql -uroot -p123 -e "select * from tu.tiao where name='${username}'" | awk 'NR==2{print $4}')
entered_password=$(whiptail --title "用户登录" --passwordbox "请输入密码:" 8 60 3>&1 1>&2 2>&3)
if [[ $entered_password == $password ]]; then
    whiptail --title "登录成功" --msgbox "密码正确,欢迎回来!" 10 50

else
    entered_password=$(whiptail --passwordbox "密码错误,请重新输入。" --title "错误" 10 50 3>&1 1>&2 2>&3)
    if [[ $entered_password == $password ]]; then
        whiptail --title "登录成功" --msgbox "密码正确,欢迎回来!" 10 50
        
    else
        whiptail --title "错误" --msgbox "密码错误,请检查密码是否正确。密码记录在/root/tu/a.txt文件中,请确认。请重新登录。" 10 50
        exit 1
    fi
fi

case $role in
    "1"|"ops")
        whiptail --title "ops" --msgbox "666" 10 50
        exit 1
        ;;
    "2"|"dev")
        whiptail --title "dev" --msgbox "aaa" 10 50
        exit 1
        ;;
    "3"|"test")
        whiptail --title "test" --msgbox "hhh" 10 50
        exit 1
        ;;
    *)
        whiptail --title "错误" --msgbox "连职位都没有还混什么" 10 50
        exit 1
        ;;
esac
}


zc() {
zcname=$(whiptail --title "注册信息" --inputbox "要注册哪个用户名:" 8 60 3>&1 1>&2 2>&3)
zcount=$(mysql -uroot -p123 -e "select name from tu.tiao where name='${zcname}';"| awk 'NR==2')
if [[ -z $zcount ]]; then
	if [[ $zcname = *[[:space:]]* ]];then
		whiptail --title "错误" --msgbox "用户名不要输入空格" 10 50
		zc
	fi
    zcpassword=$(whiptail --title "注册信息" --passwordbox "请输入密码:" 8 60 3>&1 1>&2 2>&3)
	if [[ $zcpassword = *[[:space:]]* ]];then
		whiptail --title "错误" --msgbox "密码不要输入空格" 10 50
                zc
        elif echo "$zcpassword" | grep -qP '[\p{Han}]';then
		whiptail --title "错误" --msgbox "密码不支持中文" 10 50
                zc
        else
		mysql -uroot -p123 -e "insert into tu.tiao (name, password) VALUES ('${zcname}', '${zcpassword}');"
		zcount=$(mysql -uroot -p123 -e "select name from tu.tiao where name='${zcname}';"| awk 'NR==2')
		if [[ -z $zcount ]]; then
		whiptail --msgbox "创建未成功" 10 50
		exit
		
		else
		whiptail --msgbox "创建完成" 10 50
		
                denlu
		fi
        fi
else
    whiptail --title "错误" --msgbox "账户存在,请更换一个。" 10 50
    zc
fi

}

abtt() {
    options=("注册" "" "登录" "" "退出" "")
    selected_option=$(whiptail --title "$ada $username 请选择功能模块" --menu "请输入功能数字:" 15 50 9 "${options[@]}" 3>&1 1>&2 2>&3)
    exitstatus=$?
    if [[ $exitstatus -eq 0 ]]; then
        case $selected_option in
            "注册")
                zc
                ;;
            "登录")
                denlu
                ;;
            "退出")
                return
                ;;
        esac
    else
        whiptail --msgbox "用户点击了取消,但是并无卵用。" 10 50
        abtt
    fi
}
abtt

标签:10,登录,title,--,数据库,50,whiptail,msgbox,图形化
From: https://www.cnblogs.com/xiutai/p/17749287.html

相关文章

  • 学生管理系统使用集合保存,不是用数据库的(仅供参考,网上找的,记录用)
    packagecom.ima;importcom.itheima.Student;importjava.util.ArrayList;importjava.util.Scanner;/*学生管理系统*/publicclassStudentManager{publicstaticvoidmain(String[]args){//创建集合对象,用于存储学生数据ArrayList<Student>a......
  • 关于数据库的复习
    数据库分位关系数据库和非关系数据库关系数据库中有Oracle、DB2、SQLServer、MySQL等。非关系数据库就是NOSQL。这老师MySQL的官网下载地址https://dev.mysql.com/downloads/windows/installer/8.0.html接下来就是使用图形客户端navicat来操作数据库了。再就是SQL语句:数据查......
  • harbor登录时报错error parsing HTTP 404 response body: invalid character
    **harbor登录时报如下错误: **[root@localhostTDFW-publish-tar]#dockerlogin--username=user1192.168.2.10:8090--passworduser1_passWARNING!Using--passwordviatheCLIisinsecure.Use--password-stdin.Errorresponsefromdaemon:Get"http://192.168.2.......
  • Centos系统安装MySQL数据库时,要以不安全的方式连接至 dev.mysql.com,使用“--no-check-
    解决:要以不安全的方式连接至dev.mysql.com,使用“--no-check-certificate” 问题:[root@192桌面]#wgethttps://dev.mysql.com/get/mysql80-community-release-el7-5.noarch.rpm--2023-10-0812:44:16--https://dev.mysql.com/get/mysql80-community-release-el7-5.noarch.......
  • 登录认证装饰器
    在FastAPI中,你可以使用装饰器来实现登录认证。以下是一个示例,演示如何创建一个自定义的登录认证装饰器,以确保只有授权的用户可以访问某些接口:fromfastapiimportFastAPI,Depends,HTTPException,statusfromfastapi.securityimportOAuth2PasswordBearer,OAuth2Password......
  • VSCode & Intellij IDEA CE 数据库连接
    VSCode&IntellijIDEACE数据库连接大概记一下现在正在用的几个工具/插件VSCodeVSCode里面的工具我下载了很多,如果只是链接MySQL的话,可能用JunHan这位大佬的MySQL就好了:使用这个插件直接打开.sql文件单击运行就能跑sql命令,而且跑起来也挺方便的不过我们项目......
  • destoon : 后台无法登录问题解决
    经常有朋友在destoon搬家的时候,数据还原之后,会出现后台无法登录的情况.具体表现为后台帐号密码输入后点击确定,页面刷新.并没有跳转到相应后台页面.但是如果帐号密码输入错误,会提示密码错误的情况.这种情况多半是原系统设置中,设置了cookie作用域的问题,如......
  • 谷歌记住密码,设置浏览器 免登录
      """"读chrome本地cookie数据(需要先手动登录勾选记住密码),实现免登陆操作注意:关闭chrome浏览器,否则运行报错!!!"""fromtimeimportsleepfromseleniumimportwebdriverfromselenium.webdriver.chrome.optionsimportOptionsdefget_cookie(url):#实例......
  • 【实用】登录图形认证 图形码 验证码 中文图形验证码 动态图形验证码 图片验证码 验证
    后端测试: 主要code:https://www.cnblogs.com/liuguiqing/p/17722366.html ......
  • 如何用tfds加载本地数据库
    云端的数据库存储在google的服务器,所以无法通过tfds.load('mnist',split='train')这样的方式直接加载,下面是一些变通的方式来读取。一、MNIST数据库1.我用tfds.load去加载本地的mnist数据库,mnist/3.0.1应该具有什么样的数据格式答:如果你正在使用`tfds.load`来加载本地的MNIST......