ICode9

精准搜索请尝试: 精确搜索
首页 > 编程语言> 文章详细

PHP——个人信息管理系统

2021-02-14 11:01:27  阅读:311  来源: 互联网

标签:username php 个人 sql result mysql 信息管理系统 PHP 上传


楼主近来无事,做了一个个人信息管理系统,希望能给小白一点启发,大神不要吐槽,欢迎技术交流,文明批评。鞋鞋!

 

先贴上数据库结构图

 

 

表单中有id,用户名,昵称,性别,密码,注册时间,个性签名,头像,详细  共9个字段。

 

个人信息管理的文件结构
文件名称描述
reg.inc.php注册页面
login.inc.php登录页面
func.inc.php系统函数库存放脚本,声明处理上传和删除上传图片的两个函数
index.php主页文件,个人信息首页
info.php修改信息文件,用于修改个人信息并更新表单
upload.php上传文件,用于上传个人头像
image.class.php图片处理函数
fileupload.class.php文件上传函数

 

  1. 注册页面,对用户名和密码的输入做了要求,用jquery代码实现前台验证,用PHP实现后台验证,代码如下:

     
    

     

    1. <?php /** file:reg.inc.php 用户注册*/

    2.  

    3. date_default_timezone_set('prc');/*设置时区*/

    4. @$username = htmlspecialchars($_POST['username']);

    5. @$password = $_POST['pass'];

    6. $password = MD5($password);

    7. $regdate = date('Y-m-d H:i:s',time());

    8. $pic_dir="default.png";

    9. $url="login.inc.php";

    10. if(isset($_POST['reg'])){

    11. /*添加数据需要先连接并选数据库,包含conn.inc.php文件连接数据库*/

    12. include"conn.inc.php";

    13.  

    14. $sql_2="SELECT * FROM userdata WHERE username = '$username'";

    15. /*执行INSERT语句*/

    16.  

    17. $result_2=mysql_query($sql_2,$link);

    18. $rows=mysql_fetch_array($result_2);

    19.   mysql_free_result($result_2);

    20.  

    21.  

    22. if($rows>0){

    23. echo "<script type='text/javascript'>alert('用户名已存在');location='javascript:history.back()';</script>";

    24.  

    25. }else{

    26. /*根据用户通过POST提交的数据组合插入数据库的SQL语句*/

    27. if(strlen($username)>=5&&strlen($pass)>=6){

    28. $sql = "INSERT INTO userdata(username,pass,regdate,pic) VALUES('".$username."','".$password."','".$regdate."','".$pic_dir."')";

    29. $result=mysql_query($sql,$link);

    30. echo "<script> alert('用户注册成功!'); </script>";

    31. echo "<meta http-equiv='Refresh' content='0;URL=$url'>";

    32. }

    33. }

    34.  

    35. }

    36. ?>

    37. <html>

    38.  

    39. <head>

    40. <title>登录系统</title>

    41. <meta charset="utf-8" />

    42. <link rel="stylesheet" href="css/login.css" />

    43. <script src="js/jquery-3.1.0.js"></script>

    44. <script src="js/check.js"></script>

    45.  

    46. </head>

    47.  

    48. <body>

    49. <div class="content">

    50.  

    51. <!--  登录面板    -->

    52. <div class="panel">

    53.  

    54. <form action="reg.inc.php" method="post">

    55.  

    56. <div class="group">

    57. <label for="username">用户名:</label>

    58. <input id="username" class="required" type="text" name="username" placeholder="请输入至少5位的用户名" />

    59. </div>

    60.  

    61.  

    62. <div class="group">

    63. <label for="pass">密码:</label>

    64. <input id="pass" type="password" class="required" name="pass" placeholder="密码必须大于6位"/>

    65. </div>

    66.  

    67.  

    68. <div class="login">

    69. <button type="submit" name="reg" id="send">确认注册</button>

    70. </div>

    71. </div>

    72. <div class="register">

    73.  

    74.             <a href="login.inc.php"><button type="button">返回首页</button></a>

    75.         </div>

    76.  

    77. </form>

    78. </div>

    79. </body>

    80.  

    81. </html>

  2. 登录页面,后台验证用户名和密码是否匹配,匹配则用COOKIE记录登录状态及用户信息,然后跳转至主页面,代码如下:

     
    

     

    1. <?php

    2. /** file:login.inc.php 登录系统的主控制文件和主入口文件*/

    3.  

    4. /*声明一个删除Cookie的函数,调用时消除在客户端设置的所以Cookie*/

    5. function clearCookies(){

    6. //只指定Cookie识别名称一个参数,即删除客户端中这个指定名称的Cookie资料

    7. //生存空间默认为空,则生存期限与浏览器一样,浏览器关闭时Cookie就会被删除

    8. setcookie('username');

    9. setcookie('isLogin');

    10. }

    11.  

    12.       include "conn.inc.php";

    13. @$username = htmlspecialchars($_POST['username']);

    14. @$password = $_POST['pass'];

    15. $password = MD5($password);

    16.  

    17. /*如果用户的操作是提交表单,则条件成立*/

    18. if(isset($_POST['submit'])){

    19. clearCookies();

    20.  

    21. $sql = "SELECT * FROM userdata WHERE username = '$username' and pass='$password'";

    22.   $res = mysql_query($sql,$link);

    23. /*mysql_num_rows只能用于select语句*/

    24.   $rows=mysql_num_rows($res);

    25. if($rows>0){

    26.  

    27. /*向Cookie中设置标识符为username,值是表单中提交的,期限为一周*/

    28. setcookie('username',$username,time()+60*60*24*7);

    29. /*向Cookie中设置标识符为isLogin,用来在其它页面检查用户是否登录*/

    30. setcookie('isLogin','1',time()+60*60*24*7);

    31. /*如果Cookie设置成功则转向网站首页*/

    32. header("Location:index.php");//跳转页面,注意路径

    33. }else{

    34. echo '<font color="red">用户名或密码错误!</font>';

    35. }

    36. }else if(@$_GET["action"]=="logout"){

    37. //退出时消除在客户端设置的所有Cookie

    38. clearCookies();

    39. }

    40. ?>

    41. <html>

    42.  

    43. <head>

    44. <title>登录系统</title>

    45. <meta charset="utf-8" />

    46. <link rel="stylesheet" href="css/login.css" />

    47.  

    48. </head>

    49.  

    50. <body>

    51. <div class="content">

    52.  

    53. <!--  登录面板    -->

    54. <div class="panel">

    55.  

    56.  

    57. <form action="login.inc.php" method="post">

    58.  

    59. <div class="group">

    60. <label for="username">用户名:</label>

    61. <input id="username" type="text" name="username" placeholder="请输入账号" />

    62. </div>

    63.  

    64.  

    65. <div class="group">

    66. <label for="pass">密码:</label>

    67. <input id="pass" type="password" name="pass" placeholder="请输入密码" />

    68. </div>

    69.  

    70.  

    71. <div class="login">

    72. <button type="submit" name="submit">登录</button>

    73. </div>

    74. </div>

    75. <div class="register">

    76.             <a href="reg.inc.php"><button type="button">创建新账号</button></a>

    77.         </div>

    78.  

    79. </form>

    80.  

    81. </div>

    82. </body>

    83.  

    84. </html>

  3. 主页面,显示用户头像及昵称、性别、个性签名等信息,代码如下:

     
    

     

    1. <?php /** file:index.php 登录系统的首页*/

    2. /*如果用户没有通过身份验证,页面跳转至登录页面*/

    3. if(!(isset($_COOKIE['isLogin'])&&$_COOKIE['isLogin']=='1')){

    4. header("Location:login.inc.php");

    5. exit;

    6. }

    7.  

    8. $username=$_COOKIE['username'];

    9.  

    10. include "conn.inc.php";

    11. /*分别从数据库中获取nickname,sex,pic的值*/

    12. $sql_1 = "SELECT pic FROM userdata WHERE username = '$username'";

    13. $res_1 = mysql_query($sql_1,$link);

    14. $pic = mysql_result($res_1,0);

    15.  

    16. $sql_2 = "SELECT nickname FROM userdata WHERE username = '$username'";

    17. $res_2 = mysql_query($sql_2,$link);

    18. $nickname = mysql_result($res_2,0);

    19.  

    20. $sql_3 = "SELECT sex FROM userdata WHERE username = '$username'";

    21. $res_3 = mysql_query($sql_3,$link);

    22. $sex = mysql_result($res_3,0);

    23.  

    24. if($sex==1)

    25. {

    26. $sex="男";

    27. }else if($sex==2)

    28. {

    29. $sex="女";

    30. }else if($sex==0)

    31. {

    32. $sex=="保密";

    33. }

    34.  

    35. $sql_4 = "SELECT message FROM userdata WHERE username = '$username'";

    36. $res_4 = mysql_query($sql_4,$link);

    37. $mess = mysql_result($res_4,0);

    38.  

    39. ?>

    40.  

    41. <html>

    42.  

    43. <head>

    44. <title>我的资料</title>

    45. <link rel="stylesheet" href="css/login.css" media="screen" />

    46. <script src="js/jquery-3.1.0.js"></script>

    47. <script src="js/show_time.js"></script>

    48. </head>

    49.  

    50. <body>

    51. <div class="content">

    52. <div class="person">

    53.  

    54. <div class="showPic">

    55. <a href="upload.php"><img src="upload/<?php echo $pic ?>" height="80px" width="80px" /></a>

    56. </div>

    57. <?php

    58. /*从Cookie中获取用户名name*/

    59. echo $_COOKIE['username'].'的空间';

    60. ?>

    61. <div id="clock"></div>

    62.  

    63. </div>

    64.  

    65. </div>

    66.  

    67. <div class="content">

    68.  

    69. <!--  登录面板    -->

    70. <div class="panel">

    71. <form action="index.php" method="post" id="regForm">

    72.  

    73. <div class="group">

    74. <label for="nickname">昵称:</label>

    75. <input type="text" name="nick" placeholder="<?php echo $nickname ?>" disabled=""/>

    76. </div>

    77. <div class="group">

    78. <label for="sex">性别:</label>

    79. <input type="text" name="sex" placeholder="<?php echo $sex ?>" disabled=""/>

    80. </div>

    81. <div class="group">

    82. <label for="mess">个性签名:</label>

    83. <textarea name="mess" rows="4" cols="30" readonly=""><?php echo $mess ?></textarea>

    84. </div>

    85.  

    86. <div class="login">

    87. <a href="info.php"><button type="button">修改资料</button></a>

    88. </div>

    89. </div>

    90. <div class="register">

    91.  

    92. <a href="login.inc.php?action=logout"><button type="button">退出</button></a>

    93. </div>

    94.  

    95. </form>

    96. </div>

    97.  

    98. </body>

    99.  

    100. </html>

  4. 信息修改页面,修改个人信息,更新表单数据,代码如下:

     
    

     

    1. <?php /** file:info.php 修改个人信息*/

    2. /*如果用户没有通过身份验证,页面跳转至登录页面*/

    3. if(!(isset($_COOKIE['isLogin'])&&$_COOKIE['isLogin']=='1')){

    4. header("Location:login.inc.php");

    5. exit;

    6. }

    7.  

    8. $username=$_COOKIE['username'];

    9. $url="index.php";

    10.  

    11. include "conn.inc.php";

    12. $sql = "SELECT pic FROM userdata WHERE username = '$username'";

    13. $res = mysql_query($sql,$link);

    14. $pic = mysql_result($res,0);

    15.  

    16. $sql_2 = "SELECT nickname FROM userdata WHERE username = '$username'";

    17. $res_2 = mysql_query($sql_2,$link);

    18. $show_nickname = mysql_result($res_2,0);

    19.  

    20. $sql_3 = "SELECT sex FROM userdata WHERE username = '$username'";

    21. $res_3 = mysql_query($sql_3,$link);

    22. $show_sex = mysql_result($res_3,0);

    23.  

    24. $sql_4 = "SELECT message FROM userdata WHERE username = '$username'";

    25. $res_4 = mysql_query($sql_4,$link);

    26. $show_mess = mysql_result($res_4,0);

    27.  

    28. @$nickname = htmlspecialchars($_POST['nickname']);

    29. @$sex = $_POST['sex'];

    30. @$mess = $_POST['mess'];

    31.  

    32. ?>

    33.  

    34. <html>

    35.  

    36. <head>

    37. <title>我的资料</title>

    38. <link rel="stylesheet" href="css/login.css" media="screen" />

    39. <script src="js/jquery-3.1.0.js"></script>

    40. </head>

    41.  

    42. <body>

    43. <div class="content">

    44. <div class="person">

    45.  

    46. <div class="showPic">

    47. <a href="upload.php"><img src="upload/<?php echo $pic ?>" height="100px" width="100px" /></a>

    48. </div>

    49. <?php

    50. /*从cookie中获取用户名username*/

    51. echo $_COOKIE['username'].'的资料';

    52. ?>

    53. <div id="clock"></div>

    54.  

    55. </div>

    56.  

    57. </div>

    58.  

    59.  

    60. <div class="content">

    61.  

    62. <!--  登录面板    -->

    63. <div class="panel">

    64. <form action="info.php" method="post" id="regForm">

    65.  

    66. <div class="group">

    67. <label for="nickname">昵称:</label>

    68. <input type="text" name="nickname" value="<?php echo $show_nickname ?>" />

    69. </div>

    70. <div class="group">

    71. <label for="sex" class="sex">性别:</label>

    72. <div class="sex">

    73. <input id="sex" type="radio" name="sex" value="1" />男

    74. <input id="sex" type="radio" name="sex" value="2"/>女

    75. <input id="sex" type="radio" name="sex" value="0" checked/>保密

    76. </div>

    77. </div>

    78. <div class="group">

    79. <label for="mess">个性签名:</label>

    80. <textarea name="mess" rows="4" cols="30"><?php echo $show_mess ?></textarea>

    81. </div>

    82.  

    83. <div class="login">

    84. <button type="submit" name="mod">确认修改</button>

    85. </div>

    86. </div>

    87. <div class="register">

    88. <button type="reset">重置</button>

    89. <a href="index.php"><button type="button">返回</button></a>

    90. </div>

    91.  

    92. </form>

    93. </div>

    94. <?php

    95. if(isset($_POST['mod'])){

    96. include"conn.inc.php";

    97. /*根据用户通过POST提交的数据组合插入数据库的SQL语句*/

    98. $sql_1 = "UPDATE userdata SET nickname='".$nickname."' WHERE username = '$username'";

    99. $sql_2 = "UPDATE userdata SET sex='".$sex."' WHERE username = '$username'";

    100. $sql_3 = "UPDATE userdata SET message='".$mess."' WHERE username = '$username'";

    101.  

    102. $result_1=mysql_query($sql_1,$link);

    103. $result_2=mysql_query($sql_2,$link);

    104. $result_3=mysql_query($sql_3,$link);

    105.  

    106. /*如果INSERT语句执行成功,并对数据表userdata有行数影响,则插入成功*/

    107. if($result_1||$result_2||$result_3){

    108.     echo "<script> alert('修改成功!'); </script>";

    109.     echo "<meta http-equiv='Refresh' content='0;URL=$url'>";

    110. }else{

    111. echo "<script> alert('修改失败!'); </script>";

    112. }

    113. }?>

    114. </body>

    115.  

    116. </html>

  5. 头像上传页面,上传个人头像,本地保存头像,数据库保存头像地址,代码如下:

     
    

     

    1. <?php

    2. /*如果用户没有通过身份验证,页面跳转至登录页面*/

    3. if(!(isset($_COOKIE['isLogin'])&&$_COOKIE['isLogin']=='1')){

    4. header("Location:login.inc.php");

    5. exit;

    6. }

    7.  

    8. include "func.inc.php";

    9.  

    10. include "conn.inc.php";

    11.  

    12. $username=$_COOKIE['username'];

    13. $sql = "SELECT pic FROM userdata WHERE username = '$username'";

    14. $res = mysql_query($sql,$link);

    15. $pic = mysql_result($res,0);

    16.  

    17. if(@$_GET['action']=="update"){

    18. /*如果用户需要修改图片,用新上传的图片替换原来的图片*/

    19. if($_FILES["pic"]["error"]=="0"){

    20. /*

    21. $_FILES['myFile']['error']   该文件上传相关的错误代码。['error'] 是在 PHP 4.2.0 版本中增加的。下面是它的说明:(它们在PHP3.0以后成了常量)

    22. UPLOAD_ERR_OK

    23. 值:0; 没有错误发生,文件上传成功。

    24. UPLOAD_ERR_INI_SIZE

    25. 值:1; 上传的文件超过了 php.ini 中 upload_max_filesize 选项限制的值。

    26. UPLOAD_ERR_FORM_SIZE

    27. 值:2; 上传文件的大小超过了 HTML 表单中 MAX_FILE_SIZE 选项指定的值。

    28. UPLOAD_ERR_PARTIAL

    29. 值:3; 文件只有部分被上传。

    30. UPLOAD_ERR_NO_FILE

    31. 值:4; 没有文件被上传。

    32. 值:5; 上传文件大小为0.

    33. */

    34.  

    35. $up=upload();

    36. /*如果有新上传的图片,就使用上传图片名修改数据库*/

    37. if($up[0])

    38. $pic=$up[1];

    39. else

    40. die($up[1]);

    41.  

    42. }else{

    43. /**如果没有上传图片,还是使用原来的图片*/

    44. @$pic=$_POST["picname"];

    45. }

    46. include "conn.inc.php";

    47.  

    48. $sql_1="UPDATE userdata SET pic='{$pic}' WHERE username = '$username'";

    49. /*执行update语句*/

    50. $result=mysql_query($sql_1);

    51.  

    52. /*如果语句执行成功,并对记录行有所影响,则表示修改成功*/

    53. if($result&& mysql_affected_rows()>0){

    54. /*修改新图片成功后,将原来的图片要删除掉,以免占用磁盘空间*/

    55. if($up[0])

    56. @delpic($_POST["pic"]);

    57. echo "<script> alert('头像上传成功!'); </script>";

    58. }else{

    59. echo "<script> alert('头像上传失败!'); </script>";

    60. }

    61. }

    62. ?>

    63.  

    64. <html>

    65.  

    66. <head>

    67. <title></title>

    68. <link rel="stylesheet" href="css/login.css" media="screen" />

    69. </head>

    70.  

    71. <body>

    72. <div class="content">

    73. <form enctype="multipart/form-data" action="upload.php?action=update" method="post">

    74. <div class="person">

    75.  

    76. <div class="showPic">

    77. <img src="upload/<?php echo @$pic ?>" height="150px" width="150px" />

    78. </div>

    79. <div class="box">

    80. <input type="text" disabled="" class="i-text" value="<?php echo @$pic?>" />

    81. <div class="btnbox">

    82. <input type="file" name="pic" value="<?php echo @$pic?>" /><br />

    83. </div>

    84. <button type="submit" name="add" class="up">上传</button>

    85. <a href="index.php"><button type="button" class="back">返回主页</button></a>

    86. </div>

    87. </div>

    88. </form>

    89. </div>

    90. </body>

    91.  

  6. 函数库文件

     
    
    1. <?php

    2. /*file:func.inc.php 函数库文件*/

    3.  

    4. include "fileupload.class.php";

    5. include "image.class.php";

    6.  

    7. /*声明一个函数upload()处理图片上传*/

    8. function upload(){

    9. $path="./upload/";//设置图片上传路径

    10. $up=new FileUpload($path);//创建文件上传类对象

    11.  

    12. if($up->upload('pic')){//上传图片

    13. $filename=$up->getFileName();//获取上传后的图片名

    14.  

    15. $img=new Image($path);//创建图像处理类对象

    16.  

    17. $img -> thumb($filename,300,300,"");//将上传的图片都缩放至300x300以内

    18. $img -> thumb($filename,80,80,"icon_");//缩放一个80x80的图标,使用icon_作前缀

    19.  

    20. return array(true,$filename); //如果成功,返回成功状态和图片名称

    21. }else{

    22. return array(false,$up->getErrorMsg());//如果失败,返回失败状态和错误消息

    23. }

    24. }

    25.  

    26. function delpic($picname){

    27. $path="./upload/";

    28.  

    29. @unlink($path,$picname);//删除原图

    30. @unlink($path.'icon_'.$picname);//删除图标

    31. }

    32. ?>

  7. 头像上传
    见我的代码片:image.class.php

  8. 文件上传
    见我的代码片:fileupload.class.php

标签:username,php,个人,sql,result,mysql,信息管理系统,PHP,上传
来源: https://blog.csdn.net/zl17822307869/article/details/113806294

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有