自己在家看了一点ThinkPHP的东西,想在这个框架上进行php程序的开发,有些东西看起来简单,可是做起来就没那么简单了,比如说php这个东西,以前一直以为php很简单,因为那时候不知道在什么地方看到有人说php的变量没有类型限制,所以也就不必考虑是不是int,是不是float,(虽然这个是php简单的一个优点,但也是缺点),发现编程这个东西,还是自己去练练好,只看,永远都学不会的,我是菜鸟,但是我相信,总有一天,我也会成为一只老鸟~~
言归正传,总结了一下,这些天用到的一些知识,留作以后查找使用,也给需要的人用,希望能有点启发。
1 ThinkPHP如何调用外部js文件
这里有几种方法,因为ThinkPHP中定义了很多系统常量,所以我们可以通过使用ThinkPHP的系统常量来调用
(1) 对于一些多个项目公用的一些js或者css文件,可以将这些文件放到站点根目录下的Public文件夹下,ThinkPHP中提供了一个__PUBLIC__系统常量,这个常量代指的就是根目录下的Public目录,所以可以通过__PUBLIC__/js/common.js来调用Public/js/目录下的common.js文件
(2)还有一种方法,这个也是我自己觉得最好用的,就是将这些文件放到项目目录下的Tpl文件夹下的Public目录下,这样可以通过../Public/js/common.js来调用了,这样方便,也可以使得js文件更加的条理(个人认为);
2 ThinkPHP中验证码的使用
在做网站后台登陆的时候,想让网站后天看起来更加规范一点,便会用到验证码,这也防止了一些机器程序的恶意登陆,ThinkPHP中提供了验证码的一些类库,在使用的时候将扩展类库中的ORG.Util.Image 类库和 ORG.Util.String 类库导入。
首先,在要显示验证码的类中创建一个verify方法,比如在IndexAction.class.php文件中,创建以下代码:
Public function verify(){
import("ORG.Util.Image");
Image::buildImageVerify();
}
这里我也碰到了一点问题,就是在写入以上代码的时候,验证码没有出现,后来我在上面加了一个Image::showAdvVerify();,便能显示了,但是很多网站上的文章,都只是上面这种形式,可能是我没有写好,还需要在研究研究,在这里,有知道的,麻烦大家告诉我一声,谢谢啦~ 这样代码便成了下面这个样子:
/**
* +-------------------------------------------
* 验证码函数
* +-------------------------------------------
*/
public function verify(){
import("ORG.Util.Image");
Image::buildImageVerify();
Image::showAdvVerify();
}
接下来便是验证码的使用了,一般情况下,验证码是在表单中使用的,这里也经常会看到网站上的验证码是有刷新功能的,所以这里我用到了js来实现验证码的刷新,代码如下:(代码有借鉴网络)
<!--
验证码刷新函数
-->
<script language="JavaScript">
function changeVerify(){
var timenow = new Date().getTime();
document.getElementById('verifyImg').src='__URL__/verify/'+timenow;
}
</script>
接下来便是在表单中显示验证码了,验证码一般是以图片格式出现的,所以这里是以htm中img标签来引用验证码,代码如下:
验证码:<input type="text" name="verify">
<img id="verifyImg" src="__URL__/verify" onClick="changeVerify()" title="点击刷新验证码" />
下面便成了验证码的验证了,在ThinkPHP中,验证码是可以通过$_SESSION['verify']来得到的,但是这里将这个验证码的内容通过了md5加密,所以在进行比较的时候,要使用以下方式:
if(SESSION['verify'] != md5(POST['verify'])) {
echo "<script type='text/javascript'> alert('验证码错误'); history.go(-1);</script>";
}else {
echo "验证成功";
}
这样,在ThinkPHP框架的支持下,验证码便很简单了,
今天就先写这些了,上面这些内容,在很多人看来都很简单,甚至都觉得不值得一提,但我相信,这些东西会有需要的人,而且,这个也在见证着我一天天的进步~~