我有一个表单,用于向网站添加新的用户名和密码。我正在尝试添加一个生成12字符密码的按钮并将其放入密码文本框中。每次按下此按钮,它应该已经删除密码并添加另外12个字符密码。
这是我的布局: http://snag.gy/L4woo.jpg
以下是我的表格:
<form method="post" action="addNewLogin.php" name="addUserLoginForm" id="addUserLoginForm" onsubmit= "return validateNewLoginForm()" >
<input type="hidden" name="submitAttempt" value="true"/>
<table style="background-color: White; padding:20px;" align="center">
<tr>
<td style="width:180px;">
<label style="margin-left:400px;">Username</label>
</td>
<td style="width:420px;">
<input name="username" type="text" style="width:140px;" onchange= "return usernameValidation(this)" />
</td>
</tr>
<tr>
<td>
<label style="margin-left:400px;">Password</label>
</td>
<td>
<input name="password" type="password" style="width:140px;" onchange= "return passwordValidation(this)"/>
</td>
<td style="margin-right: 200px;">
<button type="password" type= "text" onclick="return generateKey()">Generate Password!</button>
</td>
</tr>
</table>
<div align="center"><input type="submit" value="Add Login Details For New User" /></div>
</form>
我的用户名和密码使用标准正则表达式
通过单独的JavaScript函数进行验证这是我的12字符生成密码功能:
public function generateKey()
{
$random_bytes = openssl_random_pseudo_bytes(9);
$random_string = mysql_escape_string(str_replace(array(1 => "+",2 => "/"), array(1 => "-", 2 => "_"), base64_encode($random_bytes)));
return $random_string;
}
我不知道如何点击此按钮将此功能应用于所需的文本框。希望你能帮忙。感谢
答案 0 :(得分:1)
为什么要在服务器上生成新密码?
只需使用javascript生成客户端密码!
编辑: 这是一个关于如何使用JS和jQuery
的快速示例http://jsfiddle.net/kannix/KhWR4/
请重构您的HTML代码<button type="password"
是无效的HTML;)
答案 1 :(得分:1)
当我理解正确时,应该使用jquery和ajax。每次单击后,您将一个新的PHP生成的密码加载到input元素中。但是你应该为元素添加id。然后就像:
$('#idofbutton').live("click", (function(){
// Ajax
$.ajax({
type: "GET",
async: false,
url: "yourphpwithgenerateKey_Codeonly.php",
data: "",
success: function(data){
$('#idofpasswordinput').text(data);
}
});// $.ajax
}));
在此示例中,您只能在php文件中使用密钥代码。当然,你可以通过get-parameters解决一个大的php文件的方法,让php知道使用哪种方法。希望你明白我的意思。