1、首先先写表单页面login.html.


<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">

    <title>用户登陆</title>
</head>
<!-- 定义输入表单样式 -->
    <style type="text/css">
    html{font-size: 12px;}
    fieldset{width:200px;margin:0 auto;}
    legend{font-weight: bold; font-size: 14px;}
    label{float:left; width:70px; margin-left:10px;}
    .left{margin-left:80px;}
    .input{width:150px;}
    span{color: #666666;}
    </style>
<!-- 验证表单是否输入 -->
    <script type="text/javascript">
        function InputCheck(LoginForm){
            if(LoginForm.username.value==''){
                alert('请输入用户名!');
                LoginForm.username.focus();
                return (false);
            }
            if(LoginForm.password.value==''){
                alert('请输入密码!');
                LoginForm.password.focus();
                return (false);
            }
        }
    </script>
<body>
    <div>
        <fieldset>
            <legend>用户登陆</legend>
            <form name="LoginForm" method="post" action="login.php" onSubmit="return InputCheck(this)">
                <p>
                    <lable for="username" class="lable">用户名:</lable>
                    <input id="username" name="username" type="text" class="input" />
                </p>
                <p>
                    <lable for="password" class="lable">密 码:</lable>
                    <input id="password" name="password" type="text" class="input" />
                </p>
                <p>
                    <input name="submit" value="提交" type="submit" /> 
                    <a href="reg.html">点此注册</a>
                </p>
            </form>
        </fieldset>
    </div>

</body>
</html>

2、然后写登陆源码。

<?php
    session_start();

    //注销登录
    function logout(){
        if($_GET['action']='logout'){
            unset($_SESSION['user_id']);
            unset($_SESSION['username']);
            echo '注销登陆成功!点击此处<a href="javascript:history.back(-1);">登陆</a>';
            exit;
        }
    }

    //登陆
    if(!isset($_POST['submit'])){
        exit('非法访问!');
    }

    $username = htmlspecialchars($_POST['username']);
    $password = md5($_POST['password']);

    //引入数据库文件
    include('mysql.php');
    //检测用户名密码是否正确
    $where = 'username="'.$username.'"';
    if($rs=mysql_fetch_assoc(select('user',$where))){
        //登陆成功
            $_SESSION['name'] = $username;
            $_SESSION['userid'] = $rs['user_id'];
            echo $username,' 欢迎你!进入 <a href="my.php">用户中心</a><br />';
            echo '点击此处 <a href="login.php?action=logout">注销</a> 登录!<br />';
            exit;
            }else {
            exit('登录失败!点击此处 <a href="javascript:history.back(-1);">返回</a> 重试');
        }

3、注册页面表单

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>用户登陆</title>
</head>
<!-- 定义输入表单样式 -->
    <style type="text/css">
    html{font-size: 12px;}
    fieldset{width:200px;margin:0 auto;}
    legend{font-weight: bold; font-size: 14px;}
    label{float:left; width:70px; margin-left:10px;}
    .left{margin-left:80px;}
    .input{width:150px;}
    span{color: #666666;}
    </style>
<!-- 验证表单是否输入 -->
    <script type="text/javascript">
        function InputCheck(LoginForm){
            if(LoginForm.username.value==''){
                alert('请输入用户名!');
                LoginForm.username.focus();
                return (false);
            }
            if(LoginForm.password.value==''){
                alert('请输入密码!');
                LoginForm.password.focus();
                return (false);
            }
            if(LoginForm.email.value==''){
                alert('请输入邮箱');
                LoginForm.email.focus();
                return (false);
            }
        }
    </script>
<body>
    <div>
        <fieldset>
            <legend>用户登陆</legend>
            <form name="LoginForm" method="post" action="reg.php" onSubmit="return InputCheck(this)">
                <p>
                    <lable for="username" class="lable">用户名:</lable>
                    <input id="username" name="username" type="text" class="input" />
                </p>
                <p>
                    <lable for="password" class="lable">密 码:</lable>
                    <input id="password" name="password" type="text" class="input" />
                </p>
                <p>
                    <lable for="password" class="lable">邮 箱:</lable>
                    <input id="email" name="email" type="text" class="input" />
                </p>
                <p>
                    <input name="submit" value="注册" type="submit" /> 
                </p>
            </form>
        </fieldset>
    </div>

</body>
</html>


4、接收注册表单。


<?php

    if(!isset($_POST['submit'])){
        exit('非法操作!');
    }

    $username = strtolower($_POST['username']);
    $password = strtolower($_POST['password']);
    $email =  strtolower($_POST['email']);
    //注册信息判断
    // if(!preg_match('/^[\w\x80-\xff]{3-15}$/',$username)){
    //     exit('错误:用户名不符合规定。<a href="javascript:history.back(-1);">返回</a>');
    // }
    if(strlen($password)<6){
        exit('错误:密码长度太短。<a href="javascript:history.back(-1);">返回</a>');
    }
    // if(!preg_match('/^w+([-+.]w+)*@w+([-.]w+)*.w+([-.]w+)*$/',$email)){
    //   exit('错误:电子邮件格式有误。<a href="javascript:history.back(-1);">返回</a>');
    // }

//引入数据库操作文件
    include('mysql.php');
//检测用户名是否存在
    $where = 'username="'.$username.'"';
    if(mysql_fetch_assoc(select('user',$where))){
        echo '错误:用户名',$usename,'已存在.<a href="javascript:history.back(-1);">返回</a>';
        exit();
    }

//插入数据
    $password = md5($password);
    $data['username'] = $username;
    $data['password'] = $password;
    $data['email'] = $_POST['email'];
   $re = insert('user',$data);
   if($re){
        exit('用户注册成功!点此登录<a href=" login.html">登陆</a>');
   }else{
        echo ' 添加数据失败:',mysql_error(),'<br>';
        echo '点击此处<a href="javascript:history.back(-1);">返回</a>重试';
   }

5、验证页面是否已经登录
<?php
session_start();

//检测是否登录,若没登录则转向登录界面
if(!isset($_SESSION['userid'])){
header("Location:login.html");
exit();
}

//包含数据库连接文件
include('conn.php');
$userid = $_SESSION['userid'];
$username = $_SESSION['username'];
$user_query = mysql_query("select * from user where uid=$userid limit 1");
$row = mysql_fetch_array($user_query);
echo '用户信息:<br />';
echo '用户ID:',$userid,'<br />';
echo '用户名:',$username,'<br />';
echo '邮箱:',$row['email'],'<br />';
echo '注册日期:',date("Y-m-d", $row['regdate']),'<br />';
echo '<a href="login.php?action=logout">注销</a> 登录<br />';

6、操作数据库函数。
<?php

$db_host   = "localhost:3306";
// database name
$db_name   = "test";
// database username
$db_user   = "root";
// database password
$db_pass   = "";

$con = mysql_connect($db_host,$db_user,$db_pass);
if (!$con)
{
die('Could not connect: ' . mysql_error());
}
mysql_select_db($db_name, $con);
// some code
#mysql_close($con);
function select($table,$where='',$order='',$limits='',$field=''){

$field=($field==null)?'*':$field;
$sele.="from ".$table;
$where=($where==null)?'':' where '.$where;
$order=($order==null)?'':' order by '.$order;
$limits=($limits==null)?'':' limit '.$limits;
$sele="select ".$field." from ".$table.$where.$order.$limits;
//var_dump($sele);
return mysql_query($sele);
mysql_close($con);
}
//插入,二个参数都是必须,后为数组
function insert($table,$columns)
{
foreach($columns as $key=>$values)
{
$addkey.='`'.$key.'`,';
if(is_numeric($values))
{
$addvalues.=$values.',';
}
else
{
$values=mysql_real_escape_string($values);
$addvalues.='\''.$values.'\',';
}
}
$addkey=rtrim($addkey,',');
$addvalues=rtrim($addvalues,',');
$inse.='INSERT INTO '.$table.'('.$addkey.') VALUES ('.$addvalues.');';
return mysql_query($inse);
}
//更新,三个参数都是必须的
function update($table,$data,$where)
{
foreach($data as $k=>$v)
{
if(is_numeric($v))
{
$edit_data.='`'.$k.'`'.'='.$v.',';
}
else
{
$edit_data.='`'.$k.'`'.'='."'".mysql_real_escape_string($v)."',";
}
}
$edit_data=rtrim($edit_data,',');
$upda="UPDATE  ".$table." SET ".$edit_data." WHERE ".$where;
return mysql_query($upda);
}
//删除
function delete($table,$where)
{ $dele="DELETE FROM ".$table." WHERE ".$where;
return mysql_query($dele);
}

?>

完整注册登陆php源码,附带session验证。的更多相关文章

  1. TOMCAT8源码分析——SESSION管理分析(上)

    前言 对于广大java开发者而已,对于J2EE规范中的Session应该并不陌生,我们可以使用Session管理用户的会话信息,最常见的就是拿Session用来存放用户登录.身份.权限及状态等信息.对 ...

  2. Tomcat源码分析——Session管理分析(上)

    前言 对于广大java开发者而已,对于J2EE规范中的Session应该并不陌生,我们可以使用Session管理用户的会话信息,最常见的就是拿Session用来存放用户登录.身份.权限及状态等信息.对 ...

  3. 2017最新修复福运来完整运营中时时彩源码PC+手机版本功能齐全

    QQ:1395239152 2017-3.14最新修复福运来完整运营版时时彩源码PC+手机版本功能齐全 使用php+mysql开发,并带有完整数据库.截图!!!  注意哈  带手机版  以下截图均为测 ...

  4. Tomcat源码分析——Session管理分析(下)

    前言 在<TOMCAT源码分析——SESSION管理分析(上)>一文中我介绍了Session.Session管理器,还以StandardManager为例介绍了Session管理器的初始化 ...

  5. 菜鸟系列Fabric源码学习 — MVCC验证

    Fabric 1.4 源码分析 MVCC验证 读本节文档之前建议先查看[Fabric 1.4 源码分析 committer记账节点]章节. 1. MVCC简介 Multi-Version Concur ...

  6. 超详细的php用户注册页面填写信息完整实例(附源码)

    这篇文章主要介绍了一个超详细的php用户注册页面填写信息完整实例,内容包括邮箱自动匹配.密码强度验证以及防止表单重复等,小编特别喜欢这篇文章,推荐给大家. 注册页面是大多数网站必备的页面,所以很有必要 ...

  7. Python的Django框架完成一个完整的论坛(源码以及思路)

    一个完整的论坛,登录.注册.发表.头像.点赞.评论.分页.阅读排行等 使用Django2,Python3.5 开发工具:Pycharm5 需要的知识:Python基础知识,Django原理的理解以及使 ...

  8. 从Spring-Session源码看Session机制的实现细节

    Re:从零开始的Spring Session(一) Re:从零开始的Spring Session(二) Re:从零开始的Spring Session(三) 去年我曾经写过几篇和 Spring Sess ...

  9. [session篇]看源码学习session(一)

    假如你是使用过或学习过PHP,你一定觉得很简单.session只不过是$_SESSION就可以搞得,这还不简单只是对一个key-value就能工作了.我觉得可以大多数的phper都是这样的,这是语言本 ...

随机推荐

  1. zerone 01串博弈问题

    近日领到了老师的期末作业 其中有这道 01 串博弈问题: 刚开始读题我也是云里雾里 但是精读数遍 “细品” 之后,我发现这是一个 “动态规划” 问题.好嘞,硬着头皮上吧. 分析问题:可知对每个人有两手 ...

  2. 吴裕雄 Bootstrap 前端框架开发——Bootstrap 字体图标(Glyphicons):glyphicon glyphicon-barcode

    <!DOCTYPE html> <html> <head> <meta charset="utf-8"> <meta name ...

  3. 使用BP拦截POST型请求包 (9.20 第九天)

    使用BP拦截POST型请求包 1.安装phpstudy并下载wordpress 文件,安装在phpstudy的www目录下 phpstudy下载地址:https://www.xp.cn/downloa ...

  4. Spring Boot2(001):入门介绍和一些官网链接参考

    Spring官方文档比较齐全,学习的过程中可以多参考官方文档,最权威的版本.01.Spring Boot的一些官方链接 01.01 Spring Boot官网 https://spring.io/pr ...

  5. content编码

    1.content有5种属性 a.content:“”                     //为空 b.content:attr(TItle)     //可以获取当前选中标签的属性值 eg: ...

  6. 安装Linux系统Centos6版本

    1.下载VMware软件 2.下载Centos6文件 http://archive.kernel.org/centos-vault/6.8/isos/x86_64/CentOS-6.8-x86_64- ...

  7. java类加载及new对象的过程

    /* SubClass sub = new SubClass(); 这句话到底做了什么事情呢? 1.javac编译.java源文件形成.class字节码文件; 2.new SubClass()对象时, ...

  8. DispatcherServlet(2)_HandlerMapping

    HandlerMapping_xmind SpringMVC默认提供的HandlerMapping BeanNameUrlHandlerMapping SimpleUrlHandlerMapping ...

  9. Day 4:集合——迭代器与List接口

    Collection-迭代方法 1.toArray()  返回Object类型数据,接收也需要Object对象! Object[] toArray(); Collection c = new Arra ...

  10. P1426 小鱼会有危险吗

    题解: 在测试数据里有一个是临界值问题,探测范围是闭区间 #include<stdio.h>int main(){ double s,x;                   //注意:此 ...