文件布局
<!--index.php-->
<meta http-equiv="content-type" content="text/html" charset="utf-8">
<?php
/**
* Created by PhpStorm.
* User: Administrator
* Date: 2015/8/26
* Time: 9:47
*/
//优化换成和跳转
ob_start();
?>
<!DOCTYPE html
PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head>
<title>会员系统</title>
<link rel="stylesheet" type="text/css" href="style.css"/>
</head>
<body>
<?php
function __autoload($_className){
require $_className.'.class.php';
}
//实例化对象
if(isset($_GET['index'])) {
$_main=new Main($_GET['index']);
}else{
$_main=new Main();
}
//运行
$_main->_run();
?>
</body>
</html>
<!--Login.class.php-->
<?php
/**
* Created by PhpStorm.
* User: Administrator
* Date: 2015/8/26
* Time: 14:26
*/
//登录类
class Login extends User {
public function __construct($_userName,$_passWord)
{
// TODO: Implement __construct() method.
$this->_username=$_userName;
$this->_password=$_passWord;
}
/**
*从xml文件里读取信息
*/
public function _query()
{
// TODO: Implement _query() method.
//载入xml文件
$_sxe=simplexml_load_file('user.xml');
if($this->_username==$_sxe->username&&$this->_password==$_sxe->password){
setcookie('username',$this->_username);
Tool::_alertLocation('登录成功!','?index=member');
}else{
Tool::_alertBack('登录失败!');
}
}
public function _check()
{
// TODO: Implement _check() method.
if( empty($this->_username)||
empty($this->_password)
){
return false;
}else{
return true;
}
}
}
?>
<!--login.inc.php-->
<h3>请登录您的账号</h3>
<div class="login">
<form method="post" action="">
<p>用 户 名:<input type="text" name="username"></p>
<p>密 码:<input type="password" name="password"></p>
<p><input type="submit" name="send" value="登录"></p>
<p>[<a href="?">返回上一层</a>]</p>
</form>
</div>
<!--Main.class.php-->
<?php
/**
* Created by PhpStorm.
* User: Administrator
* Date: 2015/8/26
* Time: 13:48
*/
//主类,控制界面载入,处理数据
class Main {
private $_index;
private $_send;
/**初始化数据
* @param string $_index
*/
public function __construct($_index='')
{
// TODO: Implement __construct() method.
$this->_index=$_index;
if(isset($_POST['send'])){
$this->_send=$_POST['send'];
}
}
/**总管
*
*/
public function _run(){
//处理数据
$this->_send();
//载入主界面面
include $this->_ui();
}
/**载入主页面的方法
* @return string
*/
private function _ui(){
if(empty($this->_index)||!file_exists($this->_index.'.inc.php')){
$this->_index='start';
}
return $this->_index.'.inc.php';
}
/**接收注册和登录发来的操作
* @return mixed
*/
private function _send(){
switch($this->_send){
case '注册':
$this->_exec(new Register($_POST['username'],$_POST['password'],$_POST['notpassword'],$_POST['email']));
break;
case '登录':
$this->_exec(new Login($_POST['username'],$_POST['password']));
break;
}
}
/**
*创建一个执行方法,里面传一个参数,是Register或Login类的对象引用
*/
private function _exec($_class){
if($_class->_check()){
$_class->_query();
}else{
Tool::_alertBack('字段不能为空!');
}
}
}
?>
<!--member.inc.php-->
<h3>欢迎您回来</h3>
<div class="start">
<p>欢迎您的归来,[<?php echo $_COOKIE['username']?>]</p>
</div>
<!--Register.class.php-->
<?php
/**
* Created by PhpStorm.
* User: Administrator
* Date: 2015/8/26
* Time: 14:26
*/
//注册类
class Register extends User{
public function __construct($_userName,$_passWord,$_notPassWord,$_email)
{
// TODO: Implement __construct() method.
$this->_username=$_userName;
$this->_password=$_passWord;
$this->_notpassword=$_notPassWord;
$this->_email=$_email;
}
/**
*将信息注册到xml文件里
*/
public function _query()
{
// TODO: Implement _query() method.
$_xml=<<<_xml
<?xml version="1.0" encoding="UTF-8"?>
<user>
<username>$this->_username</username>
<password>$this->_password</password>
<email>$this->_email</email>
</user>
_xml;
//使用SimpleXMLElement创建模板
$_sxe=new SimpleXMLElement($_xml);
//生成xml文件
$_sxe->asXML('user.xml');
//跳转到登录页面
Tool::_alertLocation('恭喜你,注册成功!','?index=login');
}
public function _check()
{
// TODO: Implement _check() method.
if( empty($this->_username)||
empty($this->_password)||
empty($this->_notpassword)||
empty($this->_email)
){
return false;
}else{
return true;
}
}
}
?>
<!--register.inc.php-->
<h3>请注册您的信息</h3>
<div class="register">
<form method="post" action="">
<p>用 户 名:<input type="text" name="username"></p>
<p>密 码:<input type="password" name="password"></p>
<p>确认密码:<input type="password" name="notpassword"></p>
<p>电子邮件:<input type="text" name="email"></p>
<p><input type="submit" name="send" value="注册"></p>
<p>[<a href="?">返回上一层</a>]</p>
</form>
</div>
<!--start.inc.php-->
<h3>欢迎光临会员俱乐部</h3>
<div class="start">
<a href="index.php?index=login">登录</a>
<a href="index.php?index=register">注册</a>
</div>
<!--style.css-->
@CHARSET "UTF-8";
h3,.start,.register,.login{
margin: 20px;
text-align: center;
}
<!--Tool.class.php-->
<?php
/**
* Created by PhpStorm.
* User: Administrator
* Date: 2015/8/26
* Time: 22:32
*/
//辅助类,里面都是放的静态方法,直接调用,无需实例化
final class Tool {
//弹窗,跳转到指定页面
static public function _alertLocation($_info,$_url){
echo "<script type='text/javascript'>alert('$_info');location.href='$_url';</script>";
exit();
}
//弹窗,返回页面
static public function _alertBack($_info){
echo "<script type='text/javascript'>alert('$_info');history.back();</script>";
exit();
}
}
?>
<!--User.class.php-->
<?php
/**
* Created by PhpStorm.
* User: Administrator
* Date: 2015/8/26
* Time: 14:21
*/
//抽象类规范字段和方法
abstract class User {
//成员字段
protected $_username;
protected $_password;
protected $_notpassword;
protected $_email;
//方法 注册和登录
abstract function _query();
abstract function _check();
}
?>
<!--user.xml-->
<?xml version="1.0" encoding="UTF-8"?>
<user>
<username>小一</username>
<password>123456</password>
<email>925377458@qq.com</email>
</user>