Javascript登录,cookies [关闭]
Posted
技术标签:
【中文标题】Javascript登录,cookies [关闭]【英文标题】:Javascript login, cookies [closed] 【发布时间】:2013-05-20 17:21:17 【问题描述】:谁能帮我做作业?
<div id="header">
<form id="login" onsubmit="return member()">
<p>
<label for="txtuser">User:</label>
<input type="text" class="text" name="txtuser" id="txtuser"/><br/>
<label for="txtpass">Password:</label>
<input type="text" class="text" name="txtpass" id="txtpass"/><br/>
<input type="submit" class="buttons" id="btnlogin" name="btnlogin" value="Login"/>
</p>
</form>
</div>
这是我的作业,我有一个登录表单,其中包含用户名和密码文本框,我必须验证表单,如果它有效,一旦用户成功登录,网站的每个页面都会显示用户的登录信息名称,以及允许他们随时注销的链接。我该怎么办?cookies也需要... 还是谢谢
【问题讨论】:
什么...你想在作业上作弊? 我建议也看看这里:w3schools.com/html/html_forms.asp。密码应该是input type="password"
好吧,我不是要欺骗我的硬件,我只是找不到任何方法来解决它,这就是为什么我来这里寻求帮助..lol
我在 w3schools 上做过这些,但我无法解决 cookie、dom、ajax 的问题......“一旦用户成功登录,网站的每个页面都会显示用户的登录名”
【参考方案1】:
在 member() 函数中,您可以通过 id 访问元素,然后获取值并最终检查它们是否有效:
function member()
// Get the elements
var user_input = document.getElementById("txtuser");
var pass_input = document.getElementById("txtpass");
// Get their values
var user_value = user_input.value;
var pass_value = pass_input.value;
// Validate values, this is up to you
if ( /* this is your homework */ )
// Here values are OK, save a cookie with the username
saveTheCookie(user_value);
return true; // Form is OK
else
// Form is wrong
return false;
您可以使用以下功能存储 cookie:
function saveTheCookie(value)
var today = new Date(); // Actual date
var expire = new Date(); // Expiration of the cookie
var cookie_name = "username_form"; // Name for the cookie to be recognized
var number_of_days = 10; // Number of days for the cookie to be valid (10 in this case)
expire.setTime( today.getTime() + 60 * 60 * 1000 * 24 * number_of_days ); // Current time + (60 sec * 60 min * 1000 milisecs * 24 hours * number_of_days)
document.cookie = cookie_name + "=" + escape(value) + "; expires=" + expire.toGMTString();
获取cookie的值:
function getTheCookie()
var cookie_name = "username_form";
var return_value = null;
var pos_start = document.cookie.indexOf(" " + cookie_name + "=");
if (pos_start == -1) document.cookie.indexOf(cookie_name + "=");
if (pos_start != -1) // Cookie already set, read it
pos_start++; // Start reading 1 character after
var pos_end = document.cookie.indexOf(";", pos_start); // Find ";" after the start position
if (pos_end == -1) pos_end = document.cookie.length;
return_value = unescape( document.cookie.substring(pos_start, pos_end) );
return return_value; // null if cookie doesn't exist, string otherwise
请注意,我没有对此进行测试,这是您开始的想法。您仍然需要检查表单、设置 cookie 并在加载页面时检索它(包括在 body
标记中的 onload
事件中设置 DOM 元素的 HTML)。祝你好运!
【讨论】:
当然,这是一个 javascript “解决方案”,对于生产环境不可靠(为此,使用 php 来验证表单、设置 cookie、登录等等等等)。根据您的需要更改此设置 var pos_start = document.cookie.indexOf(" " + cookie_name + "=");我一开始没有得到空格。它应该以cookie_name开头吧? @AllenJohnson 我不知道,这是我 7 年前写的。以上是关于Javascript登录,cookies [关闭]的主要内容,如果未能解决你的问题,请参考以下文章
使用 PHP 和 Curl 登录 Google,Cookie 已关闭?
HTML/JavaScript 禁用 cookie [关闭]
javaScript中的Cookie和web Storage(LocalStorage-SessionStorage)详解
javaScript中的Cookie和web Storage(LocalStorage-SessionStorage)详解