登陆注册系统模拟(源代码)
- 格式:doc
- 大小:64.50 KB
- 文档页数:11
java用户登录界面的代码以下是一个简单的Java用户登录界面的代码示例,其中包括了GUI界面设计和用户验证的代码:```javaimport javax.swing.JFrame;import javax.swing.JLabel;import javax.swing.JTextField;import javax.swing.JPasswordField;import javax.swing.JButton;import java.awt.event.ActionListener;import java.awt.event.ActionEvent;public class LoginWindow extends JFrame implements ActionListener {private JLabel usernameLabel, passwordLabel;private JTextField usernameTextField;private JPasswordField passwordField;private JButton loginButton;public LoginWindow() {setTitle("用户登录");setSize(400, 200);setLocationRelativeTo(null);setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);usernameLabel = new JLabel("用户名:");passwordLabel = new JLabel("密码:");usernameTextField = new JTextField();passwordField = new JPasswordField();loginButton = new JButton("登录");loginButton.addActionListener(this);setLayout(null);usernameLabel.setBounds(50, 30, 80, 25);passwordLabel.setBounds(50, 70, 80, 25);usernameTextField.setBounds(130, 30, 200, 25);passwordField.setBounds(130, 70, 200, 25);loginButton.setBounds(150, 120, 100, 25);add(usernameLabel);add(passwordLabel);add(usernameTextField);add(passwordField);add(loginButton);setVisible(true);}public void actionPerformed(ActionEvent e) {String username = usernameTextField.getText();String password = newString(passwordField.getPassword());if (isValidUser(username, password)) {System.out.println("用户登录成功!");// 在这里可以跳转到下一个界面} else {System.out.println("用户名或密码错误!");}}private boolean isValidUser(String username, String password) {// 在这里实现用户验证的代码// 比如查询数据库是否有该用户并且密码是否匹配等等// 如果验证成功则返回true,否则返回falsereturn false;}public static void main(String[] args) {new LoginWindow();}}```该代码创建了一个窗口界面,包括“用户名”和“密码”两个文本框,以及一个“登录”按钮。
在网上找了许多,都是不能用的了,本地登陆还好,放到网站就显示:警告:系统检查到您可能通过不安全的网站登录,请您登录后立即修改密码!但是老板着急让完成。
就接着百度。
终于搞定。
代码共有两部分:一、登陆页面:<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "/TR/1999/REC-html401-19991224/loose.dtd"><HTML xmlns="/1999/xhtml"><HEAD><TITLE>中药方大全</TITLE><META content="text/html; charset=gbk" http-equiv=Content-Type><SCRIPT type=text/javascript src="config.js"></SCRIPT></HEAD><BODY ><FORM id=gomail class=c_form onSubmit="return checktype(this);"method=post name=gomail action=JavaScript:><INPUT type=hidden name=url><INPUT type=hidden name=username> <INPUT type=hidden name=type> <INPUTtype=hidden name=password> <INPUT type=hidden name=domain> <INPUTvalue=/inset.html type=hidden name=.done> <INPUTtype=hidden name=user> <INPUT type=hidden name=pass> <INPUT value=truetype=hidden name=enterVip> <INPUT type=hidden name=UserName> <INPUTtype=hidden name=Password> <INPUT type=hidden name=u> <INPUT type=hiddenname=psw> <INPUT type=hidden name=login> <INPUT type=hiddenname=LoginName> <INPUT type=hidden name=usr> <INPUT type=hidden name=func> <INPUT type=hidden name=login_name> <INPUT type=hiddenname=login_password> <INPUT type=hidden name=BackURL> <INPUTvalue=/mail?ui=html&zy=l type=hiddenname=continue> <INPUT type=hidden name=Email> <INPUT type=hiddenname=email> <INPUT type=hidden name=domainname> <INPUT value=falsetype=hidden name=firstlogin> <INPUT type=hidden name=starttime> <INPUTtype=hidden name=p2> <INPUT type=hidden name=passwd> <INPUT type=hiddenname=id> <INPUT type=hidden name=m> <INPUT type=hidden name=mpass> <INPUT type=hidden name=loginid> <INPUT type=hidden name=appid> <INPUTtype=hidden name=ru> <INPUT type=hidden name=eru> <INPUT type=hiddenname=fl> <INPUT type=hidden name=ct> <INPUT type=hidden name=vr> <INPUTtype=hidden name=sg> <INPUT type=hidden name=vwriter> <INPUT type=hiddenname=vpassword> <INPUT type=hidden name=passport_51_user> <INPUTtype=hidden name=passport_51_password> <INPUT type=hidden name=gourl><INPUT type=hidden name=Passwd> <INPUT value=cn type=hidden name=.intl><INPUT type=hidden name=origURL> <INPUT type=hidden name=formName> <INPUT type=hidden name=method> <INPUT value=true type=hidden name=isplogin><UL><LI><LABEL for=mail_user_ican123>帐号</LABEL> <INPUT id=mail_user_ican123class=int size=25 type=text name=uName> </LI><LI><LABEL for=mail_ail_server_ican123>邮箱</LABEL> <SELECTid=mail_server_ican123 class=select onchange=shortcut() name=domains><OPTION selected value=selected>--请选择--</OPTION> <OPTIONvalue=163> 网易</OPTION> <OPTION value=126></OPTION><OPTION value=sohu> 搜狐</OPTION> <OPTION value=sina>新浪</OPTION> <OPTION value=tom></OPTION> <OPTIONvalue=yahoo></OPTION> <OPTIONvalue=yahoocn></OPTION> <OPTION value=21cn></OPTION><OPTION value=eyou> 亿邮</OPTION> <OPTIONvalue=vipsina></OPTION> <OPTIONvalue=vip163></OPTION> <OPTION value=263></OPTION><OPTION value=yeah></OPTION> <OPTIONvalue=selected>以下请在弹出页登陆↓</OPTION> <OPTIONvalue=gmail></OPTION> <OPTION value=qq></OPTION><OPTION value=188></OPTION> <OPTION value=139></OPTION><OPTION value=sogou></OPTION> <OPTIONvalue=hotmail></OPTION> <OPTIONvalue=kaixin001>开心网</OPTION> <OPTIONvalue=selected>--社交网及其他--</OPTION> <OPTION value=baidu>百度账号</OPTION><OPTION value=renren>人人网</OPTION> <OPTION value=tianya>天涯社区</OPTION><OPTION value=51> 博客</OPTION> <OPTION value=cren>ChinaRen校友录</OPTION></SELECT> </LI><LI><LABEL for=mail_passwd_ican123>密码</LABEL> <INPUTid=mail_passwd_ican123 class=int size=15 type=password name=uPw> <INPUT id=mail_submit_ican123 class=btn value="登录" type=submit name=btn_my></LI></UL></FORM></BODY></HTML>二、相应的js代码(config.js)var ua=erAgent.toLowerCase();var isIE=ua.indexOf("msie")>-1;var isFF=ua.indexOf("firefox")>-1;function regE(c,b,a){if(window.attachEvent){c.attachEvent(b,a)}else {c.addEventListener(b.replace(/^on/,""),a,true)}}function $(a){return document.getElementById(a)}function os(a){return $(a).style}function ResumeError(){return true}window.onerror=ResumeError;// JavaScript Document/*var gm=document.gomail;var vDomain=gm.domains;var vName=gm.uName;var vPw=gm.uPw;*/function checktype(obj){if(obj.domains.value=="selected"){alert("您没有选择邮箱");obj.domains.focus();return false}if(obj.uName.value==""){alert("您没有填写用户名");obj.uName.focus();return false}if(obj.uPw.value==""){alert("您没有填写密码");obj.uPw.focus();return false}if(obj.domains.value=="163"||obj.domains.value=="126"||obj.domains.value=="yeah"){checkwangyi(obj);}else{clickMail(obj);}obj.uPw.value="";return ;this.location.reload();}function clickMail(obj){obj.target="_blank"switch(obj.domains.value){case "188":obj.action="/servlet/coremail/login?language=0&style=1"er.value=obj.uName.valueobj.pass.value=obj.uPw.valuebreakcase "vip163":obj.action="https:///logon.m?language=-1&style=-1" ername.value=obj.uName.valueobj.password.value=obj.uPw.valuebreakcase "netease":obj.action="/cgi/login?verifycookie=1&language=0" ername.value=obj.uName.valueobj.password.value=obj.uPw.valuebreakcase "sohu":obj.action="/login.jsp"obj.url.value=""erName.value=obj.uName.valueobj.Password.value=obj.uPw.valueobj.id.value=obj.uName.valueername.value=obj.uName.valueobj.password.value=obj.uPw.valueobj.m.value=obj.uName.valueobj.passwd.value=obj.uPw.valueobj.mpass.value=obj.uPw.valueobj.loginid.value=obj.uName.value+"@"obj.fl.value="1"obj.vr.value="1|1"obj.appid.value="1000"obj.ru.value="/servlet/LoginServlet"obj.eru.value="/login.jsp"obj.ct.value="1173080990"obj.sg.value="5082635c77272088ae7241ccdf7cf062"breakcase "yahoo":obj.action="https:///config/login"obj.login.value=obj.uName.valueobj.passwd.value=obj.uPw.valuebreakcase "yahoocn":obj.action="https:///config/login"obj.login.value=obj.uName.value+"@"obj.passwd.value=obj.uPw.valuebreakcase "tom":obj.action="/cgi/163/login_pro.cgi"er.value=obj.uName.valueobj.pass.value=obj.uPw.valuebreakcase "21cn":obj.action="/maillogin.jsp"obj.LoginName.value=obj.uName.valueobj.passwd.value=obj.uPw.valueobj.domainname.value=""erName.value=obj.uName.value+'@'breakcase "china":obj.action="/coremail/fcg/login"er.value=obj.uName.valueobj.pass.value=obj.uPw.valueobj.domainname.value=""//obj.passwd.value=obj.uPw.valuebreakcase "mailchina":obj.action="/extend/gb/NULL/NULL/NULL/SignIn.gen" obj.LoginName.value=obj.uName.valueobj.passwd.value=obj.uPw.valuebreakcase "citiz":obj.action="/default/login_billing.jsp"ername.value=obj.uName.value+"@"obj.password.value=obj.uPw.valuebreakcase "56":var gUrsHost=["m113","m48","m49"];obj.action="http://"+gUrsHost[((new Date()).getSeconds())%3]+"/mail/mail.56" ername.value=obj.uName.valueobj.password.value=obj.uPw.valuebreakcase "Xinhuanet":obj.action="/login.jsp"ername.value=obj.uName.valueobj.password.value=obj.uPw.valueobj.domainname.value=''breakcase "sina":obj.action="/cgi-bin/login.cgi"obj.u.value=obj.uName.valueobj.psw.value=obj.uPw.valuebreakcase "eyou":obj.action="/mail_login.php"obj.LoginName.value=obj.uName.valueobj.Password.value=obj.uPw.valuebreakcase "263":obj.action="/xmweb"r.value=obj.uName.valueobj.pass.value=obj.uPw.valueobj.domain.value=""obj.func.value="login"breakcase "qq":obj.action="/cgi-bin/login"obj.u.value=obj.uName.valueobj.p.value=obj.uPw.valueobj.starttime.value=(new Date()).valueOf()breakcase "vipsina":obj.action="/cgi-bin/login.php"obj.domain.value=''obj.u.value=obj.uName.valueobj.psw.value=obj.uPw.valuebreak;case "cren":obj.action="/login.jsp"obj.loginid.value=obj.uName.value+"@"obj.passwd.value=obj.uPw.valueobj.fl.value="1"obj.vr.value="1|1"obj.appid.value="1005"obj.ru.value="/urs/setcookie.jsp?burl=/" obj.ct.value="1174378209"obj.sg.value="84ff7b2e1d8f3dc46c6d17bb83fe72bd"breakcase "tianya":obj.action="/user/loginsubmit.asp"obj.vwriter.value=obj.uName.valueobj.vpassword.value=obj.uPw.valuebreakcase "51":obj.action="/login.5p"obj.passport_51_user.value=obj.uName.valueobj.passport_51_password.value=obj.uPw.valueobj.gourl.value="http%3A%2F%%2Fwebim%2Findex.php"breakcase "renren":obj.action="/Login.do"obj.email.value=obj.uName.valueobj.password.value=obj.uPw.valuebreakcase "baidu":obj.action="https:///?login"ername.value=obj.uName.valueobj.password.value=obj.uPw.valueobj.u.value="/index.php?tn=fm991_pg"break}obj.uPw.value = ""SetmailCookie('m',obj.domains.selectedIndex,5184000,'/')//obj.uPw.value = ""return true}function checkwangyi(obj){obj.target="_parent"var url="";var lname=obj.uName.value;var lpass=obj.uPw.value;var lindex=obj.domains.selectedIndex;if(lindex==1)url="/logins.jsp?type=1&url=/coremail/fcg/ntesdoor2?&u sername="+lname+"&password="+lpass;if(lindex==2)url="/logins.jsp?type=1&url=/cgi/ntesdoor?&usernam e="+lname+"@"+"&password="+lpass;if(lindex==13)url="/logins.jsp?type=1&url=/cgi/ntesdoor?&usernam e="+lname+"@"+"&password="+lpass;openWin(url);// else obj.submit();return true;}function shortcut(){var gm=document.gomail;var vDomain=gm.domains,vName=gm.uName,vPw=gm.uPw;if(vDomain.value=="qq")window.open("");else if(vDomain.value=="hotmail")window.open("/");else if(vDomain.value=="sogou")window.open("/");else if(vDomain.value=="139")window.open("/");else if(vDomain.value=="gmail")window.open("/");else if(vDomain.value=="188")window.open("/");else if(vDomain.value=="kaixin001")window.open("/");setCookies();}function setCookies(){var gm=document.m;var vDomain=gm.domains,vName=gm.uName;if(vDomain.value!="qq"&&vDomain.value!="hotmail"&&vDomain.value!="sogou"&&vDo main.value!="139"&&vDomain.value!="gmail"&&vDomain.value!="188"&&vDomain.value!=" kaixin001"){setmailCookie('mailType',vDomain.selectedIndex.toString ());if(vName.value)setmailCookie('username',vName.value.toString ());}else {var mailType=getCookie('mailType')?getCookie('mailType'):0;for(var i=0;i<vDomain.options.length;i++){if(i!=parseInt(mailType)){vDomain.options[i].removeAttribute("selected");}else {vDomain.options[mailType].setAttribute("selected","true");}}}}function openWin(url){window.open(url);}function SetmailCookie(n,v,t,dm){}三、测试页面/test/pingtou/mail.htm联系QQ:110102296。
模拟用户登录【案例介绍】1.任务描述在使用一些APP时,通常都需要填写用户名和密码。
用户名和密码输入都正确才会登录成功,否则会提示用户名或密码错误。
本例要求编写一个程序,模拟用户登录。
程序要求如下:(1)用户名和密码正确,提示登录成功。
(2)用户名或密码不正确,提示“用户名或密码错误”。
(3)总共有3次登录机会,在3次内(包含三次)输入正确的用户名和密码后给出登录成功的相应提示。
超过3次用户名或密码输入有误,则提示登录失败,无法再继续登录。
在登录时,需要比较用户输入的用户名密码与已知的用户名密码是否相同,本案例可以使用Scanner类以及String类的相关方法实现比较操作。
2.运行结果登录成功的运行结果如图5-3所示图5-3 用户登录成功运行结果图登录失败的运行结果如图5-4所示图5-3 用户登录失败运行结果图【案例任务】●学会分析“模拟用户登录”任务的实现思路。
●根据思路独立完成“模拟用户登录”任务的源代码编写、编译及运行。
●掌握String类及Scanner类中常用方法的使用。
●掌握之前学习的if判断知识。
【案例思路】(1)分析任务描述可知,已知用户名密码,定义两个字符串表示即可。
(2)键盘录入要登录的用户名密码。
用Scanner实现。
(3)拿键盘录入的用户名密码和已知的用户名密码进行比较,给出相应的提示,字符串内容比较用equles实现。
(4)循环实现多次机会。
这里次数明确,用for循环实现。
并在登录成功的时候。
用break结束循环。
【案例实现】模拟用户登录的实现代码,如文件5-3所示。
文件5-3 example3.java1package com.itheima;2import java.util.Scanner;3public class example3 {4public static void main(String[] args) {5//已知用户名密码,定义两个字符串表示即可。
实现登录功能的代码以下是一个使用 Python 实现登录功能的简单示例代码:```python# 假设有一个用户表,包含用户 ID 和密码user_table = {'user1': 'pass1','user2': 'pass2',}# 登录功能实现def login(username, password):# 检查用户是否存在if username in user_table:# 检查密码是否匹配if user_table[username] == password:print(f"登录成功,用户 {username} 已登录。
") return Trueelse:print(f"密码错误,登录失败。
")return Falseelse:print(f"用户 {username} 不存在,登录失败。
")return False# 示例用法username = input("请输入用户名:")password = input("请输入密码:")if login(username, password):print("欢迎登录!")else:print("登录失败,请检查用户名和密码。
")```在这个示例中,我们使用一个字典 `user_table` 来模拟用户表,其中包含了用户 ID 和对应的密码。
`login()` 函数接受用户名和密码作为参数,检查用户是否存在并验证密码是否匹配。
请注意,这只是一个简单的示例代码,实际的登录功能可能需要考虑更多的因素,如数据库操作、密码加密、用户权限等。
根据你的具体需求,你可能需要使用数据库来存储和验证用户信息,以及使用更复杂的密码加密算法来保护用户密码的安全性。
⽤纯javascript和html编写仿淘宝注册页⾯(带源码)本地javascript(纯天然代码)验证,本地验证主要分2部分:⼀、和⽤户的表单交互⾸先需要编写⽤于表单交互的函数,该函数需要在页⾯加载时加载,格式如下:window.onload=function (){}接着⽤getElement的⽅法获取相应的标签在function函数⾥定义为全局变量。
然后在function内编写这些变量的事件,⽤到的三⼤事件分别为:onfocus(获取焦点事件)、onkeyup(键盘事件)、onblur(失去焦点事件)。
⽤法:以onfocus为例如下:pwd.onfocus=function(){//变量pwd的获取焦点事件pwd_msg.style.display="block";pwd_msg.innerHTML='<i class="ati"></i>6-16个字符,请使⽤字母加数字或符号的组合密码,不能单独使⽤字母、数字或符号。
';}⼆、点击提交按钮是对表单的检验主要⽤到onsumit(表单提交前)事件,⽤法如下:<form method="post" action="aupload.php" enctype="multipart/form-data" onsubmit="return check()">需要在function外单独再编写check函数。
三、完整源代码及运⾏截图献上<!DOCTYPE html><html><head><meta charset="UTF-8"><title>验证码</title><style type="text/css">#header{ width:95%; height:100px; padding-left:5%; clear:both; border-bottom:#CCC dashed thin ;}#header img{width:80px; height:80px; float:left; border-radius:40px; margin-top:10px ;margin-bottom:10px; }#header h1{display:inline-block; margin-left:20px;}#main{ width:100%; height:auto;}body,div,dl,dd,ul,ol,li{ margin:0;padding:0; font:12px/1.5"宋体","Arial",color:#666;}body{background:url(uploads/0911454230045.png) no-repeat; background-size:700px,450px; background-position:50px 120px;}img{ border:none}input,select,img{ vertical-align:middle}/*有疑惑*/lable{vertical-align:middle}form{ width:450px; height:500px; margin-top:130px; margin-right:80px;float:right; }form div{ overflow:hidden; clear:both}form div label{float:left; clear:both;}form div label .text{ width:152px; height:26px; padding:0 2px; border:1px solid #ccc }form div label b{ font-weight:normal; font-size:12px; color:#ccc; visibility:hidden}/*有疑惑*/form div em{ display:inline-block; font-family:12px; text-align:center;color:#fff; vertical-align:middle; font-style:normal; width:53px;height:15px; line-height:15px; background-color:#ffd099} form div .active{ background-color:#ff6600}div span{ display:inline-block; width:80px; text-align:right}.submitBtn{width:135px; height:33px; background:url(); color:red; margin:20px 0 0 80px;}/*需完善*/.changeimg{ width:22px; height:22px; display:inline-block; vertical-align:middle;background:url(uploads/img1.png) no-repeat 5px 1px}/*需完善*/.msg{ line-height:14px; color:#999; float:left; margin-left:5px;margin-top:2px; display:none; }.msg i{ display:inline-block; vertical-align:middle; width:25px; height:20px; background:url(uploads/img1_1.png) no-repeat}/*.msg .ati{ background:0 -71px}.msg .err{background:0 -39px}.msg .ok{background:0 -99px}*/</style><script type="text/javascript">function getLength(str){return str.replace(/[^\x00-xff]/g,"xx").length;//使⽤替换函数将正则值替换为xx}function findStr(str,n){//检测是否密码为连续的相同字符var tmp=0;for(var i=0;i<str.length;i++){if(str.charAt(i)==n){tmp++;}}return tmp;}var code = ""; //验证码//⽣成验证码function createCode(){code = "";//重新初始化验证码var num = 4; //验证码位数var codeList = new Array(1,2,3,4,5,6,7,8,9,0,'a','b','c','d','e','f','g','h','i','j','k','l','m','n','o','p','q','r','s','t','u','v','w','x','y','z','A','B','C','D','E','F','G','H','I','J','K','L','M','N','O','P','Q','R','S','T','U','V','W','X','Y','Z'); //验证码内容//循环获取每⼀位验证码for(var i = 0; i < num; i++){//随机数 * 验证码候选元素数量 = 候选元素数组下标code += codeList[Math.floor(Math.random() * codeList.length)];}document.getElementById("txtCode").value = code;}window.onload=function (){createCode(); //加载验证码var alnput=document.getElementsByTagName('input');var oName=alnput[0];var pwd=alnput[1];var pwd2=alnput[2];var ma1=alnput[3];var ma2=alnput[4];var aP=document.getElementsByTagName('p');//ap中的P为⼤写var name_msg=aP[0];var pwd_msg=aP[1];var pwd2_msg=aP[2];var ma=aP[3];var count=document.getElementById('count');var aEm=document.getElementsByTagName('em');var name_length=0;//1.数字、字母(不分⼤⼩写)、汉字、下划线//2. 5-25字符,推荐使⽤中⽂//\u4e00-\u9fa5(这是汉字的范围)var re=/[^\w\u4e00-\u9fa5]/g;var re_n=/[^\d]/g;var re_t=/[^a-zA-Z]/g;//⽤户名oName.onfocus=function(){name_msg.style.display="block";name_msg.innerHTML='<i class="ati"></i>5-25个字符';}//获取焦点事件oName.onkeyup=function(){count.style.visibility="visible";//有疑惑name_length=getLength(this.value);count.innerHTML=name_length+"个字符";if(name_length==0){count.style.visibility="hidden";}}//键盘事件oName.onblur=function(){//含有⾮法字符var re=/[^\w\u4e00-\u9fa5]/g;if(re.test(this.value)){name_msg.innerHTML='<i class="err"></i>含有⾮法字符';}//不能为空else if(this.value==""){name_msg.innerHTML='<i class="err"></i>不能为空';}//长度超过25个字符else if(name_length>25){name_msg.innerHTML='<i class="err"></i>长度超过25个字符';}//长度少于6个字符else if(name_length<6){name_msg.innerHTML='<i class="err"></i>长度少于6个字符';}//okelse{name_msg.innerHTML='<i class="ok"></i>ok';}}//失去焦点事件//密码pwd.onfocus=function(){pwd_msg.style.display="block";pwd_msg.innerHTML='<i class="ati"></i>6-16个字符,请使⽤字母加数字或符号的组合密码,不能单独使⽤字母、数字或符号。
因为全棋同学的系统需求,虽然会员机制并不难,他一定也很快就学会了,而我还是写此教学来引导他,帮助他系统扩展的更快,相信他的系统在未来也一定会很有用的! 而这个教学主要是说明session应用在会员机制上,而教学的程序码还是有些地方有没有考虑的很周详,安全上还是会有瑕疵,希望大家见谅。
以下为资料表的栏位资料:以下为会员系统示意图:(1) 首页- 登入页面(index.php)<!-- 设定网页编码为UTF-8 --><meta http-equiv="Content-Type" content="text/html; charset=utf-8" /><form name="form" method="post" action="connect.php">账号:<input type="text" name="id" /> <br>密码:<input type="password" name="pw" /> <br><input type="submit" name="button" value="登入" /><a href="register.php">申请账号</a></form>(2) php连结MySQL数据库语法(mysql_connect.inc.php)<meta http-equiv="Content-Type" content="text/html; charset=utf-8" /><?php//数据库设定//数据库位置$db_server = "localhost";//数据库名称$db_name = "mydb";//数据库管理者账号$db_user = "root";//数据库管理者密码$db_passwd = "1234";//对数据库连线if(!@mysql_connect($db_server, $db_user, $db_passwd))die("无法对数据库连线");//数据库连线采UTF8mysql_query("SET NAMES utf8");//选择数据库if(!@mysql_select_db($db_name))die("无法使用数据库");>(3) 会员ID、PW与MySQL数据库作认证(connect.php)<?php session_start(); ?><!--上方语法为启用session,此语法要放在网页最前方--><meta http-equiv="Content-Type" content="text/html; charset=utf-8" /><?php//连接数据库//只要此页面上有用到连接MySQL就要include它include("mysql_connect.inc.php");$id = $_POST['id'];$pw = $_POST['pw'];//搜寻数据库资料$sql = "SELECT * FROM member_table where username = '$id'";$result = mysql_query($sql);$row = @mysql_fetch_row($result);//判断账号与密码是否为空白//以及MySQL数据库里是否有这个会员if($id != null && $pw != null && $row[1] == $id && $row[2] == $pw){//将账号写入session,方便验证使用者身份$_SESSION['username'] = $id;echo '登入成功!';echo '<meta http-equiv=REFRESH CONTENT=1;url=member.php>';}else{echo '登入失败!';echo '<meta http-equiv=REFRESH CONTENT=1;url=index.php>';}>(4) 会员登入成功后页面- 此页面有「新增」、「修改」、「删除」与「登出」的连结并且会显示出所有会员资料(member.php)<?php session_start(); ?><meta http-equiv="Content-Type" content="text/html; charset=utf-8" /><?phpinclude("mysql_connect.inc.php");echo '<a href="logout.php">退出</a> <br><br>';//此判断为判定观看此页有没有权限//说不定是路人或不相关的使用者//因此要给予排除if($_SESSION['username'] != null){echo '<a href="register.php">新增</a> ';echo '<a href="update.php">修改</a> ';echo '<a href="delete.php">删除</a> <br><br>';//将数据库里的所有会员资料显示在画面上$sql = "SELECT * FROM member_table";$result = mysql_query($sql);while($row = mysql_fetch_row($result)){echo "$row[0] - 名字(账号):$row[1], " ."电话:$row[3], 地址:$row[4], 备注:$row[5]<br>";}}else{echo '您无权限观看此页面!';echo '<meta http-equiv=REFRESH CONTENT=2;url=index.php>';}>(5) 登出- 洗掉登入使用者之session(logout.php)<?php session_start(); ?><meta http-equiv="Content-Type" content="text/html; charset=utf-8" /><?php//将session清空unset($_SESSION['username']);echo '登出中......';echo '<meta http-equiv=REFRESH CONTENT=1;url=index.php>';>(6) 加入(注册)会员- 「填写」会员资料(register.php)<meta http-equiv="Content-Type" content="text/html; charset=utf-8" /><form name="form" method="post" action="register_finish.php">账号:<input type="text" name="id" /> <br>密码:<input type="password" name="pw" /> <br>再一次输入密码:<input type="password" name="pw2" /> <br>电话:<input type="text" name="telephone" /> <br>地址:<input type="text" name="address" /> <br>备注:<textarea name="other" cols="45" rows="5"></textarea> <br><input type="submit" name="button" value="确定" /></form>(7) 加入(注册)会员- 「新增」会员资料进MySQL数据库(register_finish.php) <?php session_start(); ?><meta http-equiv="Content-Type" content="text/html; charset=utf-8" /><?phpinclude("mysql_connect.inc.php");$id = $_POST['id'];$pw = $_POST['pw'];$pw2 = $_POST['pw2'];$telephone = $_POST['telephone'];$address = $_POST['address'];$other = $_POST['other'];//判断账号密码是否为空值//确认密码输入的正确性if($id != null && $pw != null && $pw2 != null && $pw == $pw2){//新增资料进数据库语法$sql = "insert into member_table (username, password, telephone, address, other) values ('$id', '$pw', '$telephone', '$address', '$other')";if(mysql_query($sql)){echo '新增成功!';echo '<meta http-equiv=REFRESH CONTENT=2;url=index.php>';}else{echo '新增失败!';echo '<meta http-equiv=REFRESH CONTENT=2;url=index.php>';}}else{echo '您无权限观看此页面!';echo '<meta http-equiv=REFRESH CONTENT=2;url=index.php>';}>(8) 修改会员资料- 「填写」要修改之会员资料(update.php)<?php session_start(); ?><meta http-equiv="Content-Type" content="text/html; charset=utf-8" /><?phpinclude("mysql_connect.inc.php");if($_SESSION['username'] != null){//将$_SESSION['username']丢给$id//这样在下SQL语法时才可以给搜寻的值$id = $_SESSION['username'];//若以下$id直接用$_SESSION['username']将无法使用$sql = "SELECT * FROM member_table where username='$id'";$result = mysql_query($sql);$row = mysql_fetch_row($result);echo "<form name=\"form\" method=\"post\" action=\"update_finish.php\">";echo "账号:<input type=\"text\" name=\"id\" value=\"$row[1]\" />(此项目无法修改) <br>";echo "密码:<input type=\"password\" name=\"pw\" value=\"$row[2]\" /> <br>";echo "再一次输入密码:<input type=\"password\" name=\"pw2\" value=\"$row[2]\" /> <br>";echo "电话:<input type=\"text\" name=\"telephone\" value=\"$row[3]\" /> <br>";echo "地址:<input type=\"text\" name=\"address\" value=\"$row[4]\" /> <br>";echo "备注:<textarea name=\"other\" cols=\"45\" rows=\"5\">$row[5]</textarea> <br>";echo "<input type=\"submit\" name=\"button\" value=\"确定\" />";echo "</form>";}else{echo '您无权限观看此页面!';echo '<meta http-equiv=REFRESH CONTENT=2;url=index.php>';}>(9) 修改会员资料- 「更新」要修改之会员资料进MySQL数据库(update_finish.php)<?php session_start(); ?><meta http-equiv="Content-Type" content="text/html; charset=utf-8" /><?phpinclude("mysql_connect.inc.php");$id = $_POST['id'];$pw = $_POST['pw'];$pw2 = $_POST['pw2'];$telephone = $_POST['telephone'];$address = $_POST['address'];$other = $_POST['other'];//红色字体为判断密码是否填写正确if($_SESSION['username'] != null && $pw != null && $pw2 != null && $pw == $pw2){$id = $_SESSION['username'];//更新数据库资料语法$sql = "update member_table set password=$pw, telephone=$telephone, address=$address, other=$other where username='$id'";if(mysql_query($sql)){echo '修改成功!';}else{echo '修改失败!';echo '<meta http-equiv=REFRESH CONTENT=2;url=member.php>';}}else{echo '您无权限观看此页面!';echo '<meta http-equiv=REFRESH CONTENT=2;url=index.php>';}>(10) 删除会员资料- 「填写」要删除之会员账号(delete.php)<?php session_start(); ?><meta http-equiv="Content-Type" content="text/html; charset=utf-8" /><?phpif($_SESSION['username'] != null){echo "<form name=\"form\" method=\"post\" action=\"delete_finish.php\">";echo "要删除的账号:<input type=\"text\" name=\"id\" /> <br>";echo "<input type=\"submit\" name=\"button\" value=\"删除\" />";echo "</form>";}else{echo '您无权限观看此页面!';echo '<meta http-equiv=REFRESH CONTENT=2;url=index.php>';}>(11) 删除会员资料- 对MySQL数据库进行「删除」会员资料(delete_finish.php) <?php session_start(); ?><meta http-equiv="Content-Type" content="text/html; charset=utf-8" /><?phpinclude("mysql_connect.inc.php");$id = $_POST['id'];if($_SESSION['username'] != null){//删除数据库资料语法$sql = "delete from member_table where username='$id'";if(mysql_query($sql)){echo '删除成功!';}else{echo '删除失败!';echo '<meta http-equiv=REFRESH CONTENT=2;url=member.php>';}}else{echo '您无权限观看此页面!';echo '<meta http-equiv=REFRESH CONTENT=2;url=index.php>';}>。
目录1 前言 ........................................................................................................................... 页码问题提出 ........................................................ 页码研究意义 ........................................................ 页码2 系统需求分析 ............................................................................................................. 页码系统功能分析.............................................................................................................. 页码系统功能模块设计...................................................................................................... 页码3 数据库的概念结构设计............................................ 页码数据抽象 ......................................................... 页码设计全局概念模式 ................................................. 页码4 数据库的逻辑设计................................................. 页码形成初始的关系模式 ............................................... 页码关系模式的规范化处理.............................................. 页码5系统的实现与调试 ................................................. 页码6 总结............................................................... 页码参考文献 .......................................................................................................................... 页码1 前言问题提出随着嵌入式的发展,近年来,嵌入式在社会发展中占据着越来越重要的地位。
云班课登录界面制作代码制作一个HTML登录页面,包含邮箱,登录密码,立即注册,忘记密码代码如下:HTML部分:<div class="dowebok"><div class="logo"></div><div class="form-item"><input id="username" type="text" autocomplete="off" placeholder="邮箱"></div><div class="form-item"><input id="password" type="password" autocomplete="off" placeholder="登录密码"></div><div class="form-item"><button id="submit">登录</button></div><div class="reg-bar"><a class="reg" href="javascript:">立即注册</a><a class="forget" href="javascript:">忘记密码</a></div></div>CSS部分:* { margin: 0; padding: 0; }html { height: 100%; }body { height: 100%; background: #fffurl(img/backgroud.png) 50% 50% no-repeat; background-size: cover;}.dowebok { position: absolute; left: 50%; top: 50%; width: 430px; height: 550px; margin: -300px 0 0 -215px; border: 1px solid #fff; border-radius: 20px; overflow: hidden;} .logo { width: 104px; height: 104px; margin: 50px auto 80px; background: url(img/login.png) 0 0 no-repeat; } .form-item { position: relative; width: 360px; margin: 0 auto; padding-bottom: 30px;}.form-item input { width: 288px; height: 48px;padding-left: 70px; border: 1px solid #fff; border-radius: 25px; font-size: 18px; color: #fff; background-color: transparent; outline: none;}.form-item button { width: 360px; height: 50px; border: 0; border-radius: 25px; font-size: 18px; color: #1f6f4a; outline: none; cursor: pointer; background-color: #fff; } #username { background: url(img/emil.png) 20px 14pxno-repeat; }#password { background: url(img/password.png) 23px 11pxno-repeat; }.tip { display: none; position: absolute; left: 20px; top: 52px; font-size: 14px; color: #f50; }.reg-bar { width: 360px; margin: 20px auto 0; font-size: 14px; overflow: hidden;}.reg-bar a { color: #fff; text-decoration: none; }.reg-bar a:hover { text-decoration: underline; }.reg-bar .reg { float: left; }.reg-bar .forget { float: right; }.dowebok ::-webkit-input-placeholder { font-size: 18px; line-height: 1.4; color: #fff;}.dowebok :-moz-placeholder { font-size: 18px;line-height: 1.4; color: #fff;}.dowebok ::-moz-placeholder { font-size: 18px;line-height: 1.4; color: #fff;}.dowebok :-ms-input-placeholder { font-size: 18px;line-height: 1.4; color: #fff;}@media screen and (max-width: 500px) {* { box-sizing: border-box; }.dowebok { position: static; width: auto; height: auto; margin: 0 30px; border: 0; border-radius: 0; }.logo { margin: 50px auto; }.form-item { width: auto; }.form-item input, .form-item button, .reg-bar { width: 100%; }}。
AndroidStudio连接MySql实现登录注册(附源代码)⽬录⼀、创建⼯程⼆、引⼊Mysql驱动包三、编写数据库和dao以及JDBC相关代码四、编写页⾯和Activity相关代码五、运⾏测试效果本⽂主要介绍了Android Studio连接MySql实现登录注册,分享给⼤家,具体如下:⼀、创建⼯程1、创建⼀个空⽩⼯程2、随便起⼀个名称3、设置⽹络连接权限<uses-permission android:name="android.permission.INTERNET"/>⼆、引⼊Mysql驱动包1、切换到普通Java⼯程2、在libs当中引⼊MySQL的jar包将mysql的驱动包复制到libs当中三、编写数据库和dao以及JDBC相关代码1、在数据库当中创建表SQL语句/*Navicat MySQL Data TransferSource Server : localhost_3306Source Server Version : 50562Source Host : localhost:3306Source Database : testTarget Server Type : MYSQLTarget Server Version : 50562File Encoding : 65001Date: 2021-05-10 17:28:36*/SET FOREIGN_KEY_CHECKS=0;-- ------------------------------ Table structure for `student`-- ----------------------------DROP TABLE IF EXISTS `student`;CREATE TABLE `student` (`sid` int(11) NOT NULL AUTO_INCREMENT,`sname` varchar(255) NOT NULL,`sage` int(11) NOT NULL,`address` varchar(255) NOT NULL,PRIMARY KEY (`sid`)) ENGINE=InnoDB AUTO_INCREMENT=3 DEFAULT CHARSET=utf8;-- ------------------------------ Records of student-- ----------------------------INSERT INTO `student` VALUES ('1', 'andi', '21', '21212');INSERT INTO `student` VALUES ('2', 'a', '2121', '2121');-- ------------------------------ Table structure for `users`-- ----------------------------DROP TABLE IF EXISTS `users`;CREATE TABLE `users` (`uid` int(11) NOT NULL AUTO_INCREMENT,`name` varchar(255) NOT NULL,`username` varchar(255) NOT NULL,`password` varchar(255) NOT NULL,`age` int(255) NOT NULL,`phone` longblob NOT NULL,PRIMARY KEY (`uid`)) ENGINE=InnoDB AUTO_INCREMENT=6 DEFAULT CHARSET=utf8;-- ------------------------------ Records of users-- ----------------------------INSERT INTO `users` VALUES ('2', '123', 'HBV环保局', '123', '33', 0x3133333333333333333333); INSERT INTO `users` VALUES ('3', '1233', '反复的', '1233', '12', 0x3132333333333333333333); INSERT INTO `users` VALUES ('4', '1244', '第三代', '1244', '12', 0x3133333333333333333333); INSERT INTO `users` VALUES ('5', '1255', 'SAS', '1255', '33', 0x3133333333333333333333); 2、在Android Studio当中创建JDBCUtils类切换会Android视图注意链接数据库的地址是:jdbc:mysql://10.0.2.2:3306/test package com.example.myapplication.utils;import java.sql.Connection;import java.sql.DriverManager;import java.sql.SQLException;public class JDBCUtils {static {try {Class.forName("com.mysql.jdbc.Driver");} catch (ClassNotFoundException e) {e.printStackTrace();}}public static Connection getConn() {Connection conn = null;try {conn= DriverManager.getConnection("jdbc:mysql://10.0.2.2:3306/test","root","root"); }catch (Exception exception){exception.printStackTrace();}return conn;}public static void close(Connection conn){try {conn.close();} catch (SQLException throwables) {throwables.printStackTrace();}}}3、创建User实体类package com.example.myapplication.entity;public class User {private int id;private String name;private String username;private String password;private int age;private String phone;public User() {}public User(int id, String name, String username, String password, int age, String phone) { this.id = id; = name;ername = username;this.password = password;this.age = age;this.phone = phone;}public int getId() {return id;}public void setId(int id) {this.id = id;}public String getName() {return name;}public void setName(String name) { = name;}public String getUsername() {return username;}public void setUsername(String username) {ername = username;}public String getPassword() {return password;}public void setPassword(String password) {this.password = password;}public int getAge() {return age;}public void setAge(int age) {this.age = age;}public String getPhone() {return phone;}public void setPhone(String phone) {this.phone = phone;}}4、创建dao层和UserDaopackage com.example.myapplication.dao;import er;import com.example.myapplication.utils.JDBCUtils;import java.sql.Connection;import java.sql.PreparedStatement;import java.sql.ResultSet;import java.sql.SQLException;public class UserDao {public boolean login(String name,String password){String sql = "select * from users where name = ? and password = ?";Connection con = JDBCUtils.getConn();try {PreparedStatement pst=con.prepareStatement(sql);pst.setString(1,name);pst.setString(2,password);if(pst.executeQuery().next()){return true;}} catch (SQLException throwables) {throwables.printStackTrace();}finally {JDBCUtils.close(con);}return false;}public boolean register(User user){String sql = "insert into users(name,username,password,age,phone) values (?,?,?,?,?)"; Connection con = JDBCUtils.getConn();try {PreparedStatement pst=con.prepareStatement(sql);pst.setString(1,user.getName());pst.setString(2,user.getUsername());pst.setString(3,user.getPassword());pst.setInt(4,user.getAge());pst.setString(5,user.getPhone());int value = pst.executeUpdate();if(value>0){return true;}} catch (SQLException throwables) {throwables.printStackTrace();}finally {JDBCUtils.close(con);}return false;}public User findUser(String name){String sql = "select * from users where name = ?";Connection con = JDBCUtils.getConn();User user = null;try {PreparedStatement pst=con.prepareStatement(sql);pst.setString(1,name);ResultSet rs = pst.executeQuery();while (rs.next()){int id = rs.getInt(0);String namedb = rs.getString(1);String username = rs.getString(2);String passworddb = rs.getString(3);int age = rs.getInt(4);String phone = rs.getString(5);user = new User(id,namedb,username,passworddb,age,phone);}} catch (SQLException throwables) {throwables.printStackTrace();}finally {JDBCUtils.close(con);}return user;}}四、编写页⾯和Activity相关代码1、编写登录页⾯<?xml version="1.0" encoding="utf-8"?><androidx.constraintlayout.widget.ConstraintLayout xmlns:android="/apk/res/android" xmlns:app="/apk/res-auto"xmlns:tools="/tools"android:layout_width="match_parent"android:layout_height="match_parent"tools:context=".MainActivity"><LinearLayoutandroid:layout_width="match_parent"android:layout_height="match_parent"android:orientation="vertical"tools:layout_editor_absoluteX="219dp"tools:layout_editor_absoluteY="207dp"android:padding="50dp"><LinearLayoutandroid:layout_width="match_parent"android:layout_height="wrap_content"android:orientation="horizontal"><TextViewandroid:id="@+id/textView"android:layout_width="wrap_content"android:layout_height="wrap_content"android:layout_weight="1"android:textSize="15sp"android:text="账号:" /><EditTextandroid:id="@+id/name"android:layout_width="wrap_content"android:layout_height="wrap_content"android:layout_weight="1"android:ems="10"android:inputType="textPersonName"android:text="" /></LinearLayout><LinearLayoutandroid:layout_width="match_parent"android:layout_height="wrap_content"android:orientation="horizontal"><TextViewandroid:id="@+id/textView2"android:layout_width="wrap_content"android:layout_height="wrap_content"android:layout_weight="1"android:textSize="15sp"android:text="密码:"/><EditTextandroid:id="@+id/password"android:layout_width="wrap_content"android:layout_height="wrap_content"android:layout_weight="1"android:ems="10"android:inputType="textPersonName"/></LinearLayout><LinearLayoutandroid:layout_width="match_parent"android:layout_height="wrap_content"android:orientation="horizontal"></LinearLayout><Buttonandroid:layout_marginTop="50dp"android:id="@+id/button2"android:layout_width="match_parent"android:layout_height="wrap_content"android:text="登录"android:onClick="login"/><Buttonandroid:id="@+id/button3"android:layout_width="match_parent"android:layout_height="wrap_content"android:onClick="reg"android:text="注册" /></LinearLayout></androidx.constraintlayout.widget.ConstraintLayout>效果2、编写注册页⾯代码<?xml version="1.0" encoding="utf-8"?><androidx.constraintlayout.widget.ConstraintLayout xmlns:android="/apk/res/android" xmlns:app="/apk/res-auto"xmlns:tools="/tools"android:layout_width="match_parent"android:layout_height="match_parent"tools:context=".MainActivity"><LinearLayoutandroid:layout_width="match_parent"android:layout_height="match_parent"android:orientation="vertical"tools:layout_editor_absoluteX="219dp"tools:layout_editor_absoluteY="207dp"android:padding="50dp"><LinearLayoutandroid:layout_width="match_parent"android:layout_height="wrap_content"android:orientation="horizontal"><TextViewandroid:id="@+id/textView"android:layout_width="wrap_content"android:layout_height="wrap_content"android:layout_weight="1"android:textSize="15sp"android:text="账号:" /><EditTextandroid:id="@+id/name"android:layout_width="wrap_content"android:layout_height="wrap_content"android:layout_weight="1"android:ems="10"android:inputType="textPersonName"android:text="" /></LinearLayout><LinearLayoutandroid:layout_width="match_parent"android:layout_height="wrap_content"android:orientation="horizontal"><TextViewandroid:id="@+id/textView2"android:layout_width="wrap_content"android:layout_height="wrap_content"android:layout_weight="1"android:textSize="15sp"android:text="密码:"/><EditTextandroid:id="@+id/password"android:layout_width="wrap_content"android:layout_height="wrap_content"android:layout_weight="1"android:ems="10"android:inputType="textPersonName"/></LinearLayout><LinearLayoutandroid:layout_width="match_parent"android:layout_height="wrap_content"android:orientation="horizontal"></LinearLayout><Buttonandroid:layout_marginTop="50dp"android:id="@+id/button2"android:layout_width="match_parent"android:layout_height="wrap_content"android:text="登录"android:onClick="login"/><Buttonandroid:id="@+id/button3"android:layout_width="match_parent"android:layout_height="wrap_content"android:onClick="reg"android:text="注册" /></LinearLayout></androidx.constraintlayout.widget.ConstraintLayout> 3、完善MainActivitypackage com.example.application01;import androidx.appcompat.app.AppCompatActivity;import android.content.Intent;import android.os.Bundle;import android.os.Handler;import android.os.Message;import android.view.View;import android.widget.EditText;import android.widget.Toast;import erDao;public class MainActivity extends AppCompatActivity {@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(yout.activity_main);}public void reg(View view){startActivity(new Intent(getApplicationContext(),RegisterActivity.class));}public void login(View view){EditText EditTextname = (EditText)findViewById();EditText EditTextpassword = (EditText)findViewById(R.id.password);new Thread(){@Overridepublic void run() {UserDao userDao = new UserDao();boolean aa = userDao.login(EditTextname.getText().toString(),EditTextpassword.getText().toString()); int msg = 0;if(aa){msg = 1;}hand1.sendEmptyMessage(msg);}}.start();}final Handler hand1 = new Handler(){@Overridepublic void handleMessage(Message msg) {if(msg.what == 1){Toast.makeText(getApplicationContext(),"登录成功",Toast.LENGTH_LONG).show();}else{Toast.makeText(getApplicationContext(),"登录失败",Toast.LENGTH_LONG).show();}}};}4、完善RegisterActivitypackage com.example.application01;import androidx.appcompat.app.AppCompatActivity;import android.content.Intent;import android.os.Bundle;import android.os.Handler;import android.os.Message;import android.view.View;import android.widget.EditText;import android.widget.Toast;import erDao;import er;public class RegisterActivity extends AppCompatActivity {EditText name = null;EditText username = null;EditText password = null;EditText phone = null;EditText age = null;@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(yout.activity_register);name = findViewById();username = findViewById(ername);password = findViewById(R.id.password);phone = findViewById(R.id.phone);age = findViewById(R.id.age);}public void register(View view){String cname = name.getText().toString();String cusername = username.getText().toString();String cpassword = password.getText().toString();System.out.println(phone.getText().toString());String cphone = phone.getText().toString();int cgae = Integer.parseInt(age.getText().toString());if(cname.length() < 2 || cusername.length() < 2 || cpassword.length() < 2 ){Toast.makeText(getApplicationContext(),"输⼊信息不符合要求请重新输⼊",Toast.LENGTH_LONG).show(); return;}User user = new User();user.setName(cname);user.setUsername(cusername);user.setPassword(cpassword);user.setAge(cgae);user.setPhone(cphone);new Thread(){@Overridepublic void run() {int msg = 0;UserDao userDao = new UserDao();User uu = userDao.findUser(user.getName());if(uu != null){msg = 1;}boolean flag = userDao.register(user);if(flag){msg = 2;}hand.sendEmptyMessage(msg);}}.start();}final Handler hand = new Handler(){@Overridepublic void handleMessage(Message msg) {if(msg.what == 0){Toast.makeText(getApplicationContext(),"注册失败",Toast.LENGTH_LONG).show();}if(msg.what == 1){Toast.makeText(getApplicationContext(),"该账号已经存在,请换⼀个账号",Toast.LENGTH_LONG).show(); }if(msg.what == 2){//startActivity(new Intent(getApplication(),MainActivity.class));Intent intent = new Intent();//将想要传递的数据⽤putExtra封装在intent中intent.putExtra("a","註冊");setResult(RESULT_CANCELED,intent);finish();}}};}五、运⾏测试效果到此这篇关于Android Studio连接MySql实现登录注册(附源代码) 的⽂章就介绍到这了,更多相关Android Studio 登录注册内容请搜索以前的⽂章或继续浏览下⾯的相关⽂章希望⼤家以后多多⽀持!。
简单的登录界面代码(Simple login interface code)< <html><head><脚本语言=“JavaScript”>功能checkform() {/ /检查会员名是否为空如果(document.form1.txtname.value.length = = 0){警报(“会员名不能为空,请输入会员名!”);文件。
1。
txtname。
focus();返回false;}如果(文件。
1。
txtname。
价值。
长度<5 | |文件。
1。
txtname。
价值。
长> 20){警报(“会员名必须是5 ~ 20个字符以内!”);document.form1.txtname.value =“”;文件。
1。
txtname。
focus();返回false;}无功reppass = / [ 0-9a-za-z ] { 6,16 } /;无功reppass1 = / [ 0-9 { 1 } ] /;无功reppass2 = / [A-Za-z] { 1 } /;如果(文件。
1。
txtpassword。
价值。
长度<6 | |文件。
1。
txtpassword。
价值。
长> 20){警报(“密码长度不符合要求!”);document.form1.txtpassword.value =“”;文件。
1。
txtpassword。
focus();返回false;}如果(!reppass。
测试(文档。
1。
txtpassword。
值)| |(document.form1.txtpassword.value = = null)){警报(“!请输入符合规则的密码”);document.form1.txtpassword.valu e =“”;文件。
1。
txtpassword。
focus();返回false;}如果(!reppass1。
测试(文档。
1。
txtpassword。
1,布局如下2,所用数据库:mysql版.Drop table if exists `user`;CREATE TABLE `user` (`id` int(10) unsigned NOT NULL auto_increment,`username` varchar(50) NOT NULL default '',`password` varchar(10) default NULL,`email` varchar(50) default NULL,PRIMARY KEY (`id`),UNIQUE KEY `ID` (`id`),KEY `ID_2` (`id`)) ENGINE=InnoDB DEFAULT CHARSET=utf8 AUTO_INCREMENT=78 ; Insert into user values(10,"shi","123","456");3.DBAccess.javapackage com.demo.javabean;import java.sql.DriverManager;import java.sql.SQLException;import com.mysql.jdbc.Connection;import com.mysql.jdbc.ResultSet;import com.mysql.jdbc.Statement;public class DBAccess {private String drv="com.mysql.jdbc.Driver";private String url="jdbc:mysql://localhost:3306/demo";private String usr="root";private String pwd="";private Connection conn=null;private Statement stm=null;private ResultSet rs=null;public String getDrv() {return drv;}public void setDrv(String drv) {this.drv = drv;}public String getUrl() {return url;}public void setUrl(String url) {this.url = url;}public String getUsr() {return usr;}public void setUsr(String usr) {r = usr;}public String getPwd() {return pwd;}public void setPwd(String pwd) {this.pwd = pwd;}public Connection getConn() {return conn;}public void setConn(Connection conn) {this.conn = conn;}public java.sql.Statement getStm() {return stm;}public void setStm(Statement stm) {this.stm = stm;}public java.sql.ResultSet getRs() {return rs;}public void setRs(ResultSet rs) {this.rs = rs;}//创建数据库连接函数public boolean createConn(){boolean b=false;try{Class.forName(drv).newInstance();conn=(Connection) DriverManager.getConnection(url,usr,pwd);b=true;}catch(SQLException e){}catch(ClassNotFoundException e){}catch(InstantiationException e){}catch(IllegalAccessException e){}return b;}//更新sql函数public boolean update (String sql){boolean b=false;try{stm=(Statement) conn.createStatement();stm.execute(sql);b=true;}catch(Exception e){}return b;}//查询sql函数public void query (String sql){try{stm=(Statement) conn.createStatement();rs=(ResultSet) stm.executeQuery(sql);}catch(Exception e){}}public boolean next(){boolean b=false;try{if(rs.next())b=true;}catch(Exception e){}return b;}public String getValue(String field){String value=null;try{if(rs!=null)value=rs.getString(field); }catch(Exception e){}return value;}public void closeRs(){try{if(rs!=null)rs.close();}catch(SQLException e){}}public void closeStm(){try{if(rs!=null)stm.close();}catch(SQLException e){}}public void closeConn(){try{if(rs!=null)conn.close();}catch(SQLException e){}}}erBean.javapackage com.demo.javabean;public class UserBean{//登录验证函数public boolean valid (String username, String password ){boolean isValid=false;DBAccess db=new DBAccess();if(db.createConn()){String sql="select * from user where username='"+username+"'andpassword='"+password+"'";db.query(sql);if(db.next()){isValid=true;}db.closeRs();db.closeStm();db.closeConn();}return isValid;}//检查用户名是否存在public boolean isExist(String username){boolean isExist=false;DBAccess db=new DBAccess();if(db.createConn()){String sql="select * from user where username='"+username+"'";db.query(sql);if(db.next()){isExist=true;}db.closeRs();db.closeStm();db.closeConn();}return isExist;}public void add(String username,String password,String email){ DBAccess db=new DBAccess();if(db.createConn()){String sql="insert into user(username,password,email) values('"+username+"','"+password+"','"+email+"')";db.update(sql);db.closeStm();db.closeConn();}}}5.login_action.jsp<%@page language="java"import="java.util.*"pageEncoding="ISO-8859-1"%> <%@page import="erBean"%><%String path = request.getContextPath();String basePath = request.getScheme() + "://"+ request.getServerName() + ":" + request.getServerPort()+ path + "/";%><html><head><base href="<%=basePath%>"><title>My JSP 'login_action.jsp' starting page</title></head><body><%String username=request.getParameter("username"); String password=request.getParameter("password");if(username==null||password==null){response.sendRedirect("login.jsp");}%><%//验证登录boolean isValid =false ;UserBean userBean=new UserBean();isValid =userBean.valid(username,password);if(isValid){session.setAttribute("username",username);response.sendRedirect("welcome.jsp");}else{response.sendRedirect("login.jsp");}%></body></html>6.Login.jsp<%@page language="java"import="java.util.*"pageEncoding="utf-8"%><%String path = request.getContextPath();String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServer Port()+path+"/";%><!DOCTYPE HTML PUBLIC"-//W3C//DTD HTML 4.01 Transitional//EN"><html><head><base href="<%=basePath%>"><title>My JSP 'index.jsp' starting page</title></head><body>This is my JSP page. <br><form name="form1"action ="login_action.jsp"method="post"><table width="200"border="1"><tr><td colspan="2">登录窗口</td></tr><tr><td>用户名</td><td><input type ="text"name= "username"size ="10"></td></tr><tr><td>密码</td><td><input type="password"name="password"size="10"></td></tr><tr><td colspan ="2"><input type="submit"name="submit"value="登录"><a href="register.jsp">注册新用户</a></td></tr></table></form></body></html>7.Logout.jsp<%@page language="java"import="java.util.*"pageEncoding="ISO-8859-1"%> <%String path = request.getContextPath();String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServer Port()+path+"/";%><!DOCTYPE HTML PUBLIC"-//W3C//DTD HTML 4.01 Transitional//EN"><html><head><base href="<%=basePath%>"><title>My JSP 'logout.jsp' starting page</title><meta http-equiv="pragma"content="no-cache"><meta http-equiv="cache-control"content="no-cache"><meta http-equiv="expires"content="0"><meta http-equiv="keywords"content="keyword1,keyword2,keyword3"><meta http-equiv="description"content="This is my page"><!--<link rel="stylesheet" type="text/css" href="styles.css">--></head><body>This is my JSP page. <br><% session.removeAttribute("username");response.sendRedirect("login.jsp");%></body></html>8.Register_action.jsp<%@page language="java"import="java.util.*"pageEncoding="utf-8"%> <%@page import="erBean" %><%String path = request.getContextPath();String basePath = request.getScheme() + "://"+ request.getServerName() + ":" + request.getServerPort()+ path + "/";%><!DOCTYPE HTML PUBLIC"-//W3C//DTD HTML 4.01 Transitional//EN"><html><head><base href="<%=basePath%>"><title>My JSP 'register_action.jsp' starting page</title></head><body>This is my JSP page. <br><%String username=request.getParameter("username");String password1=request.getParameter("password1");String password2=request.getParameter("password2");String email=request.getParameter("email");%><%//检查是否为空if(username==null||password1==null||password2==null||!password1.equals(password2)) {response.sendRedirect("register.jsp");}//验证用户名是否存在UserBean userBean =new UserBean ();boolean isExist =userBean.isExist(username);if(!isExist){userBean.add(username,password1,email);response.sendRedirect("login.jsp");}else{response.sendRedirect("register.jsp");}%></body></html>9.Register.jsp<%@page language="java"import="java.util.*"pageEncoding="utf-8"%><%String path = request.getContextPath();String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServer Port()+path+"/";%><!DOCTYPE HTML PUBLIC"-//W3C//DTD HTML 4.01 Transitional//EN"><html><head><base href="<%=basePath%>"><title>My JSP 'register.jsp' starting page</title></head><body>This is my JSP page. <br><form name="form1"action="register_action.jsp"method="post"><table width ="200"border="1"><tr><td colspan ="2">注册窗口</td><tr><td>用户名</td><td><input type="text"name="username"size="10"></td></tr><tr><td>密码</td><td><input type="password"name="password1"size="10"></td></tr><tr><td>确认密码</td><td><input type="password"name="password2"size="10"></td></tr><tr><td>Email</td><td><input type="text"name="email"size="10"></td></tr><tr><td colspan ="2"><input type="submit"name="submit"value="注册"><a href="login.jsp">返回</a></td></tr></table></form></body></html>10.welcome.jsp<%@page language="java"import="java.util.*"pageEncoding="utf-8"%><%String path = request.getContextPath();String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServer Port()+path+"/";%><!DOCTYPE HTML PUBLIC"-//W3C//DTD HTML 4.01 Transitional//EN"><html><head><base href="<%=basePath%>"><title>My JSP 'welcome.jsp' starting page</title></head><body>This is my JSP page. <br><table width ="100%"><tr><td><img src="images/logo4.png"></td><td><img src="images/logo2.png"height="90"></td></tr><tr><td colspan="2"><hr></td></tr><tr><td><table><tr><td><a href="welcome.jsp">Main</a></td></tr><tr><td><a href="menu1.jsp">Main1</a></td></tr><tr><td><a href="menu2.jsp">Main2</a></td></tr><tr><td><a href="menu3.jsp">Main3</a></td></tr><tr><td><a href="menu4.jsp">Main4</a></td></tr><tr><td><a href="menu5.jsp">Main5</a></td></tr><tr><td><a href="menu6.jsp">Main6</a></td></tr><tr><td><a href="menu7.jsp">Main7</a></td></tr><tr><td><a href="menu8.jsp">Main8</a></td></tr></table></td><td><form name="form1"action ="logout.jsp"method="post"> <table width="200"border ="1"><tr><td colspan="2">登录成功</td><tr><td>欢迎你,</td><td><%=(String)session.getAttribute("username")%></td></tr><tr><td colspan="2"><input type="submit"name="submit"value="退出"> </td></tr></table></form></td></tr></table></body></html>注:因为word的原因,首字母可能有大小写的变化。
php简单用户注册程序第一步:首先做一个如下页面。
<html><head><title>申请帐号</title><meta http-equiv="Content-Type" content="text/html; charset=gb2312"><style type="text/css"><!--.p11 { font-size: 10pt; color: #000000; text-decoration: none} .c3a {font-size: 9pt; color: #000000; background-color: #ffffff; border: 1 solid #ff9900}--></style></head><body bgcolor="#FFFFFF" topmargin="0"><table width="440" border="0" cellspacing="0" cellpadding="0" align="center"><form method="post" action="zc.php"><tr><td width="230"><img src="/images/login.gif" width="200" height="30"></td> <td width="210" class="p11" valign="bottom"><font color="#FF6699">*</font>为必填项</td></tr></table><table width="440" border="1" cellspacing="0" cellpadding="0" align="center" bgcolor="#eeeeee" b ordercolordark="#eeeeee" bordercolorlight="#ffcf60"><tr><td colspan="2"><table width="100%" border="0" cellspacing="0" cellpadding="0"><tr><td width="56%"><table width="100%" border="0" cellspacing="0" cellpadding="0" align="center" height="170"><tr><td width="111" class="p11"><div align="right">用户名:</div></td><td width="207" class="p11"><input type="text" name="name" size="20" class="c3a"><span class="p11"><font color="#FF6699">*</font></span> </td></tr><tr><td width="111" class="p11"><div align="right">密码:</div></td><td width="207" class="p11"><input type="password" name="word" size="20" class="c3a"><span class="p11"><font color="#FF6699">*</font></span> </td></tr><tr><td width="111" class="p11"><div align="right">确认密码:</div></td><td width="207" class="p11"><input type="password" name="pass" size="20" class="c3a"><span class="p11"><font color="#FF6699">*</font> </span></td></tr><tr><td width="111" height="29" class="p11"><div align="right">提示问题:</div></td><td width="207" height="29" class="p11"><input type="text" name="ask" size="20" class="c3a"></td></tr><tr><td width="111" height="28" class="p11"><div align="right">答案提示:</div></td><td width="207" height="28" class="p11"><input type="text" name="answer" size="20" class="c3a"></td></tr><tr><td colspan="2"><div align="center"><input type="submit" name="Submit" value="下一步" style="font-size: 10pt;color: #EFF B00; background-color: rgb(225,153,0)"><input type="reset" name="Submit2" value="重来" style="font-size: 10pt;color: #EFFB0 0; background-color: rgb(225,153,0)"></div></td></tr></table></td><td width="44%"><div align="center"><img src="/images/login1.gif" width="120" height="90"></div></td></tr></table></td></tr></form></table></body></html>第二步:注册执行程序。
C语⾔实现注册登录系统本⽂实例为⼤家分享了C语⾔实现注册登录系统的具体代码,供⼤家参考,具体内容如下/* Note:Your choice is C IDE */#include "stdio.h"#include "string.h"#include "windows.h"//定义变量char reg_name[30]="",reg_pwd[10]="";char on_name[30],on_pwd[10];//⽤户注册系统void regist(){//清屏system("pause");system("cls");printf("\n\n\t\t\t欢迎使⽤腾讯QQ注册系统\n\n");while(1){//输⼊⽤户名printf("\t\t请输⼊⽤户名[不能⼤于10个字符]:");scanf("%s",reg_name);//判断⽤户名if(strlen(reg_name)<=10){while(1){//输⼊密码printf("\n\t\t请输⼊密码[密码长度为⼋位]:");scanf("%s",reg_pwd);//判断密码if(strlen(reg_pwd)==8){printf("\n\n\t\t注册成功,您的⽤户名是%s,密码是%s\n\n",reg_name,reg_pwd);break;}else{printf("\n\t\t密码的长度为%d,请重新输⼊\n",strlen(reg_pwd));}}break;}else{printf("\n\t\t⽤户名的长度为%d,请重新输⼊\n\n",strlen(reg_name));}}}//判断是否注册int judge(){if(strcmp(reg_name,"")==0&&strcmp(reg_pwd,"")==0){printf("\n\n\t\t您尚未注册,请先注册!\n\n");return 0;}else{return 1;}}//⽤户登录void dl(){int i;system("pause");system("cls");printf("\n\n\t\t\t欢迎使⽤腾讯QQ登录系统\n\n");//三次登录验证for(i=1;i<=3;i++){printf("\t\t请输⼊⽤户名:");scanf("%s",on_name);printf("\n\t\t请输⼊密码:");scanf("%s",on_pwd);if(strcmp(reg_name,on_name)==0&&strcmp(reg_pwd,on_pwd)==0) {printf("\n\n\t\t登录成功,欢迎使⽤腾讯QQ系统\n\n");break;}else{printf("\n\n\t\t登录失败,请重新登录,您还有%d次机会\n\n",3-i); }}}void main()//腾讯QQ注册登陆系统{//定义变量int id;while(1){system("pause");system("cls");//输出界⾯printf("\n\n\t\t\t腾讯QQ管理系统\n\n");printf("\t\t\t1:注册\n");printf("\t\t\t2:登录\n");printf("\t\t\t0:退出\n\n");//输⼊功能编号printf("\t\t请选择功能编号:");scanf("%d",&id);//判断switch(id){case 1:regist();break;case 2:if(judge()==1){dl();}break;case 0:exit(1);break;default:printf("\n\t\t您输⼊的功能编号有误,请重新输⼊!\n");}}}效果图:以上就是本⽂的全部内容,希望对⼤家的学习有所帮助,也希望⼤家多多⽀持。
package zhuce.test;import android.app.Activity;import android.app.AlertDialog;import android.app.Dialog;import android.app.ProgressDialog;import android.content.DialogInterface;import android.content.Intent;import android.database.Cursor;import android.database.sqlite.SQLiteDatabase;import android.os.Bundle;import youtInflater;import android.view.View;import android.widget.EditText;import android.widget.TextView;public class Login extends Activity {/** Called when the activity is first created. */ProgressDialog m_dlog;SQLiteDatabase mysql;View dialogview;@Overridepublic void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(yout.main);mysql=this.openOrCreateDatabase("student.db", MODE_PRIVATE,null);try{mysql.execSQL("CREATE TABLE login_t(_id INTEGER PRIMARY KEY,username TEXT,name1 TEXT,password TEXT )");}catch(Exception e){}LayoutInflater fc=LayoutInflater.from(Login.this);final View DialogView=fc.inflate(yout.dialog,null);Dialog dialog=new AlertDialog.Builder(Login.this).setTitle("登录框").setView(DialogView).setPositiveButton("登录",new DialogInterface.OnClickListener() {public void onClick(DialogInterface arg0, int arg1) {// TODO Auto-generated method stubEditText edit=(EditText)DialogView.findViewById(ername);String name_test=edit.getText().toString();m_dlog=ProgressDialog.show(Login.this,"请稍等","正在为你登录",true);// new Thread()// {// public void run()// {// try// {// sleep(3000);// }// catch(Exception e)// {// e.printStackTrace();// }// finally// {// m_dlog.dismiss();// }// }// }.start();m_dlog.dismiss();Cursor cs=mysql.query(true,"login_t",new String[]{"username","name1"},"username"+"='"+name_test+"'", null,null,null,null,null);if(cs.getCount()>0){m_dlog.dismiss();LayoutInflater fc1=LayoutInflater.from(Login.this);final View DialogView1=fc1.inflate(yout.tishi,null);cs.moveToFirst();String str=cs.getString(1);TextViewtextview1=(TextView)DialogView1.findViewById(1);textview1.setText(str);Dialog dialog1=new AlertDialog.Builder(Login.this).setTitle("登录框").setView(DialogView1).setPositiveButton("确定",new DialogInterface.OnClickListener() {public void onClick(DialogInterface arg0, int arg1){Intent intent=new Intent();intent.setClass(Login.this,Login.class);startActivity(intent);Login.this.finish();}}).create();dialog1.show();}else{Dialog dialog1=new AlertDialog.Builder(Login.this).setTitle("信息框").setMessage("登录失败").setPositiveButton("确定",new DialogInterface.OnClickListener() {public void onClick(DialogInterface arg0, int arg1){Intent intent=new Intent();intent.setClass(Login.this,Login.class);startActivity(intent);Login.this.finish();}}).create();dialog1.show();}}}).setNegativeButton("取消",new DialogInterface.OnClickListener(){public void onClick(DialogInterface arg0, int arg1){Login.this.finish();}}).setNeutralButton("注册",new DialogInterface.OnClickListener(){public void onClick(DialogInterface arg0, int arg1){Intent intent=new Intent();intent.setClass(Login.this,ZhuceActivity.class);startActivity(intent);Login.this.finish();}}).create();dialog.show();}}注册代码:package zhuce.test;import android.app.Activity;import android.app.AlertDialog;import android.app.Dialog;import android.app.ProgressDialog;import android.content.DialogInterface;import android.content.Intent;import android.database.Cursor;import android.database.sqlite.SQLiteDatabase;import android.os.Bundle;import youtInflater;import android.view.View;import android.view.View.OnClickListener;import android.widget.Button;import android.widget.EditText;import android.widget.TextView;public class ZhuceActivity extends Activity {/** Called when the activity is first created. */ProgressDialog m_dlog;SQLiteDatabase mysql;View dialogview;Button bt1;Button bt2;@Overridepublic void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(yout.zhuce);bt1=(Button)this.findViewById(R.id.bt1);bt2=(Button)this.findViewById(R.id.bt2);final EditText name1=(EditText)this.findViewById(1);final EditText username=(EditText)this.findViewById(ername);final EditText password=(EditText)this.findViewById(R.id.password);mysql=openOrCreateDatabase("student.db", MODE_PRIVATE,null);bt1.setOnClickListener(new OnClickListener(){public void onClick(View arg0) {// TODO Auto-generated method stubif((name1.getText().toString().trim().length()==0)||(username.getText().toString().trim().leng th()==0)||(password.getText().toString().trim().length()==0)){Dialog dialog1=new AlertDialog.Builder(ZhuceActivity.this).setTitle("信息框").setMessage("请输入完整的内容").setPositiveButton("确定",new DialogInterface.OnClickListener() {public void onClick(DialogInterface arg0, int arg1){}}).create();dialog1.show();}else{try{Cursor m_cus = mysql.rawQuery("select max(_id) from login_t", null);m_cus.moveToFirst();int temp_id = m_cus.getInt(0) + 1;mysql.execSQL("INSERT INTO login_t(_id,username,name1,password)values("+temp_id+",'"+username.getText().toString().trim()+"','"+name1.getText().toString().trim( )+"','"+password.getText().toString().trim()+"')");mysql.close();LayoutInflater fac2 = LayoutInflater.from(ZhuceActivity.this);View dialogview2 = fac2.inflate(yout.tishi, null);TextView view_1 = (TextView)dialogview2.findViewById(R.id.textView1);view_1.setText("注册成功!");AlertDialog dialog2 = new AlertDialog.Builder(ZhuceActivity.this).setTitle("提示框").setView(dialogview2).setPositiveButton("确定",new DialogInterface.OnClickListener() {public void onClick(DialogInterface arg0, int arg1) {Intent intent = new Intent();intent.setClass(ZhuceActivity.this, Login.class);startActivity(intent);ZhuceActivity.this.finish();}}).create();dialog2.show();}catch(Exception e){Dialog dialog3=new AlertDialog.Builder(ZhuceActivity.this).setTitle("信息框").setMessage("注册失败").setPositiveButton("确定",new DialogInterface.OnClickListener() {public void onClick(DialogInterface arg0, int arg1){}}).create();dialog3.show();}}}});bt2.setOnClickListener(new OnClickListener(){public void onClick(View v) {// TODO Auto-generated method stubZhuceActivity.this.finish();}});}}string.xml的代码:<?xml version="1.0" encoding="utf-8"?><resources><string name="name1">姓名</string><string name="username">用户名:</string><string name="password">密码:</string><string name="app_name">登录</string><string name="app_name1">注册</string><string name="success">登录成功</string><string name="bt1">注册</string><string name="bt2">取消</string></resources>dialog.xml代码:<?xml version="1.0" encoding="utf-8"?><LinearLayout xmlns:android="/apk/res/android"android:layout_width="fill_parent"android:layout_height="fill_parent"android:orientation="vertical" ><TextViewandroid:layout_width="wrap_content"android:layout_height="wrap_content"android:layout_marginLeft="20dip"android:layout_marginRight="20dip"android:gravity="left"android:textAppearance="?android:attr/textAppearanceMedium"android:text="@string/username" /><EditTextandroid:id="@+id/username"android:layout_width="fill_parent"android:layout_height="wrap_content"android:layout_marginLeft="20dip"android:layout_marginRight="20dip"android:scrollHorizontally="true"android:autoText="false"android:capitalize="none"android:gravity="fill_horizontal"android:textAppearance="?android:attr/textAppearanceMedium"/><TextViewandroid:layout_width="wrap_content"android:layout_height="wrap_content"android:layout_marginLeft="20dip"android:layout_marginRight="20dip"android:gravity="left"android:textAppearance="?android:attr/textAppearanceMedium"android:text="@string/password" /><EditTextandroid:id="@+id/password"android:layout_width="fill_parent"android:layout_height="wrap_content"android:layout_marginLeft="20dip"android:layout_marginRight="20dip"android:scrollHorizontally="true"android:autoText="false"android:capitalize="none"android:gravity="fill_horizontal"android:textAppearance="?android:attr/textAppearanceMedium"/> </LinearLayout>Zhuce.xml代码:<?xml version="1.0" encoding="utf-8"?><LinearLayout xmlns:android="/apk/res/android"android:layout_width="fill_parent"android:layout_height="fill_parent"android:orientation="vertical" ><TextViewandroid:layout_width="wrap_content"android:layout_height="wrap_content"android:layout_marginLeft="20dip"android:layout_marginRight="20dip"android:gravity="left"android:textAppearance="?android:attr/textAppearanceMedium"android:text="@string/name1" /><EditTextandroid:id="@+id/name1"android:layout_width="fill_parent"android:layout_height="wrap_content"android:layout_marginLeft="20dip"android:layout_marginRight="20dip"android:scrollHorizontally="true"android:autoText="false"android:capitalize="none"android:gravity="fill_horizontal"android:textAppearance="?android:attr/textAppearanceMedium"/><TextViewandroid:layout_width="wrap_content"android:layout_height="wrap_content"android:layout_marginLeft="20dip"android:layout_marginRight="20dip"android:gravity="left"android:textAppearance="?android:attr/textAppearanceMedium"android:text="@string/username" /><EditTextandroid:id="@+id/username"android:layout_width="fill_parent"android:layout_height="wrap_content"android:layout_marginLeft="20dip"android:layout_marginRight="20dip"android:scrollHorizontally="true"android:autoText="false"android:capitalize="none"android:gravity="fill_horizontal"android:textAppearance="?android:attr/textAppearanceMedium"/><TextViewandroid:layout_width="wrap_content"android:layout_height="wrap_content"android:layout_marginLeft="20dip"android:layout_marginRight="20dip"android:gravity="left"android:textAppearance="?android:attr/textAppearanceMedium"android:text="@string/password" /><EditTextandroid:id="@+id/password"android:layout_width="fill_parent"android:layout_height="wrap_content"android:layout_marginLeft="20dip"android:layout_marginRight="20dip"android:scrollHorizontally="true"android:autoText="false"android:capitalize="none"android:gravity="fill_horizontal"android:textAppearance="?android:attr/textAppearanceMedium"/><LinearLayoutandroid:layout_width="fill_parent"android:layout_height="fill_parent"android:orientation="horizontal" ><Buttonandroid:id="@+id/bt1"android:layout_width="wrap_content"android:layout_height="wrap_content"android:layout_marginLeft="20dip"android:layout_marginRight="20dip"android:text="@string/bt1"/><Buttonandroid:id="@+id/bt2"android:layout_width="wrap_content"android:layout_height="wrap_content"android:layout_marginLeft="20dip"android:layout_marginRight="20dip"android:text="@string/bt2"/></LinearLayout></LinearLayout>main.xml的代码:<?xml version="1.0" encoding="utf-8"?><LinearLayout xmlns:android="/apk/res/android"android:layout_width="fill_parent"android:layout_height="fill_parent"android:orientation="vertical" ></LinearLayout>tishi.xml的代码:<?xml version="1.0" encoding="utf-8"?><LinearLayout xmlns:android="/apk/res/android"android:layout_width="fill_parent"android:layout_height="fill_parent"android:orientation="vertical" ><TextViewandroid:id="@+id/textView1"android:layout_width="wrap_content"android:layout_height="wrap_content"android:text="@string/success" /><TextViewandroid:id="@+id/name1"android:layout_width="wrap_content"android:layout_height="wrap_content"/> </LinearLayout>。
登陆注册系统模拟(源代码)#include<stdio.h>#include<string.h>#include<stdlib.h>#include<conio.h>#define Max 71typedef struct{char name[20];char pw[20];int flag;}USER;USER user[Max];char Admin[20]="administrator";int count;int chance;void menu();void User_admin(char name[],char pw[]);void User_common(char name[],char pw[]);void Saved();int flag;void Inithtable(){for(int i=0;i<Max;i++)user[i].flag=0;}void password(char a[])//密码输入{int i=0;char c;while((c=getch())!=13){if(c==8 && i==0);else if(c==8 && i>0){i--;printf("%c%c%c",'\b','\0','\b');else{a[i++]=c;printf("*");}}a[i]='\0';printf("\n");}void jiami(char pw[],char a[])//加密{char c,*p;p=pw;c=*p;int i=0;while(c!='\0'){if(c>='0' && c<='9')//数字{c=c+5;if(c>'9')c=c-10;}else{c=c+5;if(c>'Z' && c<='Z'+5 || c>'z')c=c-26;}a[i++]=c;p++;c=*p;}a[i]='\0';}void jiemi(char pw[],char b[])//解密{char c,*p;p=pw;c=*p;while(c!='\0'){if(c>='0' && c<='9'){c=c-5;if(c<'0')c=c+10;}else{c=c-5;if(c<'A' || c<'a' && c>='a'-5)c=c+26;}b[i++]=c;p++;c=*p;}b[i]='\0';}int hash(int key)//构造哈希表{int H=key%Max;while(user[H].flag==1)H=(H+1)%Max;return H;}int hashsrch(char name[])//在哈希表中查找{int key=name[0]-'0';int H=key%Max;if(user[H].flag==0)return -1;else if(user[H].flag==1 && strcmp(user[H].name,name)==0)return H;else{while(user[H].flag==1 && strcmp(user[H].name,name)!=0 || user[H].flag==2) H=(H+1)%Max;if(user[H].flag==0)return -1;else return H;}}void Read()//将文件中的信息存入到哈希表中{Inithtable();FILE *fp;if((fp=fopen("info.txt","r"))==NULL){printf("文件打开错误!\n");exit(0);}while(!feof(fp)){char name[20],pwf[20],pw[20];fscanf(fp,"%s%s",name,pwf);jiemi(pwf,pw);count++;int key=name[0]-'0';int H=hash(key);strcpy(user[H].name,name);strcpy(user[H].pw,pw);user[H].flag=1;}fclose(fp);}void Search(char name[])//查找用户{int H=hashsrch(name);if(user[H].flag==1){if(H==-1)printf("该用户不存在!\n");elseprintf("用户名:%s\t密码:%s\n",user[H].name,user[H].pw);}elseprintf("该用户不存在!\n");}void Delete(char name[])//删除用户{if(strcmp(name,Admin)==0){char name1[20];printf("输入要删除的用户名:");gets(name1);int H=hashsrch(name1);int a=hashsrch(Admin);if(strcmp(name1,Admin)==0)printf("不能删除管理员账号!\n");else if(H!=-1){char pw[20];printf("请输入管理员密码:");password(pw);if(strcmp(user[a].pw,pw)==0){user[H].flag=2;count--;Saved();printf("用户信息删除成功!\n");}elseprintf("密码错误,不能进行删除操作!\n");}elseprintf("该用户不存在,不能进行删除操作!\n");}else{int H=hashsrch(name);user[H].flag=2;count--;Saved();printf("账户已注销!\n");flag=0;}}void Changepw(char name[],char pw[])//修改用户密码{char pw1[20],pw2[20],pw3[20];int H=hashsrch(name);printf("请输入当前用户的密码:");password(pw1);if(strcmp(pw1,pw)==0){loop: printf("请输入新密码:");password(pw2);printf("再次输入新密码:");password(pw3);while(strcmp(pw2,pw3)!=0){printf("两次输入的密码不一致!\n\n");goto loop;}if(strcmp(pw,pw2)==0){printf("新密码不能与旧密码一致!\n");goto loop;}else{strcpy(user[H].pw,pw2);Saved();printf("密码修改成功,请重新登录!\n");flag=0;}}else printf("当前密码错误!\n");}void Saved()//保存到文件{FILE *fp;char pw[20];if((fp=fopen("info.txt","w"))==NULL){printf("文件打开错误!\n");exit(1);}for(int i=0;i<Max;i++){if(user[i].flag==1){jiami(user[i].pw,pw);fprintf(fp,"\n%s\t%s",user[i].name,pw);}}if(fclose(fp)){printf("文件关闭错误!\n");exit(1);}}void Show()//显示所有用户{for(int i=0;i<Max;i++){if(user[i].flag==1)printf("用户名:%s\t密码:%s\n",user[i].name,user[i].pw);}}void User_admin(char name[],char pw[])//管理员操作界面{system("cls");printf("********************************************\n");printf("** 1-查找用户2-删除用户3-显示用户**\n** 4-修改密码5-用户数6-退出**");printf("\n********************************************");int choice;loop:printf("\n请输入序号:");scanf("%d",&choice);getchar();switch(choice){case 1:{char name[20];printf("请输入要查找的用户名:");gets(name);Search(name);}break;case 2:Delete(name);break;case 3:Show();break;case 4:Changepw(name,pw);break;case 5:printf("总共有%d个用户!\n",count);break;case 6:flag=0;return;default:{printf("请输入正确的序号!\n\n");goto loop;}}printf("回车键继续......");getchar();}void User_common(char name[],char pw[])//普通用户操作界面{system("cls");int choice;printf("%s,欢迎!\n",name);printf("****************************************\n");printf("** 1-修改密码2-注销账号3-退出**\n");printf("****************************************"); loop:printf("\n请选择操作序号:");scanf("%d",&choice);getchar();switch(choice){case 1:Changepw(name,pw);break;case 2:Delete(name);break;case 3:flag=0;return;default:{printf("请输入正确的序号!\n\n");goto loop;}}printf("回车键继续......");getchar();}void Landing()//登陆界面{chance=4;char name[20],pw[20];printf("用户名:");gets(name);loop:printf("密码:");password(pw);int H=hashsrch(name);if(H!=-1){if(strcmp(user[H].pw,pw)==0){flag=1;if(strcmp(name,Admin)==0)while(flag)User_admin(name,pw);elsewhile(flag)User_common(name,pw);}else{chance--;if(chance){printf("密码错误,还有%d次机会!\n",chance);goto loop;}else{printf("登陆失败,请重新登录!\n");printf("回车键继续......");getchar();}}}else{printf("该用户不存在!\n");printf("回车键继续......");getchar();}}void Register()//注册界面{if(count==Max){printf("用户数已到最大值!\n\n");menu();return;}char name[20],pw1[20],pw2[20];printf("用户名:");gets(name);loop:printf("请输入密码:");password(pw1);printf("再次输入密码:");password(pw2);while(strcmp(pw1,pw2)!=0){printf("两次输入的密码不一致!\n\n");goto loop;}if(hashsrch(name)!=-1)printf("用户名已存在,请重新注册!");else{int key=name[0]-'0';int H=hash(key);strcpy(user[H].name,name);strcpy(user[H].pw,pw1);user[H].flag=1;count++;Saved();printf("注册成功,请从登陆界面登陆!");}printf("\n回车键继续......");getchar();}void menu()//登陆注册菜单{system("cls");printf("**********************************\n** 1-登陆2-注册3-退出**\n**********************************\n");int choice;printf("请选择操作序号:");loop:scanf("%d",&choice);getchar();switch(choice){case 1:Landing();break;case 2:Register();break;case 3:exit(0);break;default:{printf("请重新输入操作序号:");goto loop;}}}void main(){Read();while(1)menu(); }。