PHP——个人信息管理系统

来源:互联网 发布:2015淘宝联盟我的舞台 编辑:程序博客网 时间:2024/04/30 08:45

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


先贴上数据库结构图



表单中有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实现后台验证,代码如下:
    <?php /** file:reg.inc.php 用户注册*/date_default_timezone_set('prc');/*设置时区*/@$username = htmlspecialchars($_POST['username']);  @$password = $_POST['pass'];$password = MD5($password);$regdate = date('Y-m-d H:i:s',time());$pic_dir="default.png";$url="login.inc.php";if(isset($_POST['reg'])){/*添加数据需要先连接并选数据库,包含conn.inc.php文件连接数据库*/include"conn.inc.php";$sql_2="SELECT * FROM userdata WHERE username = '$username'";/*执行INSERT语句*/$result_2=mysql_query($sql_2,$link);$rows=mysql_fetch_array($result_2);   mysql_free_result($result_2);if($rows>0){echo "<script type='text/javascript'>alert('用户名已存在');location='javascript:history.back()';</script>"; }else{/*根据用户通过POST提交的数据组合插入数据库的SQL语句*/if(strlen($username)>=5&&strlen($pass)>=6){$sql = "INSERT INTO userdata(username,pass,regdate,pic) VALUES('".$username."','".$password."','".$regdate."','".$pic_dir."')";$result=mysql_query($sql,$link);echo "<script> alert('用户注册成功!'); </script>";echo "<meta http-equiv='Refresh' content='0;URL=$url'>";}}}?><html><head><title>登录系统</title><meta charset="utf-8" /><link rel="stylesheet" href="css/login.css" /><script src="js/jquery-3.1.0.js"></script><script src="js/check.js"></script></head><body><div class="content"><!--  登录面板    --><div class="panel"><form action="reg.inc.php" method="post"><div class="group"><label for="username">用户名:</label><input id="username" class="required" type="text" name="username" placeholder="请输入至少5位的用户名" /></div><div class="group"><label for="pass">密码:</label><input id="pass" type="password" class="required" name="pass" placeholder="密码必须大于6位"/></div><div class="login"><button type="submit" name="reg" id="send">确认注册</button></div></div><div class="register">            <a href="login.inc.php"><button type="button">返回首页</button></a>        </div></form></div></body></html>

  2. 登录页面,后台验证用户名和密码是否匹配,匹配则用COOKIE记录登录状态及用户信息,然后跳转至主页面,代码如下:
    <?php/** file:login.inc.php 登录系统的主控制文件和主入口文件*/ /*声明一个删除Cookie的函数,调用时消除在客户端设置的所以Cookie*/function clearCookies(){//只指定Cookie识别名称一个参数,即删除客户端中这个指定名称的Cookie资料//生存空间默认为空,则生存期限与浏览器一样,浏览器关闭时Cookie就会被删除setcookie('username');setcookie('isLogin');}      include "conn.inc.php";@$username = htmlspecialchars($_POST['username']);  @$password = $_POST['pass'];$password = MD5($password);/*如果用户的操作是提交表单,则条件成立*/if(isset($_POST['submit'])){clearCookies();$sql = "SELECT * FROM userdata WHERE username = '$username' and pass='$password'";   $res = mysql_query($sql,$link);/*mysql_num_rows只能用于select语句*/   $rows=mysql_num_rows($res);if($rows>0){   /*向Cookie中设置标识符为username,值是表单中提交的,期限为一周*/   setcookie('username',$username,time()+60*60*24*7);   /*向Cookie中设置标识符为isLogin,用来在其它页面检查用户是否登录*/   setcookie('isLogin','1',time()+60*60*24*7);   /*如果Cookie设置成功则转向网站首页*/   header("Location:index.php");//跳转页面,注意路径}else{echo '<font color="red">用户名或密码错误!</font>';    }}else if(@$_GET["action"]=="logout"){//退出时消除在客户端设置的所有CookieclearCookies();}?><html><head><title>登录系统</title><meta charset="utf-8" /><link rel="stylesheet" href="css/login.css" /></head><body><div class="content"><!--  登录面板    --><div class="panel"><form action="login.inc.php" method="post"><div class="group"><label for="username">用户名:</label><input id="username" type="text" name="username" placeholder="请输入账号" /></div><div class="group"><label for="pass">密码:</label><input id="pass" type="password" name="pass" placeholder="请输入密码" /></div><div class="login"><button type="submit" name="submit">登录</button></div></div><div class="register">            <a href="reg.inc.php"><button type="button">创建新账号</button></a>        </div></form></div></body></html>

  3. 主页面,显示用户头像及昵称、性别、个性签名等信息,代码如下:
    <?php /** file:index.php 登录系统的首页*//*如果用户没有通过身份验证,页面跳转至登录页面*/if(!(isset($_COOKIE['isLogin'])&&$_COOKIE['isLogin']=='1')){header("Location:login.inc.php");exit;}$username=$_COOKIE['username'];include "conn.inc.php";/*分别从数据库中获取nickname,sex,pic的值*/$sql_1 = "SELECT pic FROM userdata WHERE username = '$username'";$res_1 = mysql_query($sql_1,$link);$pic = mysql_result($res_1,0);$sql_2 = "SELECT nickname FROM userdata WHERE username = '$username'";$res_2 = mysql_query($sql_2,$link);$nickname = mysql_result($res_2,0);$sql_3 = "SELECT sex FROM userdata WHERE username = '$username'";$res_3 = mysql_query($sql_3,$link);$sex = mysql_result($res_3,0);if($sex==1){$sex="男";}else if($sex==2){$sex="女";}else if($sex==0){$sex=="保密";}$sql_4 = "SELECT message FROM userdata WHERE username = '$username'";$res_4 = mysql_query($sql_4,$link);$mess = mysql_result($res_4,0);?><html><head><title>我的资料</title><link rel="stylesheet" href="css/login.css" media="screen" /><script src="js/jquery-3.1.0.js"></script><script src="js/show_time.js"></script></head><body><div class="content"><div class="person"><div class="showPic"><a href="upload.php"><img src="upload/<?php echo $pic ?>" height="80px" width="80px" /></a></div><?php/*从Cookie中获取用户名name*/echo $_COOKIE['username'].'的空间';?><div id="clock"></div></div></div><div class="content"><!--  登录面板    --><div class="panel"><form action="index.php" method="post" id="regForm"><div class="group"><label for="nickname">昵称:</label><input type="text" name="nick" placeholder="<?php echo $nickname ?>" disabled=""/></div><div class="group"><label for="sex">性别:</label><input type="text" name="sex" placeholder="<?php echo $sex ?>" disabled=""/></div><div class="group"><label for="mess">个性签名:</label><textarea name="mess" rows="4" cols="30" readonly=""><?php echo $mess ?></textarea></div><div class="login"><a href="info.php"><button type="button">修改资料</button></a></div></div><div class="register"><a href="login.inc.php?action=logout"><button type="button">退出</button></a></div></form></div></body></html>

  4. 信息修改页面,修改个人信息,更新表单数据,代码如下:
    <?php /** file:info.php 修改个人信息*//*如果用户没有通过身份验证,页面跳转至登录页面*/if(!(isset($_COOKIE['isLogin'])&&$_COOKIE['isLogin']=='1')){header("Location:login.inc.php");exit;}$username=$_COOKIE['username'];$url="index.php";include "conn.inc.php";$sql = "SELECT pic FROM userdata WHERE username = '$username'";$res = mysql_query($sql,$link);$pic = mysql_result($res,0);$sql_2 = "SELECT nickname FROM userdata WHERE username = '$username'";$res_2 = mysql_query($sql_2,$link);$show_nickname = mysql_result($res_2,0);$sql_3 = "SELECT sex FROM userdata WHERE username = '$username'";$res_3 = mysql_query($sql_3,$link);$show_sex = mysql_result($res_3,0);$sql_4 = "SELECT message FROM userdata WHERE username = '$username'";$res_4 = mysql_query($sql_4,$link);$show_mess = mysql_result($res_4,0);@$nickname = htmlspecialchars($_POST['nickname']);  @$sex = $_POST['sex'];@$mess = $_POST['mess'];?><html><head><title>我的资料</title><link rel="stylesheet" href="css/login.css" media="screen" /><script src="js/jquery-3.1.0.js"></script></head><body><div class="content"><div class="person"><div class="showPic"><a href="upload.php"><img src="upload/<?php echo $pic ?>" height="100px" width="100px" /></a></div><?php/*从cookie中获取用户名username*/echo $_COOKIE['username'].'的资料';?><div id="clock"></div></div></div><div class="content"><!--  登录面板    --><div class="panel"><form action="info.php" method="post" id="regForm"><div class="group"><label for="nickname">昵称:</label><input type="text" name="nickname" value="<?php echo $show_nickname ?>" /></div><div class="group"><label for="sex" class="sex">性别:</label><div class="sex"><input id="sex" type="radio" name="sex" value="1" />男<input id="sex" type="radio" name="sex" value="2"/>女<input id="sex" type="radio" name="sex" value="0" checked/>保密</div></div><div class="group"><label for="mess">个性签名:</label><textarea name="mess" rows="4" cols="30"><?php echo $show_mess ?></textarea></div><div class="login"><button type="submit" name="mod">确认修改</button></div></div><div class="register"><button type="reset">重置</button><a href="index.php"><button type="button">返回</button></a></div></form></div><?phpif(isset($_POST['mod'])){include"conn.inc.php";/*根据用户通过POST提交的数据组合插入数据库的SQL语句*/$sql_1 = "UPDATE userdata SET nickname='".$nickname."' WHERE username = '$username'";$sql_2 = "UPDATE userdata SET sex='".$sex."' WHERE username = '$username'";$sql_3 = "UPDATE userdata SET message='".$mess."' WHERE username = '$username'";$result_1=mysql_query($sql_1,$link);$result_2=mysql_query($sql_2,$link);$result_3=mysql_query($sql_3,$link);/*如果INSERT语句执行成功,并对数据表userdata有行数影响,则插入成功*/if($result_1||$result_2||$result_3){    echo "<script> alert('修改成功!'); </script>";    echo "<meta http-equiv='Refresh' content='0;URL=$url'>";}else{echo "<script> alert('修改失败!'); </script>";}}?></body></html>

  5. 头像上传页面,上传个人头像,本地保存头像,数据库保存头像地址,代码如下:
    <?php/*如果用户没有通过身份验证,页面跳转至登录页面*/if(!(isset($_COOKIE['isLogin'])&&$_COOKIE['isLogin']=='1')){header("Location:login.inc.php");exit;}include "func.inc.php";include "conn.inc.php";$username=$_COOKIE['username'];$sql = "SELECT pic FROM userdata WHERE username = '$username'";$res = mysql_query($sql,$link);$pic = mysql_result($res,0);if(@$_GET['action']=="update"){/*如果用户需要修改图片,用新上传的图片替换原来的图片*/if($_FILES["pic"]["error"]=="0"){/*$_FILES['myFile']['error']   该文件上传相关的错误代码。['error'] 是在 PHP 4.2.0 版本中增加的。下面是它的说明:(它们在PHP3.0以后成了常量)UPLOAD_ERR_OK值:0; 没有错误发生,文件上传成功。UPLOAD_ERR_INI_SIZE值:1; 上传的文件超过了 php.ini 中 upload_max_filesize 选项限制的值。UPLOAD_ERR_FORM_SIZE值:2; 上传文件的大小超过了 HTML 表单中 MAX_FILE_SIZE 选项指定的值。UPLOAD_ERR_PARTIAL值:3; 文件只有部分被上传。UPLOAD_ERR_NO_FILE值:4; 没有文件被上传。值:5; 上传文件大小为0.*/$up=upload();/*如果有新上传的图片,就使用上传图片名修改数据库*/if($up[0])$pic=$up[1];else die($up[1]);}else{/**如果没有上传图片,还是使用原来的图片*/@$pic=$_POST["picname"];}include "conn.inc.php";$sql_1="UPDATE userdata SET pic='{$pic}' WHERE username = '$username'";/*执行update语句*/$result=mysql_query($sql_1);/*如果语句执行成功,并对记录行有所影响,则表示修改成功*/if($result&& mysql_affected_rows()>0){/*修改新图片成功后,将原来的图片要删除掉,以免占用磁盘空间*/if($up[0])@delpic($_POST["pic"]);echo "<script> alert('头像上传成功!'); </script>";}else{echo "<script> alert('头像上传失败!'); </script>";}}?><html><head><title></title><link rel="stylesheet" href="css/login.css" media="screen" /></head><body><div class="content"><form enctype="multipart/form-data" action="upload.php?action=update" method="post"><div class="person"><div class="showPic"><img src="upload/<?php echo @$pic ?>" height="150px" width="150px" /></div><div class="box"><input type="text" disabled="" class="i-text" value="<?php echo @$pic?>" /><div class="btnbox"><input type="file" name="pic" value="<?php echo @$pic?>" /><br /></div><button type="submit" name="add" class="up">上传</button><a href="index.php"><button type="button" class="back">返回主页</button></a></div></div></form></div></body>

  6. 函数库文件
    <?php/*file:func.inc.php 函数库文件*/include "fileupload.class.php";include "image.class.php";/*声明一个函数upload()处理图片上传*/function upload(){$path="./upload/";//设置图片上传路径$up=new FileUpload($path);//创建文件上传类对象if($up->upload('pic')){//上传图片$filename=$up->getFileName();//获取上传后的图片名$img=new Image($path);//创建图像处理类对象$img -> thumb($filename,300,300,"");//将上传的图片都缩放至300x300以内$img -> thumb($filename,80,80,"icon_");//缩放一个80x80的图标,使用icon_作前缀return array(true,$filename);//如果成功,返回成功状态和图片名称}else{return array(false,$up->getErrorMsg());//如果失败,返回失败状态和错误消息}}function delpic($picname){$path="./upload/";@unlink($path,$picname);//删除原图@unlink($path.'icon_'.$picname);//删除图标}?>
  7. 头像上传
    见我的代码片:image.class.php
  8. 文件上传
    见我的代码片:fileupload.class.php
0 0