diff --git a/app/templates/login.html b/app/templates/login.html index b0806b6..b001cb0 100644 --- a/app/templates/login.html +++ b/app/templates/login.html @@ -11,12 +11,14 @@ function login(){ let username = $("#username").val(); let password = $("#password").val(); + let regex = /^[a-zA-Z0-9_]*$/; + if (username === "" || password === ""){ alert('输入不能为空!'); return false; } - if (password.includes(' ')) { - alert('输入不能包含空格!'); + if (!regex.test(username) || !regex.test(password)) { + alert('用户名和密码只能包含英文字母和数字!'); return false; } $.post( @@ -29,7 +31,7 @@ window.location.href = "/"+username+"/userpage"; } } - ) + ); return false; } @@ -46,5 +48,4 @@ {% endif %} -{% endblock %} - +{% endblock %} \ No newline at end of file diff --git a/app/templates/reset.html b/app/templates/reset.html index 408e001..741a7f9 100644 --- a/app/templates/reset.html +++ b/app/templates/reset.html @@ -8,14 +8,12 @@ let old_password = $("#old-password").val(); let new_password = $("#new-password").val(); let re_new_password = $("#re-new-password").val(); + let regex = /^[a-zA-Z0-9_]*$/; + if (old_password === "" || new_password === "" || re_new_password === ""){ alert('输入不能为空!'); return false; } - if (old_password.includes(' ') || new_password.includes(' ')) { - alert('输入不能包含空格!'); - return false; - } if (new_password !== re_new_password) { alert('新密码不匹配,请重新输入'); return false; @@ -24,6 +22,11 @@ alert('密码过于简单。(密码长度至少4位)'); return false; } + if (!regex.test(new_password)) { + alert('新密码只能包含英文字母和数字!'); + return false; + } + $.post("/reset", {'old-password': old_password, 'new-password': new_password}, function (response) { if (response.status === '1') { @@ -34,7 +37,7 @@ window.location.href = "/reset"; } } - ) + ); return false; } diff --git a/app/templates/signup.html b/app/templates/signup.html index 6b5db6e..660e924 100644 --- a/app/templates/signup.html +++ b/app/templates/signup.html @@ -12,14 +12,12 @@ You're logged in already! Logout. let username = $("#username").val(); let password = $("#password").val(); let password2 = $("#password2").val(); + let regex = /^[a-zA-Z0-9_]*$/; + if (username === "" || password === "" || password2 === ""){ alert('输入不能为空!'); return false; } - if (password.includes(' ') || password2.includes(' ')) { - alert('输入不能包含空格!'); - return false; - } if (password !== password2) { alert('确认密码与输入密码不一致!'); return false; @@ -28,6 +26,11 @@ You're logged in already! Logout. alert('密码过于简单。(密码长度至少4位)'); return false; } + if (!regex.test(username) || !regex.test(password)) { + alert('用户名和密码只能包含英文字母和数字!'); + return false; + } + $.post("/signup", {'username': username, 'password': password}, function (response) { if (response.status === '0') { @@ -47,7 +50,7 @@ You're logged in already! Logout. alert(response.warn); } } - ) + ); return false; } @@ -60,13 +63,12 @@ You're logged in already! Logout.

Sign up

-

+

- -{% endif %} -{% endblock %} +{% endif %} +{% endblock %} \ No newline at end of file diff --git a/app/templates/test_bug536_QianLetao.py b/app/templates/test_bug536_QianLetao.py new file mode 100644 index 0000000..cce0fe6 --- /dev/null +++ b/app/templates/test_bug536_QianLetao.py @@ -0,0 +1,39 @@ +from selenium import webdriver +from selenium.webdriver.common.desired_capabilities import DesiredCapabilities +from selenium.webdriver.common.keys import Keys + +import time + +# 初始化WebDriver +driver = webdriver.Remote('http://localhost:4444/wd/hub', DesiredCapabilities.FIREFOX) +driver.implicitly_wait(10) + + +# 测试注册页面输入密码包含空格的情况 +def test_signup_password_with_space(): + try: + driver.get("http://127.0.0.1:5000/signup") + + # 输入用户名 + username_elem = driver.find_element_by_name('username') + username_elem.send_keys("阿萨德") + + # 输入包含空格的密码 + password_elem = driver.find_element_by_name('password') + password_elem.send_keys("阿萨德阿萨德") + + # 再次输入密码 + password2_elem = driver.find_element_by_name('password2') + password2_elem.send_keys("阿萨德阿萨德") + + # 提交注册表单 + password2_elem.send_keys(Keys.RETURN) + + # 等待一段时间确保页面加载完成 + time.sleep(2) + + # 检查是否弹出警告框 + alert = driver.switch_to.alert + assert "用户名和密码只能包含英文字母和数字!" in alert.text + finally: + driver.quit()