功能齐全的小型php+mysql注册系统V.01制作原理
关于php+mysql注册登陆小系统之前有写过一个简单的,其原理都是差不多,都是将表单信息发送到mysql数据库中进行插入,一共有 6 个文件。
regi.sql是mysql的数据库文件,config.php是数据库配置文件 这两个文件应该是比较常见了,凡是下载下来的php+mysql系统源码都要将.sql数据库导入,以及配置config.php文件,style.css 这个是界面的样式文件,主要是美化界面来用的。
本系统主要的核心文件就是 index.php,admin_index.php,member.php这三个文件了,使用这三个文件时都需要将数据库连接文件包含进来 require_once ('config.php');。
首先看一下 index.php 文件,这个文件包含了会员注册和会员登陆的功能,注册和登陆的执行文件也在这个文件当中,对应界面,注册时用javascrip+正则表达式来验证表单,这些验证文件放在head之间就行了。
[cc lang="javascript"]
[/code]
一,接着便是用户注册的执行文件,将表单提交过来的值插入到数据库,在这里利用正则表达式又进行了一遍数据过滤。
<?php if($_POST["submit"]){ if(emptyempty($_POST['member_user'])) echo "<script>alert('帐号不能为空');location='?tj=register';</script>"; else if(emptyempty($_POST['member_password'])) echo "<script>alert('密码不能为空');location='?tj=register';</script>"; else if($_POST['member_password']!=$_POST['pass']) echo "<script>alert('两次密码不一样');location='?tj=register';</script>"; else if(!emptyempty($_POST['member_qq'])&&!is_numeric($_POST['member_qq'])) echo "<script>alert('qq号必须全为数字');location='?tj=register';</script>"; else if(!emptyempty($_POST['member_phone'])&&!is_numeric($_POST['member_phone'])) echo "<script>alert('手机号码必须全为数字');location='?tj=register';</script>"; else if(!emptyempty($_POST['member_email'])&&!ereg("( [0-9a-zA-Z]+)([@])([0-9a-zA-Z]+)(.)([0-9a-zA-Z]+)",$_ POST['member_email'])) echo "<script>alert('邮箱输入不合法');location='?tj=re gister';</script>"; else{ $_SESSION['member']=$_POST['member_user']; $sql="insert into member values('','".$_POST['member_u ser']."','".md5($_POST ['member_password'])."','".$_POST['member_name']."','" .$_POST['member_sex']."','".$_POST['member_qq']."','" .$_POST['member_phone']."','".$_POST['member_email']."')"; $result=mysql_query($sql)or die(mysql_error()); if($result) echo "<script>alert('恭喜你注册成功,马上进入主页面');location ='member.php';</script>"; else { echo "<script>alert('注册失败');location='index.php';</script>"; mysql_close(); } } } ?>
二,会员登陆的系统小版块也很简单,就是将填写的表单帐号与数据库的来进行匹配,匹配成功则继续执行:
<?php if($_POST["submit2"]){ $name=$_POST['name']; $pw=md5($_POST['password']); $sql="select * from member where member_user='".$name."'"; $result=mysql_query($sql) or die("账号不正确"); $num=mysql_num_rows($result); if($num==0){ echo "<script>alert('帐号不存在');location='index.php';</script>"; } while($rs=mysql_fetch_object($result)) { if($rs->member_password!=$pw) { echo "<script>alert('密码不正确');location='index.php';</script>"; mysql_close(); } else { $_SESSION['member']=$_POST['name']; header("Location:member.php"); mysql_close(); } } } ?>
再看一下 member.php 的文件,这个文件主要就是会员的登陆文件了,当会员登陆成功后,可以查看自己的注册资料和修改自己的注册资料等操作,其原理也很简单,首先通过登陆成功时保存的 $_session['member']的值和数据库的值进行匹配,并通过 sql 的 select 查询并在表单中显示出来,将表单的值进行发送并通过 sql 的 update 语句进行修改,下面重点看一下修改的 php 语句:
<?php //用户修改 if($_GET["tj"]=="modify") { if($_POST["submit"]){ mysql_query($sql="update member set member_name='".$_POS T['member_name']."',member_qq='".$_PO ST['member_qq']."',member_phone='".$_POST['member_phone'] ."',member_email='".$_POST['member_email']."' where member _user='".$_SESSION['member']."'"); echo "<script>alert('修改成功');location='member.php';</script>"; } ?>
会员的总管理页面则是 admin_index.php,管理权限用户是 admin,注意这里判断用户权限的语句是:
//判断用户权限 if($_SESSION['member'] != "admin"){ echo "<script>alert('请进行登陆');location='login.php';</script>"; }
可以看出,直接将数据库中用户名为 admin 的值设成了最高管理员权限,通过这个权限设置,只有当登陆的用户为 admin 并且密码正确时才可以访问这个页面,在这个页面进行查看,修改,删除用户资料,也就是增删改查了,增删改查的原理就是通过sql语句来实现的,可以参考本博的增删改查小程序,都是一个原理。
可以到网上进行搜索夏日注册系统,其对应的版本为 v.01