利用cookies记忆评论用户信息及产生验证码的一个例子
核心代码如下
| <DIV id="comment_post" class="comment_frame"> <DIV class="comment_title">Post Comment:</DIV> <form action="" method="POST" onsubmit="return validate();"> <input type="hidden" name="editsave" value="253001" /> <p><label for="id_name">Name (required):</label> <input id="id_name" type="text" name="name" maxlength="20" /></p> <p><label for="id_email">E-mail (optional):</label> <input id="id_email" type="text" name="email" maxlength="30" /></p> <p><label for="id_site">Website (optional):</label> <input id="id_site" type="text" name="site" maxlength="150" /> http://xxx.com</p> <p><label for="id_content">Message (Required):</label> <textarea id="id_content" style="width:400px;height:60px;" rows="10" cols="40" name="content"></textarea> A maximum of 300 characters</p> <p>Verification Code:<input type="text" id="input1" name="vericode1" style="width: 50px" onclick="createCode()" /> <input type="text" name="vericode2" onclick="createCode()" readonly="readonly" id="checkCode" class="unchanged" style="width: 50px" /> <input type="submit" name="submit_btn" style="width: 90px" value="Submit" onClick="login();"/></p> </form> <script language="javascript" type="text/javascript"> var code ; function createCode(){ code = ""; var codeLength = 4; var checkCode = document.getElementById("checkCode"); var selectChar = new Array(0,1,2,3,4,5,6,7,8,9); for(var i=0;i<codeLength;i++){ var charIndex = Math.floor(Math.random()*selectChar.length); code +=selectChar[charIndex]; } //alert(code); if(checkCode){ checkCode.className="code"; checkCode.value = code; } } function validate(){ var inputCode = document.getElementById("input1").value; if(inputCode.length <=0){ alert("Please Enter Verification Code"); createCode(); return false; }else if(inputCode != code ){ alert("Please Enter Right Verification Code"); createCode(); return false; }else{ //alert("^-^ OK"); return true; } } //createCode(); //set cookie function setcookie(name,value){ var Days = 30; var exp = new Date(); exp.setTime(exp.getTime() + Days*24*60*60*1000); document.cookie = name + "="+ escape (value) + ";expires=" + exp.toGMTString(); } function getcookie(name){ var arr = document.cookie.match(new RegExp("(^| )"+name+"=([^;]*)(;|$)")); if(arr != null){ return unescape(arr[2]); }else{ return ""; } } function login(){ setcookie("author",document.getElementById('id_name').value); setcookie("email",document.getElementById('id_email').value); setcookie("url",document.getElementById('id_site').value); } function loadcookies(){ document.getElementById("id_name").value = getcookie("author"); document.getElementById("id_email").value = getcookie("email"); document.getElementById("id_site").value = getcookie("url"); } if (document.cookie != "") { loadcookies(); } // set cookie end // function show_post_comment(){ document.getElementById("comment_post").style.display = "block"; } // function replyto(somebd){ show_post_comment(); document.getElementById("id_content").value = "To("+somebd+"):"; } </script> </DIV> |
可以复制保存为html文件试试。
注意:js代码和提交评论按钮的相对位置,要将js代码放在提交评论按钮后面,cookies读写功能才能生效。
完整实例包下载(14.1k)
http://www.uushare.com/user/hikefreeman/file/2772104
本文永久链接
http://www.houkai.com/2010/03/24/js-cookies-code.html
转载注明来自
HOUKAI.COM
好吧,待会儿试试
我看不懂函数~~
阅……
呵呵,我也有个写cookie的代码,一直没有加上~~这个不错
上次我也是这么帮人修改的
这个代码确实很好 记下了
恩,很实用。
http://www.houkai.com/admin/pro_admin/htmledit/cozbadmin_login.asp 会看到你的后台菜单,这该怎么处理啊
@云在天边
好恐怖呀!!最近没时间研究呀
不是很明白
好长的代码,有时间慢慢看
提交留言后出现错误
@云在天边
这个代码你要改造,你只用cookies那段就行了 提交或者说上传留言的建议你用以前的。
@houkai
苍天……的确要升级了,呵呵,话说这个怎么像是被人检测呢在~~云在天边是不是用名小子了?嘿嘿
@TaoGOGO
不是我用。。。是有人在扫描我的网站,我在那个日志记录里看到的,有人这样测试,然后返回200,我就觉得有问题啊
说实话,做软件这么久,我一直对cookie不是很在行