当使用 $.post 提交 html 表单时如何在浏览器上存储密码
How can store password on browser when html form submiting with $.post
我创建了一个登录表单。因为我不想在提交表单时刷新页面,所以我使用 $.post 方法将数据发送到数据库并接收它。
我有一个问题,如果浏览器想要保存密码,他们不会保存密码,因为表单不会以通常的方式提交,我认为 cookie 可能是个好方法,但我认为它不安全。
$.post 登录示例
function formsubmited(form, p, username) {
$.post("process_login.php", {username: username.value, p: p.value},
function(response) {
if(response == 'login')
{
// do something
}
}
});
HTML 表格示例
<form name="form_login">
<input name="username"/>
<input type="password" name="password"/>
<input type="button" value="login" onclick="formsubmited(this.form, this.form.password, this.form.username);" />
</form>
这种方式提交表单时如何在浏览器中存储密码?
有什么办法吗?或者我应该使用 cookie?
问题的情况是您正在使用 input type="button"
并且在上述输入类型上没有触发浏览器保存密码。使用 input type="submit"
只需在这一行中做一处更改
<input type="button" value="login" onclick="formsubmited(this.form, this.form.password, this.form.username);" />
不要使用 button
,使用 submit
所以如下所示:
<input type="submit" value="login" onclick="return formsubmited(this.form, this.form.password, this.form.username);" />
并在函数末尾添加 return false
,这样表格就不会被提交。
使用PHP设置会话,这会将密码存储在服务器上,每次需要时都可以调用,例如像..
session_start();
$_SESSION['p']=$_POST['p'];
这是对我的评论的阐述,以便您理解。
您正在做的是向 php 脚本发出 post 请求,如下所示:
$.post("process_login.php", {username: username.value, p: p.value},
如果您想使用 javascript 来实现,我会亲自将其更改为:
function formsubmited() {
var username = document.getelementsbyname("username").value;
var p = document.getelementsbyname("password").value;
$.post("process_login.php", {username: username, p: p},
function(response) {
if(response == 'login')
{
// do something
}
}
}
然后编辑您的 html 使其看起来更干净一些:
<input type="button" value="login" onclick="formsubmited();" />
现在,在您的 PHP 脚本中,您需要将 POST 数据存储在内存中,以便在以后的阶段使用。执行此操作的最佳方法之一是使用 $_SESSION[]
数组。
因此您的 PHP 脚本将如下所示
<?php
session_start();
//On the server side, you can access data you have sent there in the $_POST[] array.
//The key you specify in the array has the exact name as the parameter you pass in
//javascript:
$inputtedUsername = $_POST["username"];
$inputtedPassword = $_POST["p"];
//first do a check to determine if the username and password are correct
//add your code here:
//....
添加代码以确定用户名和密码是否正确后,您可以继续将用户名和密码存储在内存中:
$_SESSION["username"] = $inputtedUsername;
$_SESSION["p"] = $inputtedPassword;
现在在您的 javascript 代码中,您期望脚本使用 return login
关键字来确定登录过程是否成功
//basically you'll need to do something like this
if($yourloginboolean == true){
echo "login";
}else{
echo "error";
}
?>
以后,如果您希望在以后的任何 PHP 代码中使用 $_SESSION["username"]
或 $_SESSION["p"]
,只需像使用任何其他变量一样使用它即可。
希望对您有所帮助
我创建了一个登录表单。因为我不想在提交表单时刷新页面,所以我使用 $.post 方法将数据发送到数据库并接收它。
我有一个问题,如果浏览器想要保存密码,他们不会保存密码,因为表单不会以通常的方式提交,我认为 cookie 可能是个好方法,但我认为它不安全。
$.post 登录示例
function formsubmited(form, p, username) {
$.post("process_login.php", {username: username.value, p: p.value},
function(response) {
if(response == 'login')
{
// do something
}
}
});
HTML 表格示例
<form name="form_login">
<input name="username"/>
<input type="password" name="password"/>
<input type="button" value="login" onclick="formsubmited(this.form, this.form.password, this.form.username);" />
</form>
这种方式提交表单时如何在浏览器中存储密码? 有什么办法吗?或者我应该使用 cookie?
问题的情况是您正在使用 input type="button"
并且在上述输入类型上没有触发浏览器保存密码。使用 input type="submit"
只需在这一行中做一处更改
<input type="button" value="login" onclick="formsubmited(this.form, this.form.password, this.form.username);" />
不要使用 button
,使用 submit
所以如下所示:
<input type="submit" value="login" onclick="return formsubmited(this.form, this.form.password, this.form.username);" />
并在函数末尾添加 return false
,这样表格就不会被提交。
使用PHP设置会话,这会将密码存储在服务器上,每次需要时都可以调用,例如像..
session_start();
$_SESSION['p']=$_POST['p'];
这是对我的评论的阐述,以便您理解。
您正在做的是向 php 脚本发出 post 请求,如下所示:
$.post("process_login.php", {username: username.value, p: p.value},
如果您想使用 javascript 来实现,我会亲自将其更改为:
function formsubmited() {
var username = document.getelementsbyname("username").value;
var p = document.getelementsbyname("password").value;
$.post("process_login.php", {username: username, p: p},
function(response) {
if(response == 'login')
{
// do something
}
}
}
然后编辑您的 html 使其看起来更干净一些:
<input type="button" value="login" onclick="formsubmited();" />
现在,在您的 PHP 脚本中,您需要将 POST 数据存储在内存中,以便在以后的阶段使用。执行此操作的最佳方法之一是使用 $_SESSION[]
数组。
因此您的 PHP 脚本将如下所示
<?php
session_start();
//On the server side, you can access data you have sent there in the $_POST[] array.
//The key you specify in the array has the exact name as the parameter you pass in
//javascript:
$inputtedUsername = $_POST["username"];
$inputtedPassword = $_POST["p"];
//first do a check to determine if the username and password are correct
//add your code here:
//....
添加代码以确定用户名和密码是否正确后,您可以继续将用户名和密码存储在内存中:
$_SESSION["username"] = $inputtedUsername;
$_SESSION["p"] = $inputtedPassword;
现在在您的 javascript 代码中,您期望脚本使用 return login
关键字来确定登录过程是否成功
//basically you'll need to do something like this
if($yourloginboolean == true){
echo "login";
}else{
echo "error";
}
?>
以后,如果您希望在以后的任何 PHP 代码中使用 $_SESSION["username"]
或 $_SESSION["p"]
,只需像使用任何其他变量一样使用它即可。
希望对您有所帮助