我正在为我的大学创建一个研究,并希望将用户在密码字段中键入的每个输入值保存到数据库中。
例如:用户键入"hello"作为密码。我想拯救"h","he","hel","hell",至少"hello"。如果他删除了一个像最后一个这样的字符,我也想保存这个:"地狱"。
目前我正在保存最后一个值"hello",如下所示:
起始页.php:
<form action="?atn=validatePassword" method="post" class="form mg_top">
<label id="enterPW" for="inp_list_generatedPassword">Select or enter Password:</label>
<input id="inp_list_generatedPassword" name="password" value="" type='password' class="form-control talign_center input" placeholder="Select or enter password">
</form>
视图控制器.php:
private function validatePassword(){
$password = $_POST["password"];
}
为了获取输入,我有一个使用 keyup 事件的 js 文件:
首页.js:
$('#inp_list_generatedPassword').keyup(function() {
var input = this.value;
$('#output').val(input);
$.ajax({
url: "startpage.php",
data: {
'keyValue' : input
},
dataType: 'json',
});
});
在视图控制器中.php我正在添加此行$currentPW = $_GET["keyValue"];
但它不起作用。我收到一个错误:未定义的索引:视图控制器中的键值.php
此外,这不会保存每个输入。它只是在按下按钮时保存最后输入的字符串:<button id="matchPassword" class="btn btn-primary form-control">Submit</button>
如何保存所有步骤?我的代码中是否有错误,或者更确切地说是在 Ajax 调用中是否存在错误?
当然,如果有人键入非常奇怪的东西,这会给你的数据库带来巨大的过载。
您需要在 PHP 脚本中使用缓存,但这不是问题的一部分。
前往解决方案:
我试过了,它适用于这个:
$(document).on('keyup', '#inp_list_generatedPassword', function() {
var input = this.value;
$('#output').text(input);
});
看到这里: https://jsfiddle.net/cj1367eo/
现在,您可以根据需要使用"input"变量。我也更喜欢使用"$.post",如下所示:http://api.jquery.com/jquery.post/
注意,未经测试的代码:
$.post( "api.php", { data: input } );
现在,您可以使用 $_POST["数据"] 来获取您的输入。
附加信息:
但正如我之前所说:使用缓存!
否则,您的系统可能会遇到真正的麻烦。
使用一个全局 PHP 变量就足够了,您每隔 N 分钟或条目写入数据库。