温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

php怎么实现简单的雇员管理系统

发布时间:2021-08-19 21:10:15 来源:亿速云 阅读:208 作者:chen 栏目:web开发

这篇文章主要讲解了“php怎么实现简单的雇员管理系统”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“php怎么实现简单的雇员管理系统”吧!

  这是一个简单的php练习小项目,因为比较简单所以就没有用Smarty模板去把这个项目彻底的输入,处理,输出分离,只是简单的用MVC的设计模式去写的。这个项目主要是为了练习Cookie和Session的使用。

  数据库用的是MySQL,建了一个empmanage的数据库,里面有两张表。如图:

php怎么实现简单的雇员管理系统  

表的结构如图:

php怎么实现简单的雇员管理系统

php怎么实现简单的雇员管理系统

  php怎么实现简单的雇员管理系统

  这是登陆界面,因为主要想练习后台相关知识,所以前台页面写的比较简单。实际上是先写的index.php,里面就只是一个跳转。

 index.php

<?php 	header("Location:login.php"); ?>

  login.php

<html> <head> <meta http-equiv="content-type" content="text/html;charset=utf-8"> <title>emp_system</title> </head> <?php require_once 'common.php';?> <h2>emp login</h2> <form action="loginProcess.php" method="post"> 用户名<input type="text" name="username" value="<?php echo getCookie("username")?>"/><br/> 密码 <input type="password" name="password"/><br/> sava cookie<input type="checkbox" name="cookie"/><br/> <input type="submit" value="登陆"/> </form> <?php 	if(!empty($_GET['errNo'])){	$errNo=$_GET['errNo'];	echo "<br/><font color='red'>输入的密码或用户名错误,错误信息</font>".$errNo;	} ?> </html>

  login.php中require_once的common.php

<?php	function getLastTime(){	date_default_timezone_set ( 'UTC' );	if(!empty($_COOKIE)){	echo "上次登录时间:".$_COOKIE['last_visit_time'];	setcookie("last_visit_time",date("Y-m-d  H:i:s"),time()+24*3600);	}else{	echo "第一次登录";	setcookie("last_visit_time",date("Y-m-d  H:i:s"),time()+24*3600);	}	}	function getCookie($key){	if(!empty($_COOKIE[$key])){	return $_COOKIE[$key];	}else{	return "";	}	}	function checkUserLegal(){	session_start();	if(empty($_SESSION['id'])){	header("Location:login.php?errNo=1");	}	} ?>

  login.php中表单提交到loginProcess.php去。

<?php	require_once 'adminService.class.php';	if(!empty($_POST['cookie'])){	if(!empty($_POST['username'])){	$username=$_POST['username'];	setcookie("username","$username",time()+300);	}	if(!empty($_POST['password'])){	$password=$_POST['password'];	setcookie("password","$password",time()+300);	}	}else{	if(!empty($_POST['username'])){	$username=$_POST['username'];	}	if(!empty($_POST['password'])){	$password=$_POST['password'];	}	}	$adminService=new adminService();	if($id=$adminService->checkUser($username, $password)){	//合法	session_start();	$_SESSION['id']=$id;	header("Location:Main.php?id=$id");	exit();	}else{	//非法	header("Location:login.php?errNo=2");	exit();	} ?>

  loginProcess中require_once的adminService.class.php。

<?php	require_once 'SqlHelper.class.php';	class adminService{	//验证用户是否合法	public function checkUser($username,$password){	$sqlHelper=new SqlHelper();	$sql="select password,id from admin where name='".$username."'";	$res=$sqlHelper->execute_dql($sql);	if($row=mysql_fetch_assoc($res)){	if($row['password']==md5($password)){	$id=$row['id'];	return $id;	}else{	return null;	}	}else{	return null;	}	//释放资源	mysql_free_result($res);	//关闭连接	$sqlHelper->close_connent();	}	} ?>

  adminService.class.php中require_once的SqlHelper.class.php。

<?php	class SqlHelper{	public $conn;	public $dbname="empmanage";	public $host="localhost";	public $username="root";	public $password="root";	public function __construct(){	$conn=mysql_connect($this->host,$this->username,$this->password);	if(!$conn){	die("connect error".mysql_errno());	}	mysql_select_db($this->dbname) or die(mysql_errno());	//mysql_query("set names utf8",$this->conn);	}	//dql	public function execute_dql($sql){	$res=mysql_query($sql) or die(mysql_error());	return $res;	}	//dql2 返回一格数组 可以直接关闭结果集	public function execute_dql2($sql){	$arr=array();	$i=0;	$res=mysql_query($sql) or die(mysql_error());	while($row=mysql_fetch_assoc($res)){	$arr[$i++]=$row;	}	mysql_free_result($res);	return $arr;	}	//分页查询	public function execute_dql_fenye($sql1,$sql2,$fenyePage){	$res=mysql_query($sql1) or die(mysql_error());	$arr=array();	while($row=mysql_fetch_assoc($res)){	$arr[]=$row;	}	mysql_free_result($res);	$fenyePage->res_array=$arr;	$res2=mysql_query($sql2) or die(mysql_error());	if($row=mysql_fetch_row($res2)){	$fenyePage->rowCount=$row[0];	$fenyePage->pageCount=ceil($row[0]/$fenyePage->pageSize);	}	mysql_free_result($res2);	$daohangtiao="";	if($fenyePage->pageNow>1){	$prePage=$fenyePage->pageNow-1;	$fenyePage->daohangtiao= "<a href='{$fenyePage->gotoUrl}?pageNow=$prePage'>上一页</a>";	}	if($fenyePage->pageNow<$fenyePage->pageCount){	$nextPage=$fenyePage->pageNow+1;	$fenyePage->daohangtiao.= "<a href='{$fenyePage->gotoUrl}?pageNow=$nextPage'>下一页</a>";	}	//用for打印10页超链接	$start=floor(($fenyePage->pageNow-1)/10)*10+1;	$index=$start;	if($fenyePage->pageNow>10){	$fenyePage->daohangtiao.= " <a href='{$fenyePage->gotoUrl}?pageNow=".($start-1)."'><<</a>";	}	for(;$start<$index+10;$start++){	$fenyePage->daohangtiao.= "<a href='{$fenyePage->gotoUrl}?pageNow=$start'>[$start]</a>";	}	$fenyePage->daohangtiao.= " <a href='{$fenyePage->gotoUrl}?pageNow=$start'>>></a>";	$fenyePage->daohangtiao.= " 当前{$fenyePage->pageNow}页/共{$fenyePage->pageCount}页";	}	//dml	public function execute_dml($sql){	$res=mysql_query($sql) or die(mysql_error());	if(!$res){	return 0;//没有用户匹配	}	if(mysql_affected_rows($this->conn)>0){	return 1;//ok	}else{	return 2;//没有行受到影响	}	}	//关闭连接	public function close_connent(){	if(!empty($this->conn)){	mysql_close($this->conn);	}	}	} ?>

  验证是合法用户跳转到Main.php,非法跳转到login.php并把errNo带回去并用红色输出。如图:

<html> <head> <meta http-equiv="content-type" content="text/html;charset=utf-8"> </head> <?php	require_once 'common.php';	checkUserLegal();	$id=$_REQUEST['id'];	echo "欢迎".$id."登陆"; // 	setcookie("last_visit_time","",time()-100);	getLastTime(); ?> <h2>Main View</h2> <a href="empList.php">管理用户</a><br/> <a href="addEmp.php">添加用户</a><br/> <a href="selectEmp.php">查询用户</a><br/> </html>

php怎么实现简单的雇员管理系统

php怎么实现简单的雇员管理系统

  在Main页面你可以选择管理用户,添加用户,查询用户(用户可以理解为雇员)。那么点击查询用户后会跳转到selectEmp.php去。

php怎么实现简单的雇员管理系统

<html> <head> <meta http-equiv="content-type" content="text/html;charset=utf-8"> </head> <h2>查找用户</h2> <form action="empProcess.php" method="post"> 输入id号:<input type="text" name="id"/> <input type="hidden" name="flag" value="selectEmp"/> <input type="submit" value="go"/> </form> </html>

  在selectEmp.php中的表单会跳转到empProcess.php去。

<?php	require_once 'empService.class.php';	require_once 'emp.class.php';	$empService=new empService();	if(!empty($_REQUEST['flag'])){	if($_REQUEST['flag']=="del"){	$id=$_REQUEST['id'];	if($empService->deleteById($id)==1){	header("Location: ok.php");	exit();	}else{	header("Location: err.php");	exit();	}	}else if($_REQUEST['flag']=="addEmp"){	$name=$_REQUEST['name'];	$grade=$_REQUEST['grade'];	$email=$_REQUEST['email'];	$salary=$_REQUEST['salary'];	if($empService->addEmp($name, $grade, $email, $salary)==1){	header("Location: ok.php");	exit();	}else{	header("Location: err.php");	exit();	}	}else if($_REQUEST['flag']=="selectEmp"){	$id=$_REQUEST['id'];	if($res=$empService->selectEmp($id)){	echo "id{$res[0]['id']} name{$res[0]['name']} grade{$res[0]['grade']} email{$res[0]['email']} salary{$res[0]['salary']}";	}	}else if($_REQUEST['flag']=="updataEmp"){	$id=$_REQUEST['id'];	$name=$_REQUEST['name'];	$grade=$_REQUEST['grade'];	$email=$_REQUEST['email'];	$salary=$_REQUEST['salary'];	if($empService->updataEmp($id, $name, $grade, $email, $salary)==1){	header("Location: ok.php");	exit();	}else{	header("Location: err.php");	exit();	}	}	} ?>

  这其中require_once的empService.class.php和emp.class.php。

<?php	require_once 'SqlHelper.class.php';	class empService{	//计算出$PageCount	public function getPageCount($pageSize){	$sqlHelper=new SqlHelper();	$sql="select count(id) from emp";	$res=$sqlHelper->execute_dql($sql);	if($row=mysql_fetch_row($res)){	$rowCount=$row[0];	}	$pageCount=ceil($rowCount/$pageSize);	mysql_free_result($res);	$sqlHelper->close_connent();	return $pageCount;	}	//取出结果集	public function getRes($pageNow,$pageSize){	$sqlHelper=new SqlHelper();	$sql="select id,name,grade,email,salary from emp limit ".($pageNow-1)*$pageSize.",$pageSize";	$res=$sqlHelper->execute_dql2($sql);  	$sqlHelper->close_connent();	return $res;	}	//分页	public function getFenyePage($fenyePage){	$sqlHelper=new SqlHelper();	$sql1="select id,name,grade,email,salary from emp limit ".($fenyePage->pageNow-1)*$fenyePage->pageSize.",$fenyePage->pageSize";	$sql2="select count(id) from emp";	$sqlHelper->execute_dql_fenye($sql1, $sql2, $fenyePage);	$sqlHelper->close_connent();	}	//删除用户	public function deleteById($id){	$sqlHelper=new SqlHelper();	$sql="delete from emp where id=$id";	return $sqlHelper->execute_dml($sql) or die(mysql_error());	$sqlHelper->close_connent();	}	//添加用户	public function addEmp($name,$grade,$email,$salary){	$sqlHelper=new SqlHelper();	$sql="insert into emp(name,grade,email,salary) values ('$name','$grade','$email','$salary')";	return $sqlHelper->execute_dml($sql) or die(mysql_error());	$sqlHelper->close_connent();	}	//查询用户	public function selectEmp($id){	$sqlHelper=new SqlHelper();	$sql="select * from emp where id=$id";	$res=$sqlHelper->execute_dql2($sql) or die(mysql_error());	$sqlHelper->close_connent();	return $res;	}	//修改用户	public function updataEmp($id,$name,$grade,$email,$salary){	$sqlHelper=new SqlHelper();	$sql="update emp set name='$name',grade=$grade,email='$email',salary=$salary where id=$id";	return $sqlHelper->execute_dml($sql) or die(mysql_error());	$sqlHelper->close_connent();	}	} ?>
<?php	class emp{	public $res_arr_emp;	} ?>

  验证后若该用户存在输出该用户的详细信息,如id name grade email salary。这是查询,因为做的比较简单,所以没有写个超链接让它返回上一层。

  若你在Main界面点击的是添加用户,则会跳转到addEmp.php。

<html> <head> <meta http-equiv="content-type" content="text/html;charset=utf-8"> </head> <h2>添加用户</h2> <form action="empProcess.php" method="post"> <table> <tr><td>name<td><td><input type="text" name="name"/><td></tr> <tr><td>grade(tinyint)<td><td><input type="text" name="grade"/><td></tr> <tr><td>email<td><td><input type="text" name="email"/><td></tr> <tr><td>salary(int)<td><td><input type="text" name="salary"/><td></tr> <tr><td><input type="submit" value="go"><td><td><input type="reset" value="reset"/><td></tr> <tr><input type="hidden" name="flag" value="addEmp"></tr> </table> </form> </html>

php怎么实现简单的雇员管理系统

  为了简单没有用js正则表达式去对表单中所输入的内容进行验证是否符合格式。输入完表单后会跳转到empProcess.php去验证。如果添加成功会跳转到ok.php,否则会跳转到err.php。

<?php	header("Content-Type:text/html;charset=utf-8");	echo "操作成功";	echo "<a href=empList.php>返回上一级<a>"; ?>
<?php	header("Content-Type:text/html;charset=utf-8");	echo "操作失败<br/>";	echo "<a href=empList.php>返回上一级<a>"; ?>

  若在Main页面点击管理用户则会跳转到empList.php。

php怎么实现简单的雇员管理系统

<html> <head> <meta http-equiv="content-type" content="text/html;charset=utf-8"> </head> <?php	require_once 'empService.class.php';	require_once 'FenyePage.class.php';	require_once 'common.php';	checkUserLegal();	$fenyePage=new FenyePage();	//分页	$fenyePage->pageNow=1;//显示第几页 用户输入 不停变化	if(!empty($_GET['pageNow'])){	$fenyePage->pageNow=$_GET['pageNow'];	}	$fenyePage->pageCount=0;//共几页 需要$rowCount计算	$fenyePage->pageSize=5;//一页显示多少条记录	$fenyePage->rowCount=0;//数据库中获取 共有几条记录	$fenyePage->gotoUrl="empList.php";//要跳转的页面	$empService=new empService();	$empService->getFenyePage($fenyePage);	echo "<table border='1px' >";	echo "<tr><th>id</th><th>name</th><th>grade</th><th>email</th><th>salary</th><th><a href='#'>删除用户</a></th><th><a href='#'>修改用户</a></th></tr>";	for($i=0;$i<count($fenyePage->res_array);$i++){	$row=$fenyePage->res_array[$i];	echo "<tr><td>{$row['id']}</td><td>{$row['name']}</td><td>{$row['grade']}</td><td>{$row['email']}</td><td>{$row['salary']}</td><td><a href='empProcess.php?flag=del&id={$row['id']}'>删除用户</a></td><td><a href='updataEmp.php?flag=updataEmp&id={$row['id']}&name={$row['name']}&grade={$row['grade']}&email={$row['email']}&salary={$row['salary']}'>修改用户</a></td></tr>";	}	echo "<table>";	//打印导航条	echo $fenyePage->daohangtiao; ?> </html>

  其中require_once的FenyePage.class.php。

<?php	class FenyePage{	public $pageNow=1;//默认打开时第一页	public $pageSize;	public $pageCount;	public $rowCount;	public $res_array;	public $daohangtiao;//导航条	public $gotoUrl;//要跳转的页面	} ?>

 点击修改用户会跳转到updataEmp.php。

<html> <head> <meta http-equiv="content-type" content="text/html;charset=utf-8"> </head> <h2>修改用户</h2> <?php 	if($_REQUEST['flag']=="updataEmp"){	$id=$_REQUEST['id'];	$name=$_REQUEST['name'];	$grade=$_REQUEST['grade'];	$email=$_REQUEST['email'];	$salary=$_REQUEST['salary'];	} ?> <form action="empProcess.php" method="post"> <table> <tr><td>id<td><td><input readonly="readonly" type="text" name="id" value="<?php echo $id;?>"/><td></tr> <tr><td>name<td><td><input type="text" name="name" value="<?php echo $name;?>"/><td></tr> <tr><td>grade(tinyint)<td><td><input type="text" name="grade" value="<?php echo $grade;?>"/><td></tr> <tr><td>email<td><td><input type="text" name="email" value="<?php echo $email;?>"/><td></tr> <tr><td>salary(int)<td><td><input type="text" name="salary" value="<?php echo $salary;?>"/><td></tr> <tr><td><input type="submit" value="go"><td><td><input type="reset" value="reset"/><td></tr> <tr><input type="hidden" name="flag" value="updataEmp"></tr> </table> </form> </html>

php怎么实现简单的雇员管理系统

感谢各位的阅读,以上就是“php怎么实现简单的雇员管理系统”的内容了,经过本文的学习后,相信大家对php怎么实现简单的雇员管理系统这一问题有了更深刻的体会,具体使用情况还需要大家实践验证。这里是亿速云,小编将为大家推送更多相关知识点的文章,欢迎关注!

向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

php
AI