【发布时间】:2015-02-05 11:32:36
【问题描述】:
首先我想说我意识到这不是一种安全的方法。 这仅用于培训目的。
算法应该是:
- 点击 id="login-bg" 的 div
- 应用显示横幅
- 提供代码
- 如果代码正常设置 cookie 并淡出横幅
- 如果代码不正确,则 div 会抖动(仍保留在屏幕上)
- 如果您不想提供代码,请按“取消”并淡出横幅
设置cookie功能(效果很好):
<?php
if(!isset($_COOKIE['is_logged']))
{ ?>
<script type="text/javascript">
function SetPwd(c_name,value,expiredays){
var exdate=new Date()
exdate.setDate(exdate.getDate()+expiredays)
document.cookie=c_name+ "=" +escape(value)+";path=/"+ ((expiredays==null) ? "" : ";expires="+exdate.toGMTString())
}
</script>
<?php } ?>
这里肯定是 jQuery 的问题:
<?php
if(!isset($_COOKIE['is_logged']))
{ ?>
<div id="login-bg">
<div class="content">
<h2>Provide the code!</h2>
<form id="check-form" method="post" action="">
<input type="password" name="code" placeholder="code" id="code" />
<input type="submit" value="Submit" id="enjoy"/>
</form>
<h3>And enjoy free access!</h3>
<a id="cancel">Cancel</a>
</div>
</div>
<script type="text/javascript">
$(document).ready(function() {
if( document.cookie.indexOf("is_logged") ===-1 ){
$('#video').click(function(){
$("#login-bg").fadeIn('slow');
});
$('#cancel').click(function(){
$('#login-bg').fadeOut('slow');
//window.location = "<?php echo $this->baseUrl; ?>/index";
});
}
$("#submit").click(function (){
var value = $('#code').val();
var pass = 'test';
if( value == test ){
SetCookie('is_logged','is_logged',365*10)
$("#login-bg").remove();
}
else {
$('#login-bg').effect( "shake" );
}
});
});
</script>
<?php } ?>
在我看来,值 '#code' id 没有从表单传递给 jQuery。
但我可能错了。
你有什么想法吗?你能做到吗?
感谢您的帮助。
【问题讨论】:
-
感谢您在我回答后删除您的问题!不客气……
标签: javascript jquery html login client-side