我需要在网站的注册页面中实施一次性密码。用户输入他的手机号码并按“生成OTP”键。按钮。页面 不会 更改。他通过短信收到OTP。他在主页上输入了OTP并预先提交了“提交”。按钮。现在OTP是匹配的,如果发现好,则在数据库表中输入注册请求。
如何保持页面保持不变,我很无能为力。同时按下“生成OTP”#39;按钮。我已经实现了相同的功能,但是分为两页。在这里我只需要在一个页面中实现它。有什么帮助吗?
答案 0 :(得分:2)
选项1:如果您使用iFrame,则可以不使用javascript。
在请求手机号码的表单中,只需添加"target='name_of_your_iFrame'"
属性即可。该表单的操作应该是生成OTP并将OTP发送给用户的脚本。
在同一页面上的此表格下方,用户可以使用普通表格输入他的OTP并进行注册。
为iFrame设置样式,使其成为HTML页面上的隐藏元素,或者您可以使用它来向用户提供他的OTP发送与否的反馈。
选项2:否则,使用jQuery AJAX是另一种选择,可能是这样的:
var otp_url = 'otp.php';
$('form[name=form_mobile_nr]').submit(function (event) {
event.preventDefault();
var mobile_nr = $('input:text[name=mobile_nr]').val();
$.post(otp_url, {mobile_nr:mobile_nr}, function(response) {
if (response) alert(response);
});
});
在您的php脚本('otp.php')中,您可以获取并使用移动设备:
$mobile_nr = !empty($_POST["mobile_nr"]) ? $_POST["mobile_nr"] : NULL;
if ($mobile_nr) {
// test if valid number
// generate OTP
// create database entry for mobile_nr and OTP
// send OTP to user
}
else echo "Please supply a valid mobile number.";