«

EMLOG通过页面实现用户注册的方法

时间:2019-9-8 10:00     作者:博客志     分类: emlog教程


市面上诸多博客系统都有多用户功能,虽然EMLOG从EMLOG 3.2.0版本开始就增加了多人联合撰写等功能,但EMLOG在多用户管理方便表现的并不明显,比如说用户的权限管理、用户留存等相对于其他博客系统都十分欠缺。

当然,EMLOG原生网站程序也没有用户注册功能,但很多站长确实需要用到该功能,博客志今天就来分享一下EMLOG通过页面实现用户注册的方法。

一、操作步骤

1、将模板文件中的pege.php文件复制到本地,修改文件名为page_reg.php

2、在page_reg.php文件中查找如下代码

<?php echo $log_content; ?>

3、将上面的代码替换为下面的代码,上传至模板文件夹中

<?php echo $log_content; ?>
<table align="center">
  <form action="" method="post" name="reg" id="reg" onsubmit="return checkReg();">
    <tr>
      <td align="right">用户名:</td>
      <td><input name="username" class="usr" > * 必填,大于等于5位</td>
    </tr>
    <tr>
      <td align="right">密码:</td>
      <td><input name="password" type="password"> * 必填,大于等于5位</td>
    </tr>
    <tr>
      <td align="right">重复密码:</td>
      <td><input name="password2" type="password"></td>
    </tr>
    <tr>
      <td align="right">验证码:</td>
      <td><input name="imgcode" type="text" class="imgcode">
        <img src="<?php echo BLOG_URL; ?>include/lib/checkcode.php" width="80" id="yzcode" /></td>
    </tr>
    <tr>
      <td align="right"></td>
      <td><input type="submit" value="确认注册" class="rbtn"><input type="reset" value="重置" class="rbtn"></td>
    </tr>
    <tr>
      <td></td>
      <td><a href="admin/" title="前往登录">已有账号,前往登陆?</a></td>
    </tr>
  </form>
</table>
<?php
session_start();
!defined('EMLOG_ROOT') && exit('access deined!');
if(ROLE == 'admin' || ROLE == 'writer'){
    header('Location:'.BLOG_URL.'admin/');
}
global $CACHE;
$options_cache = $CACHE->readCache('options');
$DB = MySql::getInstance();
$username = isset($_POST['username']) ? addslashes(trim($_POST['username'])) : '';
$password = isset($_POST['password']) ? addslashes(trim($_POST['password'])) : '';
$password2 = isset($_POST['password2']) ? addslashes(trim($_POST['password2'])) : '';
$imgcode = isset($_POST['imgcode']) ? strtoupper(addslashes(trim($_POST['imgcode']))): '';
if($username && $password && $password2 && $imgcode ){
    $sessionCode = isset($_SESSION['code']) ? $_SESSION['code'] : '';
    //echo $sessionCode;
    if($imgcode == $sessionCode){
        $User_Model = new User_Model();
        if(!$User_Model -> isUserExist($username)){
            $hsPWD = new PasswordHash(8, true);
            $password = $hsPWD->HashPassword($password);
            $User_Model->addUser($username, $password, 'writer', 'y');
            $CACHE->updateCache();
            echo'<script>alert("注册成功!"); window.location.href="'.BLOG_URL.'admin/"</script>';
        }else{
            echo'<script>alert("用户名已存在!");</script>';
        }
    }else{
        echo'<script>alert("验证码错误!");</script>';
    }
}?>
<script src="<?php echo TEMPLATE_URL; ?>js/jquery-1.11.1.min.js" type="text/javascript"></script>
<script>
function checkReg(){
    var usrName = $("input[name=username]").val().replace(/(^\s*)|(\s*$)/g, "");
    var pwd = $("input[name=password]").val().replace(/(^\s*)|(\s*$)/g, "");
    var pwd2 = $("input[name=password2]").val().replace(/(^\s*)|(\s*$)/g, "");
    var yzm = $("input[name=imgcode]").val().replace(/(^\s*)|(\s*$)/g, "");
    if(usrName.match(/\s/) || pwd.match(/\s/)){
        alert("用户名和密码中不能有空格");
        return false;
    }
    if(usrName == '' || pwd == '' || yzm == ''){
        alert("用户名、密码、验证码都不能为空!");
        return false;
    }
    if(usrName.length < 5 || pwd.length < 5){
        alert("用户名和密码都不能小于5位!");
        return false;
    }
    else if(pwd != pwd2){
        alert("两次输入密码不相等!");
        return false;
    }
}
$(function(){
    $("#yzcode").click(function(){
        $(this).attr("src", "<?php echo BLOG_URL;?>include/lib/checkcode.php?"+Math.random());
    });
})
</script>

4、打开网站管理界面,依次点击 后台 - 页面 - 新建页面 - 填写页面名称为用户注册 - 修改页面模板为page_reg - 发布

5、在浏览器上新建隐身窗口,打开刚刚发布的用户注册页面查看效果

二、原理解析

利用自建模板页面,新增用户注册页面

三、注意事项

1、如果之前修改过网站后台路径,则需要将page_reg.php文件约第63行的admin修改为自己的路径

2、本教程第4步,还可以在新建页面的底部设置链接别名,比如reg,那么发布后的注册页面就变成了网址+reg.html