该站点每隔一段时间工作一次!(如果我写了一个不在数据库中的登录名,那么它不会显示任何内容,如果有这样的登录名,那么它会显示一个错误,但是如果在这个错误之后你输入了一个登录名不在数据库中,则显示“您已注册”)
我是新人,请帮忙。
PHP:
include 'includes/db.php';
$data = $_POST;
if(isset($data['do-signup']) ){
$errors = array();
if(R::count('users','login = ? OR password = ?',array($data['login'],password_hash($data['password'],PASSWORD_DEFAULT))) > 0){
$errors[] = '<div class="has-error it-error">Такой пользователь или пароль уже существует</div>';
}
if(empty($errors)){
$user = R::dispense('users');
$user->login = $data['login'];
$user->password = password_hash($data['password'],PASSWORD_DEFAULT);
R::store($user);
echo 'Вы зареганы';
header('Location: /');
}else{
echo 'Одни ошибки в коде';
}
}
?>
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<link rel="stylesheet" href="/media/css/style.css">
<link rel="stylesheet" href="/media/fonts/fonts.css">
<link href="https://fonts.googleapis.com/css?family=Oswald:600&display=swap" rel="stylesheet">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta http-equiv="X-UA-Compatible" content="ie=edge">
<title>Регистрация на forum</title>
</head>
<body>
<header>
<div class="conteiner">
<a href="index.php" class="main-page-link">MAIN PAGE</a>
<div class="header-text">MY FORUM</div>
</div>
</header>
<div class="conteiner">
<div class="signup_login_page">
<div class="wrap">
<span class="reg-text">Регистрация</span>
<form class="signup-and-login-form signup-form" action="/signup.php" method="POST">
<?php if(!empty($errors)){
echo array_shift($errors);
}
?>
<input type="text" class="input-form has-sucsess" placeholder="Введите логин" name="login" id="login">
<input type="password" name="password" placeholder="Введите пароль" class="input-form" id="password">
<input type="password" name="confirm_password" placeholder="Введите пароль" class="input-form" id="confirm_password">
<label for="do-signup" name="signup" class="do-signup-label">SIGN UP</label>
<input type="submit" name="do-signup" value="displey-none" id="do-signup">
</form>
</div>
</div>
</div>
<?php require_once 'includes/footer.php' ?>
<script src="libs/jQuery.js"></script>
<script src="media/js/register.js"></script>
</body>
</html>
和 JS:
var passwordRegex = /^[A-Za-z0-9_-]{6,18}$/;
var loginRegex = /^[A-Za-z0-9_-]{4,16}$/;
var validPassword = false;
var validConfirm = false;
var validName = false;
function validationlogin(){
var name = $('#login').val();
if(loginRegex.test(name) && name != ''){
validName=true;
$('#login').removeClass('has-error').addClass('has-sucsess');
}else{
validName=false
$('#login').removeClass('has-sucsess').addClass('has-error');
}
if(name ==''){
validName = false;
$('#login').removeClass('has-error').addClass('has-sucsess');
}
};
setInterval(validationlogin , 300);
function validationpassword(){
var password = $('#password').val();
if(passwordRegex.test(password) && password != '' ){
validPassword=true;
$('#password').removeClass('has-error').addClass('has-sucsess');
}else{
validPassword=false;
$('#password').removeClass('has-sucsess').addClass('has-error');
}
if(password ==''){
validPassword = false;
$('#password').removeClass('has-error').addClass('has-sucsess');
}
};
setInterval(validationpassword , 300);
function validationconfirm(){
var confirm = $('#confirm_password').val();
var password = $('#password').val();
if(confirm == password){
validConfirm = true;
$('#confirm_password').removeClass('has-error').addClass('has-sucsess');
}else{
$('#confirm_password').removeClass('has-sucsess').addClass('has-error');
}
if(confirm == ''){
validConfirm = false;
$('#confirm_password').removeClass('has-error').addClass('has-sucsess');
}
}
setInterval(validationconfirm , 300);
$('.signup-form').submit(function(event){
event.preventDefault();
if(validName == true && validPassword == true && validConfirm == true){
$('.signup-form').unbind('submit').submit();
}
});
$('.login-form').submit(function(event){
event.preventDefault();
if(validName == true && validPassword == true){
$('.login-form').unbind('submit').submit();
}
})
});
通过用户操作和调用取消表单提交事件
.submit()
,您可以防止name=value
按钮进入请求数据,因此阻止执行不起作用。