配置文件都是放在public这个文件夹下:
config
<?php
//连接参数
define('DB_HOST','localhost');
define('DB_USER','root');
define('DB_PASS','root');
define('DB_NAME','demo');
define('DB_CHAR','utf8');connect
<?php
require 'config.php';
//1.数据库的连接返回的是一个对象
$db=mysqli_connect(DB_HOST,DB_USER,DB_PASS,DB_NAME);
//echo is_bool($db)?'true':'false';//失败的时候返回的是布尔false
//echo is_object($db)?'true':'false';//判断$db是不是一个对象,结果显示是一个对象
//2.判断是否连接成功
if(mysqli_connect_errno($db)){
echo '连接失败'.mysqli_connect_error($db);
}
//else{
// echo '连接成功';
//}
//3.选择默认数据库
mysqli_select_db($db,DB_NAME);
//4.设置默认客户端的字符集
mysqli_set_charset($db,DB_CHAR);header
<!doctype html> <html lang="en"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, user-scalable=no, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0"> <meta http-equiv="X-UA-Compatible" content="ie=edge"> <link rel="stylesheet" href="../../lib/dist/css/bootstrap.css"> <script src="../../lib/jquery-3.2.1.min.js"></script> <script src="../../lib/dist/js/bootstrap.js"></script> <title><?php echo isset($pageTitle)?$pageTitle:'注册'?></title> </head> <body> <div class="container"> <div class="row"> <div class="col-md-12"> <div class="nav"> <nav class="navbar navbar-inverse"> <div class="container-fluid"> <!-- Brand and toggle get grouped for better mobile display --> <div class="navbar-header"> <button type="button" class="navbar-toggle collapsed" data-toggle="collapse" data-target="#bs-example-navbar-collapse-1" aria-expanded="false"> <span class="sr-only">Toggle navigation</span> <span class="icon-bar"></span> <span class="icon-bar"></span> <span class="icon-bar"></span> </button> <a class="navbar-brand" href="#">我的博客</a> </div> <div class="collapse navbar-collapse" id="bs-example-navbar-collapse-1"> <ul class="nav navbar-nav"> <li class="active"><a href="#">首页 <span class="sr-only">(current)</span></a></li> <li><a href="#">学习心得</a></li> <li><a href="#">编程技巧</a></li> <li><a href="#">源码分享</a></li> <li><a href="#">资料下载</a></li> </ul> </div><!-- /.navbar-collapse --> </div><!-- /.container-fluid --> </nav> </div> </div> </div> <!--头部导航-->
footer
<div class="row"> <div class="col-md-12"> <nav class="navbar navbar-inverse"> <p class="text-center"><a href="">PHP中文网版权所有</a></p> </nav> </div> </div> <!--底部--> </div> </div> </body> </html>
登录login
<?php include 'public/header.php';?> <div class="container"> <div class="row"> <div class="col-md-12"> <h3 class="text-center">用户注册</h3> <form class="form-horizontal" action="register.php" method="post"> <div class="form-group"> <label for="name" class="col-sm-2 control-label">用户名</label> <div class="col-sm-10"> <input type="text" class="form-control" id="name" placeholder="请输入用户名" name="name" value="<?php echo isset($_POST['name'])?$_POST['name']:'' ?>"> </div> </div> <div class="form-group"> <label for="email" class="col-sm-2 control-label">邮箱</label> <div class="col-sm-10"> <input type="text" class="form-control" id="email" placeholder="请输入邮箱" name="email" value="<?php echo isset($_POST['email'])?$_POST['email']:''?>"> </div> </div> <div class="form-group"> <label for="password1" class="col-sm-2 control-label">密码</label> <div class="col-sm-10"> <input type="password" class="form-control" id="password1" placeholder="请输入密码" name="password1" value="<?php echo isset($_POST['password1'])?$_POST['password1']:'' ?>"> </div> </div> <div class="form-group"> <label for="password2" class="col-sm-2 control-label">密码确认</label> <div class="col-sm-10"> <input type="password" class="form-control" id="password2" placeholder="密码确认" name="password2" value="<?php echo isset($_POST['password2'])?$_POST['password2']:'' ?>"> </div> </div> <div class="form-group"> <div class="col-sm-offset-2 col-sm-10 text-center"> <button type="submit" class="btn btn-primary btn-block">注册</button> </div> </div> </form> </div> </div> </div> <?php include 'public/footer.php';?>
注册register
<?php
/*
* 1.检测注册表单提交过来的信息
* 2.将用户数据插入到表中
* 3.对错误进行处理
*/
$pageTitle='注册处理';//设置当前的页面标题
include 'public/header.php';//导入公共头部
//对用户的注册请求进行处理
if($_SERVER['REQUEST_METHOD']=='POST'){
$error=[];//创建一个错误数组
//检查用户名
if(empty($_POST['name'])){
$error[]='用户名不能为空';
}else{
$name=trim($_POST['name']);
}
//检查用邮箱
if(empty($_POST['email'])){
$error[]='邮箱不能为空';
}else{
$email=trim($_POST['email']);
}
//检测密码:因为密码需要输入二遍,所以要做相等校验
if(empty($_POST['password1'])){//第一行密码如果为空
$error[]='没有输入密码,请检查';
}else{ //再检查第二行的校验密码
if(empty($_POST['password2'])){
$error[]="没有输入校验密码,请检查";
}else{//两个密码进行比较
if($_POST['password1']==$_POST['password2']){//两者相等,操作正确
$password=trim($_POST['password1']);
}else{//否则就要重新输入
$error[]='二次输入密码不一致,请检查';
}
}
}
//将用户数据添加到数据库
if(empty($error)){//如果错误数组为空,将数据添加到数据库
// 1.连接数据库
require 'public/connect.php';
// 2.写SQL语句
$sql="INSERT user1 SET `name`='{$name}',`email`='{$email}',`password`=sha1('{$password}')";
// 3.执行SQL语句,向数据库插入数据
if(mysqli_query($db,$sql)){
// mysqli_affected_rows($db) 返回前一次MYSQL操作所受影响的记录行数
echo '<h3 style="color: #c1e2b3">成功添加了'.mysqli_affected_rows($db).'条记录,新增主键id是:'.mysqli_insert_id($db).'</h3>';
}else{
echo '<h3 style="color: #888888">添加失败:'.mysqli_error($db).'</h3>';
}
// 关闭连接
mysqli_close($db);
}else{
// 打印错误信息
foreach ($error as $message){
echo '<h3>'.$message.'</h3>>';
}
}
}
include 'public/footer.php';用户信息表列表view
<?php
$pageTetle='用户信息列表';
//连接数据库
require 'public/connect.php';
include 'public/header.php';
//1.第一大步:从数据库里取数据
//查询数据库里的数据分二步:第一步写sql语句 第二步:执行sql语句
$sql="SELECT * FROM user1";//sql语句是字符串
$result=mysqli_query($db,$sql);//执行查询
$rows=[];//创建一个结果集容器
if($result && mysqli_num_rows($result) >0){//结果与返回结果集行的数目有数据时
while ($row=mysqli_fetch_array($result,MYSQLI_ASSOC))//从所有行中取一行保存在row里
$rows[]=$row;//把取出的一行放到结果集容器里
}else{
echo '<h3>数据表没有数据</h3>';
}
?>
<!---->
<!--2.第二步建一个表格把取的数据放到一个表格中-->
<!--用bootStrap来建一个表格-->
<div class="container">
<div class="row">
<div class="col-md-12">
<h3 style="color: red" class="text-center" >用户信息表</h3>
<table class="table text-center" border="1" cellpadding="3" cellspacing="0" >
<tr>
<td>ID</td><td>姓名</td><td>邮箱</td><td>操作</td>
</tr>
<!-- 把数据从rows[]中取出来放到表格里-->
<!-- 1.下面循环输出用户信息,用foreach()的替代语法,请尽快熟悉这种写法,以后写模板就靠这个玩意了-->
<!-- 2. 替代语法的目标就是一个: 干掉php代码中的大括号,因为html与php混写的时候,不断的切换会有很多大括号-->
<!-- 3. 过多的大括号,即不利于代码整洁,也容易出错,不利于代码维护-->
<?php foreach ($rows as $row) :?>
<tr>
<td><?php echo $row['id']?></td>
<td><?php echo $row['name']?></td>
<td><?php echo $row['email']?></td>
<td>
<a class="btn btn-primary" href="edit.php?id=<?php echo $row['id'] ?>" role="button">编辑</a>
<a class="btn btn-danger" href="delete.php?id=<?php echo $row['id'] ?>" role="button">删除</a>
</td>
</tr>
<?php endforeach;?>
</table>
</div>
</div>
</div>
<?php include 'public/footer.php'?>更新处理do_edit
<?php
/**
* 直接复用注册处理程序
* 1.检测编辑表单提交过来的信息
* 2.对用户的提交信息进行检查并更新数据表
* 3.对错误进行处理
*/
$pageTitle='更新处理';//设置当前的页面标题
include 'public/header.php';//导入公共头部
//对用户的注册请求进行处理
if($_SERVER['REQUEST_METHOD']=='POST'){
$error=[];//创建一个错误数组
// 用户名是只读的,所有不需要检查
//检查邮箱
if(empty($_POST['email'])){
$error[]='邮箱不能为空';
}else{
$email=trim($_POST['email']);
}
// 密码不需要检查
//将用户数据添加到数据库
if(empty($error)){//如果错误数组为空,将数据添加到数据库
// 1.连接数据库
require 'public/connect.php';
// 2.写SQL语句
$sql = "UPDATE user1 SET `email`='{$email}' WHERE `id`={$_GET['id']}";
// 3.执行SQL语句,向数据库插入数据
if(mysqli_query($db,$sql)){
// mysqli_affected_rows($db) 返回前一次MYSQL操作所受影响的记录行数
echo '<h3 style="color: #c1e2b3">成功添加了'.mysqli_affected_rows($db).'条记录</h3>';
}else{
echo '<h3 style="color: #888888">添加失败:'.mysqli_error($db).'</h3>';
}
// 关闭连接
mysqli_close($db);
}else{
// 打印错误信息
foreach ($error as $message){
echo '<h3>'.$message.'</h3>>';
}
}
}
include 'public/footer.php';用户信息编辑的表edit
<?php include 'public/header.php';
$id = $_GET['id']; //获取到要编辑的记录的id
require 'public/connect.php'; //连接数据库
//准备查询语句
$sql = "SELECT * FROM `user1` WHERE `id` = ".$id;
$res = mysqli_query($db, $sql); //执行查询
if ($res && mysqli_num_rows($res) > 0) {
//根据主键查询只会返回一条记录,不用循环处理
$row = mysqli_fetch_array($res, MYSQLI_ASSOC);
}
?>
<div class="container">
<div class="row">
<div class="col-md-12">
<h3 class="text-center">用户信息编辑</h3>
<!-- 修改处理的php脚本名称-->
<form class="form-horizontal" action="do_edit.php?id=<?php echo $row['id'] ?>" method="post">
<div class="form-group">
<!-- 用户名和密码是不允许修改的,因为这是登陆的重要信息,仅允许修改邮箱-->
<label for="name" class="col-sm-2 control-label">用户名</label>
<div class="col-sm-10">
<input type="text" class="form-control" id="name" placeholder="userName" name="name" value="<?php echo $row['name'] ?>" readonly>
</div>
</div>
<div class="form-group">
<label for="email" class="col-sm-2 control-label">邮箱</label>
<div class="col-sm-10">
<input type="email" class="form-control" id="email" placeholder="Email" name="email" value="<?php echo $row['email'] ?>">
</div>
</div>
<div class="form-group">
<div class="col-sm-offset-2 col-sm-10 text-center">
<button type="submit" class="btn btn-primary btn-block">保存</button>
</div>
</div>
</form>
</div>
</div>
</div>
<?php include 'public/footer.php' ?>删除
<?php
require 'public/connect.php';
$sql = "DELETE FROM user1 WHERE id=".$_GET['id'];
if (mysqli_query($db, $sql)){
echo '<script>alert("成功删了'.mysqli_affected_rows($db).'条记录")</script>';
} else {
echo '<script>alert("删除失败'.mysqli_error($db).'")</script>';
}
mysqli_close($db);附两张图


Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号