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实现后台验证,代码如下:
    <?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"){
    			//退出时消除在客户端设置的所有Cookie
    			clearCookies();
    		}
    ?>
    <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>
    		<?php
    		if(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
  • 51
    点赞
  • 334
    收藏
    觉得还不错? 一键收藏
  • 14
    评论
在日常办公中有许多常用的个人数据,如朋友电话、邮件地址、日程安排、日常记事、文件上传和下载,这些都可以用一个个人信息管理系统进行管理。个人信息管理系统可以内置于手掌上的数字处理器,以提供电子名片、便条、行程管理等功能。本项目基于B/S设计,也可以发布到网上,用户可以随时存取个人信息。 用户可以在系统中任意添加、修改、删除个人数据,包括个人的基本信息、个人通讯录、日程安排、个人文件管理。 要实现的功能包括四个方面: (1)登录与注册 系统的登录和注册功能。 (2)个人基本信息管理模块 系统中对个人基本信息的管理包括:个人的姓名、性别、出生日期、民族、学历、职称、登录名、密码、电话、家庭住址等。 (2)用户个人通讯录模块 系统的个人通讯录是保存了个人的通讯录信息,包括自己联系人的姓名、电话、邮箱、工作单位、地址、QQ等。可以自由添加联系人的信息,查询或删除联系人。 (3)日程安排模块 日程模块记录自己的活动安排或者其它有关事项,如添加从某一时间到另一时间要做什么事,日程标题、内容、开始时间、结束时间。可以自由查询,修改,删除。 (4)个人文件管理模块 该模块实现用户在网上存储临时文件的功能。用户可以新建文件夹,修改、删除、移动文件夹;上传文件、修改文件名、下载文件、删除文件、移动文件等。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 14
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值