通讯录管理系统
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
PHP+mysql 入门级通讯录
第一次接触PHP,在同学和网络大神的帮助下,完成了这样一个小小的通讯录程序,因为时间原因,就不再继续完善了,学习过程中遇到了一些小问题,特此整理了一下,当然也包括程序源码。
目录
PHP+mysql 入门级通讯录 (1)
PHP入门第一步——安装程序 (2)
一、安装phpstudy (2)
二、安装Navicat for MySQL (2)
三、安装编辑器 (2)
准备工作 (2)
一、首先需要建立自己的数据库,代码如下: (2)
二、数据库建成后,在sublime写一个连接数据库的程序进行测试 (3)
连接数据库操作 (4)
一、连接数据库 (4)
二、查询联系人 (4)
三、添加联系人 (6)
四、修改联系人 (9)
五、删除联系人 (12)
六、用户登录 (13)
七、用户注册 (16)
PHP入门第一步——安装程序
一、安装phpstudy
因为朋友有做这个的,推荐我使用phpstudy,新手使用很方便,免去了很多麻烦。
下载phpstudy后按照步骤安装(百度下载phpstudy)因为phpstudy本身就带使用手册,在这里就不多说明了。
(别忘记打开MySQL和Apache)
二、安装Navicat for MySQL
因为phpstudy自带数据库和Apache等,为了便于使用,安装一个Navicat
三、安装编辑器
依然是在朋友的推荐下选择了sublime,之前也用过eclipse,但是安装JDK什么的还得配置环境,比较麻烦,博主是一个很会偷懒的人。
安装好相关工具之后,先写一个helloworld测试一下
<!DOCTYPE html>
<html>
<body>
<?php
echo "Hello World!";
>
</body>
</html>
在用户浏览器中运行,(如果使用的phpstudy,那么运行时输入地址
http://localhost/helloworld.php)
如果程序配置无误,可以正常运行,就可以开始后续的代码编写了!
准备工作
一、首先需要建立自己的数据库,代码如下:
创建数据库(数据库名为MyDB,默认编码格式为utf-8)
CREATE DATABASE `MyDB` DEFAULT CHARACTER SET utf8 COLLATE utf8_bin;
创建通讯录表(ID自动生成)
CREATE TABLE `mydb`.`AddrList` (
`ID` INT NOT NULL AUTO_INCREMENT ,
`Name` VARCHAR( 15 ) NOT NULL ,
`Sex` INT NOT NULL ,
`Birthday` DATE NOT NULL ,
`QQ` VARCHAR( 15 ) NOT NULL ,
`Mobile` VARCHAR( 25 ) NOT NULL ,
`Email` VARCHAR( 30 ) NOT NULL ,
`Address` VARCHAR( 50 ) NOT NULL ,
PRIMARY KEY ( `ID` )
) ;
向通讯录里加入几条记录
INSERT INTO `mydb`.`addrlist` (
`ID` ,
`Name` ,
`Sex` ,
`Birthday` ,
`QQ` ,
`Mobile` ,
`Email` ,
`Address`
)
VALUES (
NULL,'xy','0','1995-10-27','569742950','123456789','**************','中国' ), (
NULL,'123','0','1234-56-78','123456789','987654321','*************','南湖' );
二、数据库建成后,在sublime写一个连接数据库的程序进行测试
<meta charset="utf-8">
<?php
$db_host = 'localhost'; //数据库主机名称,一般都为localhost
$db_user = 'root'; //数据库用户帐号,根据个人情况而定
$db_passw = 'root'; //数据库用户密码,根据个人情况而定
$db_name = 'mydb'; //数据库具体名称
//连接数据库
$conn = MySQL_connect($db_host,$db_user,$db_passw) or die ('数据库连接失败!');
//设置字符集类型
MySQL_query("set names 'utf8'");
//MySQL_query("set names 'gb2312'");
//查询数据库
MySQL_select_db($db_name,$conn) or die('数据库选定失败!');
$sql="select * from mydb.addrlist;";
//执行SQL语句(查询)
$result = MySQL_query($sql) or die('数据库查询失败!<br/>可能数据库中没有记录');
if ($result){
echo "连接成功";
}
>
运行后显示连接成功,就可以开始下一步的操作了
连接数据库操作
一、连接数据库
因为之前的文章已经包含了连接数据库的测试,这里就不再提了。
直接新建一个文件,命名为Conn.php,完成数据库连接的相关代码
<meta charset="utf-8"> <!-- 设置页面编码格式-->
<?php
$db_host = 'localhost'; //数据库主机名称,一般都为localhost
$db_user = 'root'; //数据库用户帐号,根据个人情况而定
$db_passw = 'root'; //数据库用户密码,根据个人情况而定
$db_name = 'mydb'; //数据库具体名称
//连接数据库
$conn = MySQL_connect($db_host,$db_user,$db_passw) or die ('数据库连接失败!');
//设置字符集类型
MySQL_query("set names 'utf8'");
//MySQL_query("set names 'gb2312'");
//查询数据库
MySQL_select_db($db_name,$conn) or die('数据库选定失败!');
//执行SQL语句(查询)
$result = MySQL_query($sql) or die('数据库查询失败!<br/>可能数据库中没有记录');
>
二、查询联系人
数据库连接成功后,做一个简单的查找。
新建文件,名为Index.php,作为通讯录的首页。
做一个简单的查询操作,并将查询结果显示到HTML的表单上
<!-- 首页-->
<html>
<head>
<meta charset="utf-8">
<title>通讯录首页</title>
</head>
<body>
<div align="right">
[<a href="input.php" mce_href="input.php">添加</a>]
</div>
<h2 align="center">我的通讯录</h2>
<?php
$sql = "SELECT * FROM `AddrList`"; //在数据库中查找表中记录
require('conn.php'); //调用conn.php文件,执行数据库操作
?>
<form id="form2" name="form2" method="post" action="Modify.php"><!-- 通过post方法传递参数-->
<!---创建一个表格-->
<table width="80%" border="1" align="center">
<tr>
<th bgcolor="#CCCCCC" scope="col">姓名</th>
<th bgcolor="#CCCCCC" scope="col">性别</th>
<th bgcolor="#CCCCCC" scope="col">生日</th>
<th bgcolor="#CCCCCC" scope="col">QQ</th>
<th bgcolor="#CCCCCC" scope="col">手机</th>
<th bgcolor="#CCCCCC" scope="col">邮箱</th>
<th bgcolor="#CCCCCC" scope="col">地址</th>
<th bgcolor="#CCCCCC" scope="col">管理</th>
</tr>
<?php
while($row = MySQL_fetch_row($result)) //循环开始读取row中的数据
{
//判断性别
if($row[2]==0)
{
$sex = '男';
}
else
{
$sex = '女';
}
?>
<!---被循环的HTML表格中带有PHP代码-->
<tr>
<td><?php echo $row[1];?></td> <!--姓名-->
<td><?php echo $sex;?></td> <!--性别-->
<td><?php echo $row[3];?></td> <!--生日-->
<td><?php echo $row[4];?></td> <!--QQ-->
<td><?php echo $row[5];?></td> <!--手机-->
<td><?php echo $row[6];?></td> <!--邮箱-->
<td><?php echo $row[7];?></td> <!--地址-->
<td><a href="Modify.php?id=<?php echo $row[0];?>" >编辑</a><!--跳转到修改界面的超链接-->
<a href="Delete.php?id=<?php echo $row[0];?>" >删除</a></td>
</tr>
<?php
}
?>
</table>
</from>
</body>
</html>
三、添加联系人
写入门小程序无论是课程管理也好、通讯录也好,基本都是针对数据库的增删改查。
同样,新建一个文件,命名为Input.php(因为是纯HTML,也可以命名为Input.html,为了不发生混乱,就都用了一样的格式)
<!-- 添加联系人PHP -->
<!-- 博主邮箱*****************有问题可以联系我,欢迎任何意见和建议-->
<!DOCTYPE HTML>
<html>
<head>
<meta charset="utf-8">
<title>添加联系人</title>
<style>
.error {color:#FF0000;}
</style>
</head>
<body>
<meta charset="utf-8">
[<a href="index.php" mce_href="index.php">首页</a>]
</div>
<h2 align="center">添加联系人</h2>
<form id="form1" name="form1" method="post" action="Post.php"><!-- 同样通过post方法,点击添加后跳转到操作页面post.php -->
<table width="381" border="1" align="center" bordercolor="#DDDDDD">
<tr>
<td width="64">姓名</td>
<td width="307"><label>
<input name="name" type="text" id="name" />
</label></td>
</tr>
<tr>
<td>性别</td>
<td><label>
<input name="sex" type="radio" value="0" checked="checked" />
男
<input type="radio" name="sex" value="1" />
女</label></td>
</tr>
<tr>
<td>生日</td>
<td><label>
<input name="birthday" type="date" id="birthday" />
</label></td>
</tr>
<tr>
<td>QQ</td>
<td><label>
<input name="qq" type="text" id="qq" />
</label></td>
</tr>
<tr>
<td>手机</td>
<td><label>
<input name="mobile" type="text" id="mobile" />
</label></td>
</tr>
<tr>
<td>邮箱</td>
<td><label>
<input name="email" type="text" id="email" />
</label></td>
</tr>
<tr>
<td>地址</td>
<td><label>
<input name="address" type="text" id="address" size="40" />
</label></td>
</tr>
<tr>
<td colspan="2"><label>
<div align="right">
<input type="submit" name="Submit3" value="提交" />
<input type="reset" name="button" value="清空" />
</div> </label></td>
</tr>
</table>
</form>
<?php
?>
</body>
</html>
用户输入完成后,点击提交,表单数据通过post方法传到post.php做操作处理,所以我们需要新建一个名为Post.php的文件,代码如下:
<meta charset="utf-8">
<?php
//使用post获取上一页表单信息(用户输入的信息)
$name = $_POST['name'];
$sex = $_POST['sex'];
$birthday = $_POST['birthday'];
$qq = $_POST['qq'];
$mobile = $_POST['mobile'];
$email = $_POST['email'];
$address = $_POST['address'];
$sql = "INSERT INTO `mydb`.`addrlist` (
`Name` , `Sex` , `Birthday` , `QQ` , `Mobile` , `Email` , `Address`
)
VALUES (
'$name', '$sex', '$birthday', '$qq', '$mobile', '$email', '$address'
);"; //向数据库里添加记录的sql语句
require('conn.php'); //将$sql交由conn.php处理了
//提示操作成功信息,注意:$result存在于conn.php文件中,被调用出来
if($result)
{
?>
<script type="text/javascript">
alert("添加成功!");
window.location.href="Index.php";
</script>
<?php
}
else{
?>
<script type="text/javascript">
alert("添加失败!");
window.location.href="Index.php";
</script>
<?php
}
?>
通过post获取上一页(input.php)用户输入的信息,然后编辑将信息添加到数据可能的sql语句,调用conn.php,执行sql语句,便完成了对数据库的添加操作
四、修改联系人
序号是接着上一篇文章的
其实增删改查这几个操作都很类似,只要会写sql语句,再做一些简单的修改就可以了,新建一个名为Modify.php的文件
<!-- 修改联系人信息-->
<meta charset="utf-8">
<div align="right">
[<a href="index.php" mce_href="index.php">首页</a>]
</div>
<h2 align="center">编辑联系人</h2>
<?php
$id = $_GET['id']; //根据上一页点击的数据获取所要编辑数据的ID
$sql = "select * from addrlist WHERE Id=$id"; //通过ID查询
//执行查询将查询结果绑定到表单
require('conn.php');
$row = MySQL_fetch_row($result);
?>
<form id="form1" name="form1" method="post" action="Mod.php">
<input type="hidden" name="id" value=<?php echo $_GET['id']?>>
<table width="381" border="1" align="center" bordercolor="#DDDDDD">
<tr>
<td width="64" >姓名</td>
<td width="307"><label>
<input name="name" type="text" id="name" value=<?php echo $row[1];?> />
</label></td>
</tr>
<tr>
<td>性别</td>
<td><label>
<?php
if($row[2]==0)
{
?>
<input name="sex" type="radio" value="0" checked="checked" /> 男
<input name="sex" type="radio" value="1" /> 女
<?php
}
else
{
?>
<input name="sex" type="radio" value="0" />
男
<input name="sex" type="radio" value="1" checked="checked" />
女
<?php
}
?>
</label></td>
</tr>
<tr>
<td>生日</td>
<td><label>
<input name="birthday" type="text" id="birthday" onfocus="HS_setDate(this)" value=<?php echo $row[3];?> />
</label></td>
</tr>
<tr>
<td>QQ</td>
<td><label>
<input name="qq" type="text" id="qq" value=<?php echo $row[4];?> >
</label></td>
</tr>
<tr>
<td>手机</td>
<td><label>
<input name="mobile" type="text" id="mobile" value=<?php echo
$row[5];?> >
</label></td>
</tr>
<tr>
<td>邮箱</td>
<td><label>
<input name="email" type="text" id="email" value=<?php echo $row[6];?> >
</label></td>
</tr>
<tr>
<td>地址</td>
<td><label>
<input name="address" type="text" id="address" size="40" value=<?php echo $row[7];?> >
</label></td>
</tr>
<tr>
<td colspan="2"><label>
<div align="right">
<input type="submit" name="submit4" value="确认修改" />
</div> </label></td>
</tr>
</table>
这就跟前面input.php的作用相同,根据上一页点击的数据获取所要编辑数据的ID,然后通过ID去数据库查询,查询后将信息绑定到表单,点击确认订单后,跳转到相应的出来界面
所以需要新建一个类似于post.php的文件,命名为Mod.php,代码如下:
<!-- 修改联系人信息-->
<meta charset="utf-8">
<?php
//通过post获取上一页表单信息内容
$name = $_POST['name'];
$sex = $_POST['sex'];
$birthday = $_POST['birthday'];
$qq = $_POST['qq'];
$mobile = $_POST['mobile'];
$email = $_POST['email'];
$address = $_POST['address'];
$id=$_POST['id'];
//通过ID修改数据库相应内容
$sql = "update mydb.addrlist
set name='$name',sex='$sex',
birthday='$birthday',qq='$qq',
mobile='$mobile',email='$email',
address='$address' where id='$id'; ";
require('conn.php'); //将$sql交由conn.php处理
//提示操作成功信息,注意:$result存在于conn.php文件中,被调用出来
if($result)
{
//执行sql后若返回结果证明修改成功
?>
<script type="text/javascript">
alert("修改成功!");
window.location.href="Index.php";
</script>
<?php
}
else{
//若无结果返回则修改失败退回到相关页面
?>
<script type="text/javascript">
alert("修改失败!");
window.location.href="Index.php";
</script>
<?php
}
?>
五、删除联系人
删除联系人相比而言就比较简单了,只要通过get方法获取用户点击数据的ID,调用Conn.php执行删除该条数据的sql语句就可以了。
<!-- 删除联系人信息php -->
<meta charset="utf-8">
<?php
$id = $_GET['id']; //从上一页获取ID作为操作参数
$sql = "DELETE FROM `AddrList` WHERE Id=$id"; //通过ID查询
require('conn.php'); //调用conn执行sql语句
if($result) //判断返回结果
{
?>
<script type="text/javascript">
alert("删除成功!");
window.location.href="Index.php";
</script>
<?php
}
?>
时间原因,代码规范性和格式化都有问题,包括一些逻辑的控制、正则表达式什么的,可能以后有时间会完善,也可能就。
六、用户登录
完成通讯录的基本操作之后,我新建了一个用户表,做了一个用户的登陆控制建表代码如下:
创建通讯录用户表
create table users(
uname varchar(50) not null,
pwd varchar(20) not null
);
加入记录
insert into users values ('asd','123456');
创建用户详情表
create table users(
uname varchar(50),
mobile varchar(20),
birthday date,
qq varchar(20),
email varchar(50),
addr varchar(200),
other varchar(200)
);
加入记录
insert into users values
('asd','12345678978','19950512','1161311313','***************','沈阳','普通用户');
建完用户表后,在添加和修改界面的首页的div里加入一句话,具体详情如
下:(添加语句之后的样式)
<div align="right">
<a href="detail.php" mce_href="detail.php">
<?php session_start();
$s=$_SESSION['user'];
</a><!-- 显示当前登录人 -->
<br/>
[<a href="index.php" mce_href="index.php">首页</a>]
</div>
新建文件Login.php
<!-- 登录 html -->
<!-- 博主邮箱*****************有问题可以联系我,欢迎任何意见和建议-->
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>通讯录系统1.0</title>
</head>
<body>
<div align="right">
<p>当前版本:V1.0</p>
[<a href="register.php" mce_href="register.php">注册账号</a>] </div>
<h2 align="center">欢迎进入通讯录系统</h2>
<h3 align="center">请登录您的账号:</h3>
<form id="form3" name="form3" method="post"
action="enter.php">
<table width="400" border="1" align="center"
bordercolor="#DDDDDD">
<tr>
<td width="100">用户名:</td>
<td width="300"><label>
<input name="name" type="text" id="name"size="35" />
</label></td>
</tr>
<tr>
<td width="100">密码:</td>
<td width="300"><label>
<input name="pwd" type="password" id="pwd" size="35" /> </label></td>
</tr>
<tr>
<td colspan="2"><label>
<div align="right">
<input type="submit" name="Submit5" value="确认登录" /> </div> </label></td>
</tr>
</form>
</body>
</html>
也是相当于input里的代码,通过action跳转到enter.php
新建enter.php,代码如下:
<!-- 登录 PHP -->
<meta charset="utf-8">
<?php
$uname = $_POST['name'];
$pwd = $_POST['pwd'];
session_start();//调用session变量
$sql = "select * from ers where uname='{$uname}' and
pwd='{$pwd}'";
require('conn.php'); //调用conn执行sql
$row = MySQL_fetch_row($result);//返回结果
if($row){
//如果存在用户所输入的账号和密码,将row【0】存到session里,
方便调用(右上角显示登录人)
$_SESSION['user']=$row[0];
>
<script type="text/javascript">
alert("登陆成功!");
window.location.href="Index.php";//登陆成功后跳转到首页
</script>
<?php
}
else{
//若不存在与之匹配的账户,显示账号密码错误,并刷新到登录页面 >
<script type="text/javascript">
alert("账号或密码错误!");
window.location.href="login.php";
</script>
<?php
}
>
七、用户注册
同样的,有用户登录就一定会有用户注册
新建文件register.php,代码如下:
<!-- 注册账户html -->
<!-- 博主邮箱*****************有问题可以联系我,欢迎任何意见和建议-->
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>用户注册</title>
</head>
<body>
<div align="right">
<p>当前版本:V1.0</p>
[<a href="login.php" mce_href="login.php">回到首页</a>]
</div>
<h2 align="center">用户注册</h2>
<form id="form4" name="form4" method="post" action="reg.php">
<table width="400" border="1" align="center" bordercolor="#DDDDDD">
<tr>
<td width="100">用户名:</td>
<td width="300"><label>
<input name="uname" type="text" id="uname" size="35" />
</label></td>
</tr>
<tr>
<td width="100">密码:</td>
<td width="300"><label>
<input name="pwd" type="password" id="pwd" size="35" />
</label></td>
</tr>
<tr>
<td colspan="2"><label>
<div align="right">
<input type="submit" name="Submit6" value="提交" />
</div> </label></td>
</tr>
</form>
</body>
</html>
新建文件Reg.php
<!-- 注册账户PHP -->
<?php
$uname = $_POST['uname'];
$pwd=$_POST['pwd'];
$sql="select * from users where uname='$uname' and pwd='$pwd'";
require('conn.php');
$row = MySQL_fetch_row($result);
if (($row[0]!=$uname)&&($row[1]!=$pwd)) { //此处并没有仔细研究,慎写
//若查询结果与所添加项不相同,则执行添加操作
$sql = "INSERT INTO `mydb`.`users` (`uname` , `pwd`) VALUES ('$uname','$pwd');";
require('conn.php');
if($result)
{
//在users表中添加数据后,需同步向detail(用户详情表)添加uname的记录(方便后续对用户详细信息的修改等操作)
$sql="insert into `mydb`.`detail` (`uname`) VALUES ('$uname');";
require('conn.php');
?>
<script type="text/javascript">
alert("添加成功!");
window.location.href="login.php";
</script>
<?php
}
else{
?>
<script type="text/javascript">
alert("添加失败!");
window.location.href="register.php";
</script>
<?php
}
}
else {
>
<script type="text/javascript">
alert("该用户已存在!请重新注册或进行密码修改");
window.location.href="register.php";
</script>
<?php
}
?>
其实以上操作跟添加联系人是一样的,就是在register页面输入信息,然后通过reg.php对数据库执行操作
注册页面写完之后,在Index页面将div修改成如下,然后新建一个文件叫detail.php,用于查询当前登录人的信息
<div align="right">
<a href="detail.php" mce_href="detail.php">
<?php session_start();
$s=$_SESSION['user'];
> </a>
<br/>
[<a href="input.php" mce_href="input.php">添加</a>]
</div>
detail.php代码如下:
<!-- 当前用户详细信息-->
<!DOCTYPE html>
<html>
<head>
<title>当前用户详细信息</title>
</head>
<body>
<meta charset="utf-8">
<div align="right"> [<a href="index.php" mce_href="index.php">回到首页</a>] <br/>[<a href="login.php" mce_href="login.php">切换账号</a>] </div>
<?php
session_start();//调用session
$uname=$_SESSION['user'];//去除session里的user数据
$sql = "select * from detail WHERE uname='$uname' ";
require('conn.php'); //调用conn执行sql语句
$row = MySQL_fetch_row($result);//将获取的结果以row的形式赋给$row
// 根据从数据库查询结果将数据绑定到表单显示出来
?>
<h2 align="center">当前登录账户信息</h2>
<form>
<table width="381" border="1" align="center" bordercolor="#DDDDDD"> <tr>
<td width="64" >姓名</td>
<td width="307"><label>
<input name="uname" type="text" id="uname" size="30"
disabled="disabled" value=<?php echo $_SESSION['user']; ?> >
</label></td>
</tr>
<tr>
<td width="64" >电话</td>
<td width="307"><label>
<input name="mobile" type="text" id="mobile" size="30"
disabled="disabled" value=<?php echo $row[1];?> >
</label></td>
<tr>
<tr>
<td width="64" >生日</td>
<td width="307"><label>
<input name="birthday" type="text" id="birthday" size="30"
disabled="disabled" value=<?php echo $row[2];?> >
</label></td>
<tr>
<td width="64" >QQ</td>
<td width="307"><label>
<input name="qq" type="text" id="qq" size="30" disabled="disabled" value=<?php echo $row[3];?>>
</label></td>
</tr>
<tr>
<td width="64" >Email</td>
<td width="307"><label>
<input name="email" type="text" id="email" size="30" disabled="disabled" value=<?php echo $row[4];?> >
</label></td>
</tr>
<tr>
<td width="64" >地址</td>
<td width="307"><label>
<input name="addr" type="text" id="addr" size="30"disabled="disabled" value=<?php echo $row[5];?> >
</label></td>
</tr>
<tr>
<td width="64" >备注</td>
<td width="307"><label>
<input name="other" type="text" id="other" size="30"disabled="disabled" value=<?php echo $row[6];?> >
</label></td>
</tr>
<tr>
<td align="right" colspan="2"><a href="Modde.php?id=<?php echo
$row[0];?>" >编辑用户信息</a>
</td>
</tr>
</table>
</form>
</body>
</html>
点击编辑用户信息,跳转到Modde.php页(名字起得有点多了)
新建Modde.php
<!-- 修改用户详细信息html -->
<!DOCTYPE html>
<html>
<head>
<title>用户信息编辑</title>
</head>
<body>
<meta charset="utf-8">
<div align="right"> [<a href="index.php" mce_href="index.php">回到首页</a>]
<br/>
[<a href="login.php" mce_href="login.php">切换账号</a>]
</div>
<?php
session_start();
$uname=$_SESSION['user'];//调用session 取出存在里面的user
$sql = "select * from detail WHERE uname='$uname' ";
。