赞
踩
- -- phpMyAdmin SQL Dump
- -- version 4.7.9
- -- https://www.phpmyadmin.net/
- --
- -- Host: 127.0.0.1:3306
- -- Generation Time: 2018-12-22 08:08:49
- -- 服务器版本: 5.7.21
- -- PHP Version: 5.6.35
-
- SET SQL_MODE = "NO_AUTO_VALUE_ON_ZERO";
- SET AUTOCOMMIT = 0;
- START TRANSACTION;
- SET time_zone = "+00:00";
-
-
- /*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */;
- /*!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */;
- /*!40101 SET @OLD_COLLATION_CONNECTION=@@COLLATION_CONNECTION */;
- /*!40101 SET NAMES utf8mb4 */;
-
- --
- -- Database: `users`
- --
-
- -- --------------------------------------------------------
-
- --
- -- 表的结构 `account`
- --
-
- DROP TABLE IF EXISTS `account`;
- CREATE TABLE IF NOT EXISTS `account` (
- `userName` text NOT NULL,
- `password` text NOT NULL,
- `email` text NOT NULL
- ) ENGINE=MyISAM DEFAULT CHARSET=utf8;
-
- --
- -- 转存表中的数据 `account`
- --
-
- INSERT INTO `account` (`userName`, `password`, `email`) VALUES
- ('123', '123456', '123@qq.com'),
- ('111', '111111', '11@qq.com');
- COMMIT;
-
- /*!40101 SET CHARACTER_SET_CLIENT=@OLD_CHARACTER_SET_CLIENT */;
- /*!40101 SET CHARACTER_SET_RESULTS=@OLD_CHARACTER_SET_RESULTS */;
- /*!40101 SET COLLATION_CONNECTION=@OLD_COLLATION_CONNECTION */;

- <!doctype html>
- <html>
- <head>
- <meta charset="utf-8">
- <title>注册前台页面</title>
- </head>
-
- <body>
- <form method="post" action="clregister.php">
- 用户名:<input type="text" name="userName"><br/>
- 注册密码:<input type="password" name="password"><br/>
- 注册邮箱:<input type="text" name="email"><br/>
- <input type="submit" value="注册">
- </form>
- </body>
- </html>

注册处理页面后台clregister.php
- <!doctype html>
- <html>
- <head>
- <meta charset="utf-8">
- <title>处理前台注册页面</title>
- </head>
-
- <body>
- <?php //(mysqli-面向过程)
- //建立数据库说明:数据库名:users,表名:account,字段名(列)userName 类型text长度20,password类型text长度20,email类型text
-
- //第一种连接方法
- //$dbServername="localhost";
- //$dbUserName="root";
- //$dbPassword="123";//如果密码没有的话:$dbPassword="";
- //$dbName="users";
- //连接数据库 mysql是数据库,i代表improvement,相当于mysql的增强版
- //$conn=mysqli_connect($dbServername,$dbUserName,$dbPassword,$dbName);
-
-
- //一般使用如下连接:
-
- //创建连接
- //mysql是数据库,i代表improvement,相当于mysql的增强版
- $conn=mysqli_connect('localhost','root','123','users');
-
- //检测连接
- if(!$conn)
- {
- //die输出错误,connect failed是自定义的错误信息,.mysqli_connect_error()是系统自身的错误信息,可以不写只用自己的
- die("connect failed".mysqli_connect_error());
- }
- else
- {
- echo "连接成功(connect success)!"; //连接成功就提示connect success
- }
-
- //插入数据
- //定义一个 $sql 变量,用来存放写的sql语句
- //插入到account数据表,account()里面是字段名,也可以不写,values不要忘了加s
- //$sql="insert into account(userName,password,email) values('xiaoming','123456','123@qq.com')";//注意:外面用了双引号里面就要用单引号,为了好看在values前可以加个换行
-
- //也可以用变量$userName
- //$userName="xiaohua";
- //用变量 values()里面也要用单引号'$userName'
- //$sql="insert into account(userName,password,email) values('$userName','123456','123@qq.com')";
-
- //接收网页提交过来的form表单
- //$_POST是超全局变量,['']里面的值是form表单内控件的name的命名
- //$_POST['userName']
- $userName=$_POST['userName'];//前面的$userName的名字可以和后面的$_POST['userName']的名字不一样,她不是同一个东西,起一样的名字可以一目了然,一看就知道传给哪一个
- $password=$_POST['password'];
- $email=$_POST['email'];
- if(empty($userName) || empty($password) || empty($email) ){
- echo "<script>alert ('用户名或密码或邮箱不能为空');window.location.href='register.php'</script>";
- }
- else{
- //定义一个 $sql 变量,用来存放写的sql语句
- $sql="insert into account(userName,password,email)
- values('$userName','$password','$email')";
-
- //使用query()函数把$sql传到数据库里,query请求的意思
- //query的第一个参数是已经建立的连接($conn),用来区分连接的哪个数据库,连接里面已经指定了users,就会在users这个数据库里面找account数据表,增加这样一条记录
- //query的第二个参数是sql语句,也可以直接把 insert into account(userName,password,email) values('xiaoming','123456','123@qq.com') 加到里面,不过不好修改
- //如果插入成功
- if(mysqli_query($conn,$sql))
- {
- echo "insert success";
- }
- else
- {
- echo "insert failed";
- }
-
- }
- ?>
- </body>
- </html>

- <!doctype html>
- <html>
- <head>
- <meta charset="utf-8">
- <title>注册前台和提交给自己处理后台</title>
- </head>
-
- <body>
- <?php //(mysqli-面向过程)
-
- //PHP里面是不用声明的,但是不初始化后面可能会出现未定义的变量
- //6.
- //初始化一个变量
- $isInfoCanUse=false;//是信息可用=否
- //8.
- 初始化变量
- $userName=$password=$email="";
- $userNameErr=$passwordErr=$emailErr="*必填项目*";
- //9.
- //处理信息函数
- function dealInfo($data)
- {
- //trim()函数用来去掉字符串里的空格
- $data=trim($data);
- //把返回值在赋给$data
- $data=htmlspecialchars($data);
- //slashes斜杠的意思(\)
- $data=stripslashes($data);
- return $data;
- }
- //7.
- //检测提交信息是否为空
- if($_SERVER['REQUEST_METHOD']=="POST")
- {
- $isInfoCanUse=true;
- //empty()这个函数用来检验变量是否为空
- if(empty($_POST['userName']))//判断信息是否完整
- {
- $isInfoCanUse=false;
- $userNameErr="*用户名不能为空*";
- }
- else
- {
- //PHP里面使用preg_match()函数来使用正则表达式,第一个参数是正则表达式的字符串,第二个参数是要匹配的变量
- if(!preg_match("/^[\w]*$/",$_POST['userName']))
- {
- $userNameErr="*只允许字母和数字*";
- $isInfoCanUse=false;
- }
- else
- {
- //$userName=$_POST['userName'];
- //9.
- $userName=dealInfo($_POST['userName']);
- }
-
- }
- if(empty($_POST['password']))
- {
- $isInfoCanUse=false;
- $passwordErr="*密码不能为空*";
- }
- else
- {
- if(!preg_match("/(\w{6,14})/",$_POST['password']))
- {
- $passwordErr="*密码长度6~14*";
- //必须要有下面的这句话,阻止提交
- $isInfoCanUse=false;
- }
- else
- {
- //$password=$_POST['password'];
- //9.
- $password=dealInfo($_POST['password']);
- }
-
- }
- if(empty($_POST['email']))
- {
- $isInfoCanUse=false;
- $emailErr="*邮箱不能为空*";
- }
- else
- {
- if(!preg_match("/([\w\-]+\@[\w\-]+\.[\w\-]+)/",$_POST['email']))
- {
- $emailErr="*非法邮箱格式*";
- $isInfoCanUse=false;
- }
- else
- {
-
- //$email=$_POST['email'];
- //9.
- $email=dealInfo($_POST['email']);
- }
-
- }
- }
-
-
-
- //$_SERVER超全局变量,SERVER服务的意思
- //REQUEST_METHOD请求方式
- //如果以POST方式提交才执行
- //5.
- if($_SERVER['REQUEST_METHOD']=="POST" && $isInfoCanUse==true)
- {
- //1.
- //创建连接
- $conn=mysqli_connect('localhost','root','123','users');
- //2.
- if(!$conn)
- {
- die("connect failed".mysqli_connect_error());
- }
- else//连接成功
- {
- echo "connect success!";
- }
-
- //10.
- //检测用户名是否存在
- //查找userName字段从account表里,条件是userName='$userName',前面的userName是数据库里面的字段名,后面的$userName'是填入的注册数据
- $sql="select userName from account where userName='$userName'";//注意:查找到和查找不到都是执行成功了
- //$result变量接受结果,来判断数据库里面是否有
- $result=mysqli_query($conn,$sql);//无论查找成功与否,都是执行成功,返回的是结果集
- //mysqli_fetch_还有别的,这里只是 转换成关联数组
- $test=mysqli_fetch_assoc($result);//返回false代表查找失败
- if($test !=false)
- {
- $userNameErr="用户名已存在";
- }
- else
- {
- $sql="insert into account(userName,password,email)
- values('$userName','$password','$email')";
-
- //4.
- //如果插入成功
- if(mysqli_query($conn,$sql))
- {
- echo "insert success";
- }
- else
- {
- echo "insert failed";
- }
- }
-
-
- //3.
- //获取网页信息
- //$userName=$_POST['userName'];//前面的$userName的名字可以和后面的$_POST['userName']的名字不一样,她不是同一个东西,起一样的名字可以一目了然,一看就知道传给哪一个
- //$password=$_POST['password'];
- //$email=$_POST['email'];
- //定义一个 $sql 变量,用来存放写的sql语句
- //$sql="insert into account(userName,password,email)
- //values('$userName','$password','$email')";
-
- //4.
- //如果插入成功
- //if(mysqli_query($conn,$sql))
- //{
- // echo "insert success";
- //}
- //else
- //{
- // echo "insert failed";
- //}
- }
- ?>
- <!-- htmlspecialchars 用来防止黑客利用表单攻击服务器-->
- <form method="post" action="<?php echo htmlspecialchars($_SERVER['PHP_SELF']);?>"><!--1.提交给自己registerAndTest.php 2.<\?php echo $_SERVER['PHP_SELF'];?> 不知道自己的文件名是什么用['PHP_SELF']-->
- 用户名:<input type="text" name="userName">
- <?php echo $userNameErr;?><br/>
- 注册密码:<input type="password" name="password">
- <?php echo $passwordErr;?><br/>
- 注册邮箱:<input type="text" name="email">
- <?php echo $emailErr;?><br/>
- <input type="submit" value="注册">
- </form>
- </body>
- </html>

- <?php session_start();?>
- <!doctype html>
- <html>
- <head>
- <meta charset="utf-8">
- <title>登录前台交给自己处理后台</title>
- <style>
- .error {color: red;}
- </style>
- </head>
-
- <body>
- <?php
- //处理信息函数
- function dealInfo($data)
- {
- //trim()函数用来去掉字符串里的空格
- $data=trim($data);
- //把返回值在赋给$data
- $data=htmlspecialchars($data);
- //slashes斜杠的意思(\)
- $data=stripslashes($data);
- return $data;
- }
-
- $userName=$password="";//初始化,防止出现未定义就是用的错误
- $userNameErr=$passwordErr="";
- $isInfoCanUse=false;//信息是否能用
-
-
- //提交表单之后,是post提交过来的
- if($_SERVER['REQUEST_METHOD']=="POST")
- {
- //用户名
- $isInfoCanUse=true;
- //用户名是否是空的
- if(empty($_POST["userName"]))
- {
- $userNameErr="用户不能名为空";
- $isInfoCanUse=false;
- }
- else
- {
- $userName=dealInfo($_POST["userName"]);
- }
-
- //密码名是否是空的
- if(empty($_POST["password"]))
- {
- $passwordErr="密码不能名为空";
- $isInfoCanUse=false;
- }
- else
- {
- $password=dealInfo($_POST['password']);
- }
- }
- //连接数据库
- $conn=mysqli_connect('localhost','root','123','users');
-
- if(!$conn)
- {
- die("连接失败:".mysqli_connect_error());
- }
- else
- {
- //echo "连接成功";
- }
-
- //用户名是否存在
- if($isInfoCanUse)//信息是否完整
- {
- $sql="select userName from account where userName='$userName'";
- $result=mysqli_query($conn,$sql);
- $test=mysqli_fetch_assoc($result);
- if($test == false)//关联数组失败
- {
- $userNameErr="用户名不存在";
- }
- else
- {
- //密码是否正确
- $sql="select userName,password from account
- where userName='$userName' and password='$password'";
- $result=mysqli_query($conn,$sql);
- $test=mysqli_fetch_assoc($result);
- if($test == false)//关联数组失败
- {
- $passwordErr="密码不正确";
- }
- else
- {
- //存入session会话
- //把用户名存入session
- $_SESSION['userName']=$userName;
-
-
- //echo "成功登陆";
- //这里写登陆成功要做的事情,例如
-
- //页面跳转
- echo "<script type=\"text/javascript\">";
- echo "window.location.href='homepage.php';";//返回上一个页面
- echo "</script>";
-
- }
- }
- }
-
- ?>
- <form method="post" action="<?php echo htmlspecialchars($_SERVER['PHP_SELF']);?>">
- <p>用户名:
- <input type="text" name="userName">
- <?php echo "<span class=error>*".$userNameErr."</span>";?>
- <br/>
- 密码:<input type="password" name="password">
- <?php echo "<span class=error>*".$passwordErr."</span>";?></p>
- <input type="submit" value="登录">
- </p>
- </form>
- </body>
- </html>

5.主页homepage.php
- <?php session_start();?>
- <!-- 如果使用session要在每个页面的 ht最ml 的前面加上 -->
- <!doctype html>
- <html>
- <head>
- <meta charset="utf-8">
- <title>测试主页</title>
- </head>
-
- <body>
- <?php
- if(isset($_SESSION['userName']))//如果登录成功
- {
- $userName=$_SESSION['userName'];
- echo "欢迎您:".$userName;
- echo '<a href="logout.php"><input type="button" value="注销"/></a>';
- }
- else
- {
- echo '<a href="login.php"><input type="button" value="登陆"></a>';
- echo '<a href="registerAndTest.php"><input type="button" value="注册"></a>';
- }
- ?>
- </body>
- </html>

6.安全退出页面logout.php (利用session)
- <?php session_start();?>
- <!doctype html>
- <html>
- <head>
- <meta charset="utf-8">
- <title>session安全退出</title>
- </head>
-
- <body>
- <?php
- if(isset($_SESSION["userName"]))
- {
- session_unset();
- session_destroy();
- }
- header("location:homepage.php");//跳转回去
- ?>
- </body>
- </html>

Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。