A-A+

功能齐全的小型php+mysql注册系统V.01制作原理

2012年04月19日 PHP技术文章 暂无评论 阅读 183 views 次

关于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&#91;"submit"&#93;){   
if(emptyempty($_POST&#91;'member_user'&#93;))   
 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&#91;"submit2"&#93;){   
$name=$_POST&#91;'name'&#93;;   
$pw=md5($_POST&#91;'password'&#93;);   
$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&#91;"tj"&#93;=="modify") {   
if($_POST&#91;"submit"&#93;){   
 mysql_query($sql="update member set member_name='".$_POS
T&#91;'member_name'&#93;."',member_qq='".$_PO
ST&#91;'member_qq'&#93;."',member_phone='".$_POST&#91;'member_phone'&#93;
."',member_email='".$_POST&#91;'member_email'&#93;."' where member
_user='".$_SESSION&#91;'member'&#93;."'");   
 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

标签:

给我留言