当前位置: 首页 > 编程笔记 >

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

公良泰宁
2023-03-14
本文向大家介绍PHP+jQuery 注册模块的改进(三):更新到Smarty3.1,包括了PHP+jQuery 注册模块的改进(三):更新到Smarty3.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

 类似资料:
  • 本文向大家介绍PHP+jQuery 注册模块的改进(一):验证码存入SESSION,包括了PHP+jQuery 注册模块的改进(一):验证码存入SESSION的使用技巧和注意事项,需要的朋友参考一下 需要修改的几个文件: ①register.php 生成随机数和加密值 把register.html改为register.php,并开启session; 把register.js中生成随机数的函数写在r

  • 本文向大家介绍PHP+jQuery 注册模块的改进(二):邮箱激活第1/2页,包括了PHP+jQuery 注册模块的改进(二):邮箱激活第1/2页的使用技巧和注意事项,需要的朋友参考一下 接《PHP+jQuery 注册模块的改进之一》继续修改: ①在注册成功后返回登录邮件页面( maillogin.php ),在页面中用户可以点击链接跳转到自己注册邮箱的登录页面,可以再次发送激活链接; ②给激活链

  • 本文向大家介绍PHP+jQuery 注册模块开发详解,包括了PHP+jQuery 注册模块开发详解的使用技巧和注意事项,需要的朋友参考一下 写了一个简单的PHP+jQuery注册模块,需要填写的栏目包括用户名、邮箱、密码、重复密码和验证码,其中每个栏目需要具备的功能和要求如下图: 在做这个模块的时候,很大程度上借鉴了网易注册(http://reg.163.com/reg/reg.jsp?produ

  • 从2.4.8更新到2.5.4后,我开始在jackson序列化时出现此错误,当尝试反序列化时: 据我所知,这不应该发生(在以前的版本上也不会发生),因为Spring Boot默认具有这些Jackson依赖项(jackson-datatype-jdk8、jackson-datatype-jsr310等) 我没有自定义的Jackson配置<2.5.x版本的Spring boot有什么变化吗?

  • 我有一个页面,上面有多个JQuery-UI滑块,每个滑块都有一个关联的文本输入框,关联是双向的:当滑块改变时,文本框值改变。当文本框值改变时,滑块改变。 到目前为止,我的工作方式只有一种:当滑块改变时,文本框的值也会改变。但我不能让它反向工作。 这是我的滑块 下面是一个滑块的标记: 这是JQuery,我试图用它来获取“金额”的值,并用它来设置关联滑块的值。我通过从文本框ID的末尾减去7个字符(“_

  • AWS Java 开发工具包是否提供与胶合模式注册表进行交互的任何方法?我正在寻找诸如注册架构,更新已注册架构的版本,删除架构等方法。我知道aws提供了这里提到的Python库方法 我正在寻找与注册表交互的Java方式。类似于Spring云模式注册表 AWS Glues还提供endpoint,但我不确定它们是否允许我与胶水模式注册表进行交互。 这个SO问题建议遵循aws提供的示例,但我正在专门寻找