• 面向对象 登录与注册


    文件布局

    <!--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>密&nbsp;&nbsp;码:<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>密&nbsp;&nbsp;码:<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>










  • 相关阅读:
    ios ASI 断点下载
    ios 视频播放器MPMoviePlayerController
    ios SDWebImage 图片加载显示菊花
    ios简单的音频播放
    学iOS开发(一)——实现一款App之Foundation框架的使用
    学iOS开发(二)——实现一款App之编写自定义类
    蓝欧ios培训视频
    ios开发教程地址
    day15_雷神_前端03
    day14_雷神_前端02
  • 原文地址:https://www.cnblogs.com/xiaomingzaixian/p/4762052.html
Copyright © 2020-2023  润新知