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