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