前段时间碰到这么一个问题,要实现输入密码正确,才实现下载的一个功能。
之前的思路是,在页面判断是否有输入密码,密码是否正确,如果没有输入过的话,点击下载,就弹出一个div层,提示输入密码,如果输入过,下载链接就是正确的,可以直接下载。
一直都是想通过的判断的方法来显示下载链接,做的时候碰到了一些问题,我刚开始给了一个变量,然后给变量赋了一个值,然后跟表单提交获取的pwd做对比。很显然这种办法是行不通的。这样的话,这个密码不仅不能保存,而且还会发生用户刚刚输入密码,准备要下载时,又跳出输入密码的提示。而且判断的时候,也是有问题的,要解决的问题就是如何存这个固定的密码,如何在页面做判断。
要想使这个固定的密码,在一段时间内是有效的,我们就想到用session来存值,并且设定生命周期。
首先在页面开始并使用session。
session_start();
$lifeTime = 2 * 3600;
setcookie(session_name(), session_id(), time() + $lifeTime, “/”);
$_SESSION['downloadpwd']=’fsdbkitchen2014′; //给session设定值
紧接着就是要在页面做判断。
刚开始由于我的思路不够成熟,就只判断了是否存在session和提交的密码是否等于这个session,所以除了问题,导致页面无法显示。(当然这个是我们必须要记住的)要做一个是否有post表单提交的验证。
重要部分代码如下:
如果条件成立页面就显示正确的下载链接,如果有错误,就提示密码输入错误,并跳转回下载列表页面。如果不存在post表单提交方式则弹出密码框,要求输入密码在操作。
这是一个简单的session和post提交的应用,但是却因为的我的疏忽,出现了一些错误,同时,我也想要告诫自己,写代码一定要用脑子想思路,否则就做不出什么!