<!DOCTYPE html>
<html lang="pl" dir="ltr">
<head>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.2.1/jquery.min.js"></script>
</head>
<body>
<?php require("funcs.php"); sessionOn();?>
<div class="container">
<main class="main-register">
<h2 class="hidden-header">Treść strony</h2>
<section class="register-container">
<h3 class="hidden-header">Rejestracja</h3>
<form method="POST" class="register">
<div class="text-container register-login">
<input type="text" name="regUsername" id="register-login">
<label for="register-login">Login</label>
</div>
<div class="text-container register-password">
<input type="password" name="regPassword" id="register-password">
<label for="register-password">Hasło</label>
<p class="input-helper-text">Jedna duza litera, jedna cyfra i znak specialny.</p>
</div>
<div class="text-container register-Rpassword">
<input type="password" name="regRpassword" id="register-rpassword">
<label for="register-rpassword">Powtórz hasło</label>
</div>
<div class="text-container register-email">
<input type="text" name="regEmail" id="register-email">
<label for="register-email">Email</label>
</div>
<div class="checkbox-container">
<input type="checkbox" name="siteRules" id="site-rules" class="settings-checkbox">
<label for="site-rules" class="checkbox-label">Przeczytałem/am i akceptuję regulamin serwisu</label>
</div>
<div class="g-recaptcha" data-sitekey="6Lc_bkEUAAAAAInm8cJ9b7UqiHYtbd_wzaQjUDhM"></div>
<input type="submit" name="rnu" value="Zarejestruj" class="raised-button rnu">
</form>
<div class="register-image">
<p class="register-image-header">Lorem ipsum dolor sit amet.</p>
<p class="register-image-description">Lorem ipsum dolor sit amet, consectetur adipisicing elit. Culpa vitae, reiciendis iure dignissimos aspernatur nam.</p>
</div>
</section>
</main>
</div>
<script src="js/forms.js"></script>
<script src="js/mmain.js"></script>
</body>
</html>
var tfError = (function(element,message){
var input = $(element).children("input");
$(element).children('p').remove();
$(element).append('<p class="input-error-message">'+message+'</p>');
$(input).addClass("error");
});
if(isset($_POST["rnu"])){
$queryl = $connect->prepare("SELECT Nick,Email FROM users WHERE Nick=:login OR Email=:email");
$queryl->bindParam(':login',$_POST["regUsername"], PDO::PARAM_STR);
$queryl->bindParam(':email',$_POST["regEmail"], PDO::PARAM_STR);
$queryl->execute();
$llez = $queryl->fetch(PDO::FETCH_ASSOC);
$validate = true;
if(!preg_match("@^[a-zA-Z0-9!\@#$^&*()?]{3,}$@",$_POST["regUsername"])){
$validate = false;
echo '<script>$(document).ready(function(){$("#register-login").parent().addClass("error");$("#register-login").parent().append(\'<p class="input-error-message">Login musi zawierać minimum 3 znaki</p>\');});</script>';
}elseif($llez["Nick"]==$_POST["regUsername"]){
$validate = false;
echo '<script>$(document).ready(function(){$("#register-login").parent().addClass("error");$("#register-login").parent().append(\'<p class="input-error-message">Login zajęty</p>\');});</script>';
}
if(!preg_match("@^(?=.*\d)(?=.*[a-z])(?=.*[\!\@\#\$\%\^\&\*\(\)\_\+\-\=])(?=.*[A-Z])(?!.*\s).{5,}$@",$_POST["regPassword"])){
$validate = false;
echo '<script>$(document).ready(function(){$("#register-password").parent().addClass("error");$("#register-password").parent().append(\'<p class="input-error-message">Nie prawidłowe hasło</p>\');});</script>';
}elseif($_POST["regPassword"] != $_POST["regRpassword"]){
$validate = false;
echo '<script>$(document).ready(function(){$("#register-rpassword").parent().addClass("error");$("#register-rpassword").parent().append(\'<p class="input-error-message">Hasła nie są identyczne</p>\');});</script>';
}
if(!preg_match("#^[_a-z0-9-]+(\.[_a-z0-9-]+)*@[a-z0-9-]+(\.[a-z0-9-]+)+$#",$_POST["regEmail"])){
$validate = false;
echo '<script>$(document).ready(function(){$("#register-email").parent().addClass("error");$("#register-email").parent().append(\'<p class="input-error-message">Nie prawidłowy email</p>\');});</script>';
}elseif($llez["Email"]==$_POST["regEmail"]){
$validate = false;
echo '<script>$(document).ready(function(){$("#register-email").parent().addClass("error");$("#register-email").parent().append(\'<p class="input-error-message">Email zajęty</p>\');});</script>';
}
if(empty($_POST["siteRules"])){
$validate = false;
echo '<script>$(document).ready(function(){$("#site-rules ~ label").css({"color":"#FF6E6E"});});</script>';
}
$check = file_get_contents('https://www.google.com/recaptcha/api/siteverify?secret=6Lc_bkEUAAAAADty11HTQuqdwi6Hhe6dYpXMZ0zl&response='.$_POST["g-recaptcha-response"]);
if(!json_decode($check)->success){
$validate = false;
echo '<script>$(document).ready(function(){$(".g-recaptcha").after(\'<p class="error-message">Potwierdź, że nie jesteś botem</p>\')});</script>';
}
if($validate == true){
$characters = 'abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789';
$rand = '';
for($i=1;$i<=30;$i++){
$rand .= $characters[mt_rand(0, strlen($characters)-1)];
}
$query = $connect->prepare("INSERT INTO users VALUES(NULL,:username,:password,:email,'User','$rand',0)");
$query->bindParam(':username',$_POST["regUsername"], PDO::PARAM_STR);
$query->bindParam(':password',password_hash($_POST["regPassword"],PASSWORD_DEFAULT), PDO::PARAM_STR);
$query->bindParam(':email',$_POST["regEmail"], PDO::PARAM_STR);
$query->execute();
}
}
Wiekszosc kodu usunieta w celu czytelnosci, chodzi mi glownie o zoptymalizowanie wyswietlania tych bledow, w tym celu chce uzyc funkcji js w phpowym echo. Domyslam sie ze problem tkwi w umieszczeniu <script> przed zakonczeniem body i z $(document).ready() ale nawet jesli to poprawie mi nie dziala.