PHP 附录 : 用户注册与登录完整代码

本文涉及的产品
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
云数据库 RDS MySQL,集群系列 2核4GB
推荐场景:
搭建个人博客
云数据库 RDS PostgreSQL,集群系列 2核4GB
简介:   login.html        用户登录    html{font-size:12px;}  fieldset{width:520px; margin: 0 auto;}  legend{font-weight:bold; font-size:14px;}...

 


login.html

  1. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" 
  2. "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 
  3. <html xmlns="http://www.w3.org/1999/xhtml"> 
  4. <head> 
  5. <meta http-equiv="Content-Type" content="text/html; charset=gbk" /> 
  6. <title>用户登录</title> 
  7. <style type="text/css"> 
  8. html{font-size:12px;} 
  9. fieldset{width:520px; margin: 0 auto;} 
  10. legend{font-weight:bold; font-size:14px;} 
  11. label{float:left; width:70px; margin-left:10px;} 
  12. .left{margin-left:80px;} 
  13. .input{width:150px;} 
  14. span{color: #666666;} 
  15. </style> 
  16. <script language=JavaScript> 
  17. <!-- 
  18.  
  19. function InputCheck(LoginForm) 
  20. if (LoginForm.username.value == "") 
  21. alert("请输入用户名!"); 
  22. LoginForm.username.focus(); 
  23. return (false); 
  24. if (LoginForm.password.value == "") 
  25. alert("请输入密码!"); 
  26. LoginForm.password.focus(); 
  27. return (false); 
  28.  
  29. //--> 
  30. </script> 
  31. </head> 
  32. <body> 
  33. <div> 
  34. <fieldset> 
  35. <legend>用户登录</legend> 
  36. <form name="LoginForm" method="post" action="login.php" onSubmit="return InputCheck(this)"> 
  37. <p> 
  38. <label for="username" class="label">用户名:</label> 
  39. <input id="username" name="username" type="text" class="input" /> 
  40. <p/> 
  41. <p> 
  42. <label for="password" class="label">密 码:</label> 
  43. <input id="password" name="password" type="password" class="input" /> 
  44. <p/> 
  45. <p> 
  46. <input type="submit" name="submit" value=" 确 定 " class="left" /> 
  47. </p> 
  48. </form> 
  49. </fieldset> 
  50. </div> 
  51. </body> 
  52. </html>

conn.php

  1. <?php 
  2. /***************************** 
  3. *数据库连接 
  4. *****************************/ 
  5. $conn = @mysql_connect("localhost","root","root123"); 
  6. if (!$conn){ 
  7. die("连接数据库失败:" . mysql_error()); 
  8. mysql_select_db("test", $conn); 
  9. //字符转换,读库 
  10. mysql_query("set character set 'gbk'"); 
  11. //写库 
  12. mysql_query("set names 'gbk'"); 
  13. ?>

reg.php

  1. <?php 
  2. if(!isset($_POST['submit'])){ 
  3. exit('非法访问!'); 
  4. $username = $_POST['username']; 
  5. $password = $_POST['password']; 
  6. $email = $_POST['email']; 
  7. //注册信息判断 
  8. if(!preg_match('/^[\w\x80-\xff]{3,15}$/', $username)){ 
  9. exit('错误:用户名不符合规定。<a href="javascript:history.back(-1);">返回</a>'); 
  10. if(strlen($password) < 6){ 
  11. exit('错误:密码长度不符合规定。<a href="javascript:history.back(-1);">返回</a>'); 
  12. if(!preg_match('/^w+([-+.]w+)*@w+([-.]w+)*.w+([-.]w+)*$/', $email)){ 
  13. exit('错误:电子邮箱格式错误。<a href="javascript:history.back(-1);">返回</a>'); 
  14. //包含数据库连接文件 
  15. include('conn.php'); 
  16. //检测用户名是否已经存在 
  17. $check_query = mysql_query("select uid from user where username='$username' limit 1"); 
  18. if(mysql_fetch_array($check_query)){ 
  19. echo '错误:用户名 ',$username,' 已存在。<a href="javascript:history.back(-1);">返回</a>'; 
  20. exit; 
  21. //写入数据 
  22. $password = MD5($password); 
  23. $regdate = time(); 
  24. $sql = "INSERT INTO user(username,password,email,regdate)VALUES('$username','$password','$email', 
  25. $regdate)"; 
  26. if(mysql_query($sql,$conn)){ 
  27. exit('用户注册成功!点击此处 <a href="login.html">登录</a>'); 
  28. else { 
  29. echo '抱歉!添加数据失败:',mysql_error(),'<br />'; 
  30. echo '点击此处 <a href="javascript:history.back(-1);">返回</a> 重试'; 
  31. ?>

login.html

  1. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" 
  2. "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 
  3. <html xmlns="http://www.w3.org/1999/xhtml"> 
  4. <head> 
  5. <meta http-equiv="Content-Type" content="text/html; charset=gbk" /> 
  6. <title>用户登录</title> 
  7. <style type="text/css"> 
  8. html{font-size:12px;} 
  9. fieldset{width:300px; margin: 0 auto;} 
  10. legend{font-weight:bold; font-size:14px;} 
  11. .label{float:left; width:70px; margin-left:10px;} 
  12. .left{margin-left:80px;} 
  13. .input{width:150px;} 
  14. span{color: #666666;} 
  15. </style> 
  16. <script language=JavaScript> 
  17. <!-- 
  18.  
  19. function InputCheck(LoginForm) 
  20. if (LoginForm.username.value == "") 
  21. alert("请输入用户名!"); 
  22. LoginForm.username.focus(); 
  23. return (false); 
  24. if (LoginForm.password.value == "") 
  25. alert("请输入密码!"); 
  26. LoginForm.password.focus(); 
  27. return (false); 
  28.  
  29. //--> 
  30. </script> 
  31. </head> 
  32. <body> 
  33. <div> 
  34. <fieldset> 
  35. <legend>用户登录</legend> 
  36. <form name="LoginForm" method="post" action="login.php" onSubmit="return InputCheck(this)"> 
  37. <p> 
  38. <label for="username" class="label">用户名:</label> 
  39. <input id="username" name="username" type="text" class="input" /> 
  40. <p/> 
  41. <p> 
  42. <label for="password" class="label">密 码:</label> 
  43. <input id="password" name="password" type="password" class="input" /> 
  44. <p/> 
  45. <p> 
  46. <input type="submit" name="submit" value=" 确 定 " class="left" /> 
  47. </p> 
  48. </form> 
  49. </fieldset> 
  50. </div> 
  51. </body> 
  52. </html> 

login.php

  1. <?php 
  2. session_start(); 
  3.  
  4. //注销登录 
  5. if($_GET['action'] == "logout"){ 
  6. unset($_SESSION['userid']); 
  7. unset($_SESSION['username']); 
  8. echo '注销登录成功!点击此处 <a href="login.html">登录</a>'; 
  9. exit; 
  10.  
  11. //登录 
  12. if(!isset($_POST['submit'])){ 
  13. exit('非法访问!'); 
  14. $username = htmlspecialchars($_POST['username']); 
  15. $password = MD5($_POST['password']); 
  16.  
  17. //包含数据库连接文件 
  18. include('conn.php'); 
  19. //检测用户名及密码是否正确 
  20. $check_query = mysql_query("select uid from user where username='$username' and password='$password' 
  21. limit 1"); 
  22. if($result = mysql_fetch_array($check_query)){ 
  23. //登录成功 
  24. $_SESSION['username'] = $username; 
  25. $_SESSION['userid'] = $result['uid']; 
  26. echo $username,' 欢迎你!进入 <a href="my.php">用户中心</a><br />'; 
  27. echo '点击此处 <a href="login.php?action=logout">注销</a> 登录!<br />'; 
  28. exit; 
  29. else { 
  30. exit('登录失败!点击此处 <a href="javascript:history.back(-1);">返回</a> 重试'); 
  31. ?> 


my.php

  1. <?php 
  2. session_start(); 
  3.  
  4. //检测是否登录,若没登录则转向登录界面 
  5. if(!isset($_SESSION['userid'])){ 
  6. header("Location:login.html"); 
  7. exit(); 
  8.  
  9. //包含数据库连接文件 
  10. include('conn.php'); 
  11. $userid = $_SESSION['userid']; 
  12. $username = $_SESSION['username']; 
  13. $user_query = mysql_query("select * from user where uid=$userid limit 1"); 
  14. $row = mysql_fetch_array($user_query); 
  15. echo '用户信息:<br />'; 
  16. echo '用户ID:',$userid,'<br />'; 
  17. echo '用户名:',$username,'<br />'; 
  18. echo '邮箱:',$row['email'],'<br />'; 
  19. echo '注册日期:',date("Y-m-d", $row['regdate']),'<br />'; 
  20. echo '<a href="login.php?action=logout">注销</a> 登录<br />'; 
  21. ?>
 
 
相关实践学习
如何在云端创建MySQL数据库
开始实验后,系统会自动创建一台自建MySQL的 源数据库 ECS 实例和一台 目标数据库 RDS。
全面了解阿里云能为你做什么
阿里云在全球各地部署高效节能的绿色数据中心,利用清洁计算为万物互联的新世界提供源源不断的能源动力,目前开服的区域包括中国(华北、华东、华南、香港)、新加坡、美国(美东、美西)、欧洲、中东、澳大利亚、日本。目前阿里云的产品涵盖弹性计算、数据库、存储与CDN、分析与搜索、云通信、网络、管理与监控、应用服务、互联网中间件、移动服务、视频服务等。通过本课程,来了解阿里云能够为你的业务带来哪些帮助 &nbsp; &nbsp; 相关的阿里云产品:云服务器ECS 云服务器 ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。产品详情: https://www.aliyun.com/product/ecs
目录
相关文章
|
4天前
|
PHP 开发者
PHP中的异常处理:提升代码的健壮性
【8月更文挑战第27天】在PHP编程的世界里,异常处理是一块基石,它确保我们的应用程序在遇到不可预见的错误时不会崩溃,而是能够优雅地处理这些情况。本文将深入探讨PHP的异常处理机制,通过实际示例展示如何捕获和处理异常,以及如何利用自定义异常来增强代码的可读性和可维护性。我们将从基础的try-catch结构出发,逐步过渡到更高级的话题,如异常链和错误日志记录,旨在为读者提供一套完整的异常处理策略。
|
2天前
|
PHP
PHP中的面向对象编程:构建更高效的代码
【8月更文挑战第29天】在PHP的世界中,面向对象编程(OOP)是提升代码可维护性、可扩展性和复用性的利器。本文将通过浅显易懂的方式,带领读者探索PHP中OOP的核心概念,并通过实际代码示例揭示如何利用这些概念来编写更加高效和优雅的代码。无论你是PHP新手还是希望深化理解的老手,这篇文章都将为你打开一扇新窗,让你看到编码的艺术与哲学。
|
4天前
|
数据处理 PHP 开发者
PHP中的数组操作技巧:提高代码效率与可读性
【8月更文挑战第27天】在PHP开发中,数组是数据处理的核心。掌握数组的操作不仅能提升代码的执行效率,还能增强代码的可读性。本文将通过实际的编码示例,展示如何在PHP中高效地使用数组,包括数组的创建、遍历、排序、查找和过滤等常用操作,以及一些高级技巧,如使用匿名函数和数组的解构赋值。无论你是新手还是有经验的开发者,这些技巧都将对你的PHP编程之旅大有裨益。
|
7天前
|
设计模式 算法 PHP
深入理解PHP中的数组操作探索编程之美:从代码到架构的思维转变
【8月更文挑战第24天】在PHP编程中,数组是基础且强大的数据结构。本文将通过浅显易懂的方式,介绍如何在PHP中高效地操作数组,包括创建、遍历、排序和过滤等常见任务。无论你是初学者还是有经验的开发者,这篇文章都会带给你新的启示。 【8月更文挑战第24天】在编程的世界中,代码不仅仅是冰冷的字符排列,它承载着思想、解决问题的智慧和创新的灵魂。本文将通过个人的技术感悟,带领读者从编写单一功能的代码片段出发,逐步深入到整个软件架构的设计哲学,探索如何将代码块转化为高效、可维护和可扩展的系统。我们将一起见证,当代码与架构思维相结合时,如何引发技术实践的革命性飞跃。
|
29天前
|
存储 前端开发 JavaScript
优化PHP代码性能
【8月更文挑战第3天】优化PHP代码性能
39 16
|
25天前
|
PHP 开发者
PHP 中的异常处理:提升代码的健壮性与可维护性
在动态类型语言PHP中,异常处理是确保应用程序稳定性和可靠性的关键机制。通过深入理解异常的类型、捕获和处理,开发者可以构建出能够优雅地响应错误情况的应用程序。本文将探讨如何利用PHP的异常处理功能来避免未处理的错误导致的程序崩溃,并展示如何通过自定义异常类来增强代码的可读性和可维护性。
32 4
|
30天前
|
设计模式 中间件 测试技术
PHP中的中间件模式:简化代码与增强可维护性
【8月更文挑战第2天】 在PHP开发中,中间件模式是一种优雅的设计模式,它允许开发者通过定义一系列可重用的过滤和处理层来构建复杂的请求处理流程。本文将深入探讨如何在PHP应用程序中实现中间件模式,并辅以实际代码示例,展示如何利用这一模式简化代码结构,提高应用的可读性、可测试性和可维护性。通过阅读本文,你将学会创建自己的中间件,并将其集成到你的PHP项目中,从而提升你的开发效率和项目质量。
|
3天前
|
PHP 开发者
探索PHP中的异常处理:提升代码的健壮性
【8月更文挑战第28天】在编程的世界里,错误和异常是避免不了的现实。它们像是路上的坑洼,让代码之旅颠簸不已。PHP作为流行的后端开发语言之一,提供了异常处理机制,帮助开发者优雅地应对这些“坑洼”。本文将带你深入了解PHP中的异常处理,从基础概念到实际应用,让你的代码在遇到问题时能够稳稳当当,而不是一头栽倒。我们将一起学习如何捕获异常、如何处理异常,并且通过一些实用的代码示例,让你的PHP技能更上一层楼。
|
3天前
|
存储 中间件 PHP
Python编程入门:从零到一的代码实践深入理解 PHP 中的中间件模式
【8月更文挑战第28天】本文旨在通过浅显易懂的方式,向初学者介绍Python编程的基础知识,并结合具体代码示例,带领读者一步步实现从零基础到能够独立编写简单程序的转变。文章将围绕Python语言的核心概念进行讲解,并通过实例展示如何应用这些概念解决实际问题。无论你是编程新手还是希望扩展技能的专业人士,这篇文章都将为你打开编程世界的大门。 【8月更文挑战第28天】在PHP的世界中,设计模式是构建可维护和可扩展软件的重要工具。本文将通过浅显易懂的语言和生动的比喻,带领读者深入理解中间件模式如何在PHP应用中发挥魔力,实现请求处理的高效管理。我们将一步步揭开中间件的神秘面纱,从它的定义、工作原理到
|
5天前
|
PHP 开发者 UED
PHP中的异常处理:提升代码的健壮性
【8月更文挑战第27天】在PHP编程中,异常处理是维护程序稳定性和可靠性的关键。本文通过介绍异常处理的基本概念、语法结构以及实际应用场景,旨在帮助开发者构建更加健壮的PHP应用。我们将探讨如何使用try-catch语句来捕获和处理异常,确保程序即使在遇到错误时也能优雅地继续运行或安全地终止。
下一篇
云函数