源码网,源码论坛,源码之家,商业源码,游戏源码下载,discuz插件,棋牌源码下载,精品源码论坛

 找回密码
 立即注册
楼主: ttx9n

[PHP编程] PHP+jQuery 注册模块的改进(三):更新到Smarty3.1

[复制链接]

7万

主题

861

回帖

32万

积分

论坛元老

Rank: 8Rank: 8

积分
329525
发表于 2018-12-25 17:51:30 | 显示全部楼层 |阅读模式
本文是PHP+jQuery 注册模块的改进的第三篇,主要记录了讲Smarty更新到最新的3.1版本,是篇非常使用的文章,有需要的朋友可以参考下

Smarty3.1X( 最新版本 3.1.19) 比起Smarty2.x修改了不少特性。我把这个模块使用Smarty3.1.18 ( 下载地址http://www.smarty.net/files/Smarty-3.1.18.zip )重新修改了一遍,是项目文件和目录看起来更干净更有调理。

把Smarty压缩包中的libs文件夹拷贝至模块根目录下,然后根目录创建init.inc.php:

复制代码 代码如下:
<?php
/**
    file:init.inc.php Smarty对象的实例化及初始化文件
*/

/* *********************Smarty设置*********************** */
//根目录路径方式,用于Smarty设置
define("ROOT",str_replace("\","/",dirname(__FILE__))."/");

require ROOT.'libs/Smarty.class.php';
$smarty = new Smarty();

//Smarty3设置默认路径
$smarty ->setTemplateDir(ROOT.'templates/')
        ->setCompileDir(ROOT.'templates_c/')
        ->setPluginsDir(ROOT.'plugins/')
        ->setCacheDir(ROOT.'cache/')
        ->setConfigDir(ROOT.'configs');

$smarty->caching = false;
$smarty->cache_lifetime = 60*60*24; //模版缓存有效时间为1天
$smarty->left_delimiter = '<{';
$smarty->right_delimiter = '}>';

/***********************************************************/

//根目录url方式
$PHP_SELF=$_SERVER['PHP_SELF'];
$ROOT_URL='http://'.$_SERVER['HTTP_HOST'].substr($PHP_SELF,0,strrpos($PHP_SELF,'/')+1);
define(ROOT_URL,$ROOT_URL);

//模版目录url方式
define("Template_Dir",$ROOT_URL.'templates');

创建初始化文件中出现的templates,templates_c,plugins,cache,configs文件夹。

修改的文件都比较相似,而且也非常easy,这里列出register.html和register.php文件的修改。

register.html是注册的前台页面,路径是/templates/register.html

复制代码 代码如下:
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>注册页面</title>
<link href="<{$Template_Dir}>/css/common.css"  rel="stylesheet" type="text/css">
<link href="<{$Template_Dir}>/css/register.css"  rel="stylesheet" type="text/css">

<script src="<{$Template_Dir}>/js/jquery-1.8.3.min.js"></script>
<script src="<{$Template_Dir}>/js/register.js"></script>
<!--邮箱下拉-->
<script src="<{$Template_Dir}>/js/emailup.js"></script>
</head>

<body>
<{*导入header.html*}>
<{include file="header.html"}>

<!-- 内容区 -->
<div id="container">

    <!--注册区-->
    <div id="register">

        <!-- 注册表单 -->
        <form id="register-form" action="register_chk.php" method="post">
           
            <!-- 用户名 -->       
            <!-- placeholder HTML5的属性,提供提示信息。输入字段为空时显示,并会在字段获得焦点时消失 -->
            <div class="ipt fipt">
                <input type="text" name="uname" id="uname" value="" placeholder="输入用户名"  autocomplete="off" />
                <!--提示文字-->
                <span id="unamechk"></span>
            </div>

            <!-- email -->           
            <div class="ipt">
                <input type="text" name="uemail" id="uemail" value="" placeholder="常用邮箱地址" autocomplete="off" /><span id="uemailchk"></span><ul class="autoul"></ul>
            </div>

            <!-- 密码 -->
            <div class="ipt">
                <input type="password" name="upwd" id="upwd" value="" placeholder="设置密码" /><div class="upwdpic"><span id="upwdchk"></span><img id="pictie" /></div>
            </div>
           
            <!-- 重复密码 -->
            <div class="ipt">
                <input type="password" name="rupwd" id="rupwd" value="" placeholder="确认密码" /><span id="rupwdchk"></span>
            </div>

            <!--验证码-->
            <div class="ipt iptend">
                <input type='text' id='yzm' name='yzm' placeholder="验证码" autocomplete="off" />
                <img id='yzmpic' src='valcode.php?num=<{showval}>' style="cursor:pointer" alt="验证码" title="验证码">
                <a style="cursor:pointer" id='changea'>
                    <img id="refpic" src="<{$Template_Dir}>/images/ref.jpg" alt="刷新验证码">
                </a>
                <span id='yzmchk'></span>
            </div>

            <!-- 提交 -->
            <button type="button" id="sub">立即注册</button>

            <!-- 服务条款 -->
            <span class="fuwu">
                <input type="checkbox" name="agree" id="agree" checked="checked">
                <label for="agree">我同意  <a href="#">" 服务条款  "</a> 和  <a href="#">" 网络游戏用户隐私权保护和个人信息利用政策 "</a>
                </label>
            </span>

        </form>

    </div>

</div>
</body>
</html>

register.php:

复制代码 代码如下:
<?php

session_start();

require_once 'init.inc.php';

//设置模版目录,用于模版页头部引用CSS、JS、Images
$smarty->assign("Template_Dir",Template_Dir);

$smarty->display('register.html');

同时扩充了生成验证码插件,路径是/plugins/function.showval.php

复制代码 代码如下:
<?php

//生成验证码
function smarty_function_showval($params,$smarty){

    $num = "";
    for($i=0;$i<4;$i++){

        $tmp = rand(1,15);
        if ($tmp > 9) {
            switch ($tmp) {
                case(10):
                    $num .= 'a';
                    break;
                case(11):
                    $num .= 'b';
                    break;
                case(12):
                    $num .= 'c';
                    break;
                case(13):
                    $num .= 'd';
                    break;
                case(14):
                    $num .= 'e';
                    break;
                case(15):
                    $num .= 'f';
                    break;
            }
        } else {
            $num .= $tmp;
        }   
    }

    $mdnum = md5($num);
    $_SESSION['num'] = $num;
    $_SESSION['mdnum'] = $mdnum;

    //写在session之后
    return $mdnum;
}

$_SESSION['num'] = smarty_function_showval($params,$smarty);
$_SESSION['mdnum'] = md5(smarty_function_showval($params,$smarty));

注意插件的命名:

文件名要放在根目录的plugins目录下,命名规则是 function.函数名.php,文件中函数的命名规则是 smarty_function_函数名($params,$smarty),其中第一个参数是传递给模板的关联数组,第二个参数是接收自动传入的smarty对象,函数要有返回值。

更多代码见:https://github.com/dee0912/myGit

回复

使用道具 举报

4

主题

2万

回帖

316

积分

中级会员

Rank: 3Rank: 3

积分
316
发表于 2022-9-19 09:03:55 | 显示全部楼层
呵呵呵呵呵呵呵a
回复 支持 反对

使用道具 举报

0

主题

2万

回帖

0

积分

中级会员

Rank: 3Rank: 3

积分
0
发表于 2022-9-24 03:05:31 | 显示全部楼层
灌灌灌灌水
回复 支持 反对

使用道具 举报

0

主题

1万

回帖

68

积分

注册会员

Rank: 2

积分
68
发表于 2023-6-14 08:24:27 | 显示全部楼层
的沙发水电费水电费
回复 支持 反对

使用道具 举报

0

主题

1万

回帖

0

积分

中级会员

Rank: 3Rank: 3

积分
0
发表于 2023-10-13 14:35:30 | 显示全部楼层
我要金豆金豆金豆
回复 支持 反对

使用道具 举报

15

主题

2万

回帖

122

积分

注册会员

Rank: 2

积分
122
发表于 2023-10-17 21:22:01 | 显示全部楼层
8888888888888888
回复 支持 反对

使用道具 举报

2

主题

2万

回帖

69

积分

注册会员

Rank: 2

积分
69
发表于 2024-3-20 02:40:20 | 显示全部楼层
抽根烟,下来看看再说
回复 支持 反对

使用道具 举报

2

主题

2万

回帖

347

积分

中级会员

Rank: 3Rank: 3

积分
347
发表于 2024-3-21 19:54:22 | 显示全部楼层
啊,数码撒飒飒飒飒
回复 支持 反对

使用道具 举报

1

主题

2万

回帖

207

积分

中级会员

Rank: 3Rank: 3

积分
207
发表于 2024-3-23 13:10:29 | 显示全部楼层
好人好人好人好人
回复 支持 反对

使用道具 举报

5

主题

2万

回帖

183

积分

注册会员

Rank: 2

积分
183
发表于 2024-6-9 16:16:04 | 显示全部楼层
这个源码还可以
回复 支持 反对

使用道具 举报

高级模式
B Color Image Link Quote Code Smilies

本版积分规则

手机版|小黑屋|网站地图|源码论坛 ( 海外版 )

GMT+8, 2024-11-30 13:48 , Processed in 0.069544 second(s), 23 queries .

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表