Mam problem z walidacją w formularzu ponieważ gdy uzytkownik wprowadzi nieporpawne dane i nie przejdzie walidajcji to cofa go do logowania. Logowanie i rejestracja jest zrobione w jednym pliku i przełączane za pomocą javascriptu.
const sign_in_btn = document.querySelector("#sign-in-btn");
const sign_up_btn = document.querySelector("#sign-up-btn");
const container = document.querySelector(".container");
sign_up_btn.addEventListener("click", () => {
container.classList.add("sign-up-mode");
});
sign_in_btn.addEventListener("click", () => {
container.classList.remove("sign-up-mode");
});
Wiem że trzeba zrobić coś w tym stylu żeby to naprawić
<?php
if(isset($_POST['register_button'])) {
echo '
<script>
$(document).ready(function() {
container.classList.add("sign-up-mode");
});
</script>
';
}
?>
<?php
require 'config/config.php';
require 'includes/form_handlers/register_handler.php';
require 'includes/form_handlers/login_handler.php';
?>
<!DOCTYPE html>
<html lang="pl">
<head>
<meta charset="UTF-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<script
src="https://kit.fontawesome.com/64d58efce2.js"
crossorigin="anonymous"
></script>
<link rel="stylesheet" href="assets/css/style.css" />
<title>Pomoku-App</title>
</head>
<body>
<?php
if(isset($_POST['register_button'])) {
echo '
<script>
$(document).ready(function() {
container.classList.add("sign-up-mode");
});
</script>
';
}
?>
<div class="container">
<div class="forms-container">
<div class="signin-signup">
<!-- Logowanie -->
<form action="register.php" class="sign-in-form" method="POST">
<h2 class="title">Logowanie</h2>
<div class="input-field">
<i class="fas fa-user"></i>
<input type="email" name="log_email" placeholder="Adres Email" value="<?php if(isset($_SESSION['log_email'])){ echo $_SESSION['log_email']; } ?>"/>
</div>
<div class="input-field">
<i class="fas fa-lock"></i>
<input type="password" name="log_password" placeholder="Hasło" />
</div>
<?php if(in_array("Email lub hasło są niepoprawne.<br>", $error_array)) echo "Email lub hasło są niepoprawne.<br>"; ?>
<input type="submit" name="login_button" value="Zaloguj się" class="btn solid" />
<p class="social-text">Lub zaloguj się za pomocą platform</p>
<div class="social-media">
<a href="#" class="social-icon">
<i class="fab fa-facebook-f"></i>
</a>
<a href="#" class="social-icon">
<i class="fab fa-twitter"></i>
</a>
<a href="#" class="social-icon">
<i class="fab fa-google"></i>
</a>
<a href="#" class="social-icon">
<i class="fab fa-linkedin-in"></i>
</a>
</div>
</form>
<!-- Rejestracja -->
<form action="register.php" class="sign-up-form" method="POST">
<h2 class="title">Rejestracja</h2>
<div class="input_box">
<div class="input-field2">
<i class="fas fa-user"></i>
<input type="text" name="reg_fname" placeholder="Imię" value="<?php if(isset($_SESSION['reg_fname'])){ echo $_SESSION['reg_fname']; } ?>" require/>
</div>
<div class="input-field2" style="margin-left: 4%;">
<i class="fas fa-user"></i>
<input type="text" name="reg_lname" placeholder="Nazwisko" value="<?php if(isset($_SESSION['reg_lname'])){ echo $_SESSION['reg_lname']; } ?>" require/>
</div>
</div>
<?php if(in_array("Twoje imię musi zawierać od 3 do 25 znaków.<br>", $error_array)) echo "Twoje imię musi zawierać od 3 do 25 znaków.<br>";
else if(in_array("Twoje nazwisko musi zawierać od 3 do 25 znaków.<br>", $error_array)) echo "Twoje nazwisko musi zawierać od 3 do 25 znaków.<br>"; ?>
<div class="input-field">
<i class="fas fa-envelope"></i>
<input type="email" name="reg_email" placeholder="Email" value="<?php if(isset($_SESSION['reg_email'])){ echo $_SESSION['reg_email']; } ?>" require/>
</div>
<div class="input-field">
<i class="fas fa-envelope"></i>
<input type="email" name="reg_email2" placeholder="Powtórz Email" value="<?php if(isset($_SESSION['reg_email2'])){ echo $_SESSION['reg_email2']; } ?>" require/>
</div>
<?php if(in_array("Taki email już istnieje.<br>", $error_array)) echo "Taki email już istnieje.<br>";
else if(in_array("Niepoprawny email.<br>", $error_array)) echo "Niepoprawny email.<br>";
else if(in_array("Adresy email nie są takie same.<br>", $error_array)) echo "Adresy email nie są takie same.<br>"; ?>
<div class="input_box">
<div class="input-field2">
<i class="fas fa-lock"></i>
<input type="password" name="reg_password" placeholder="Hasło" require/>
</div>
<div class="input-field2" style="margin-left: 4%; grid-template-columns: 23.5% 76.5%;">
<i class="fas fa-lock"></i>
<input type="password" name="reg_password2" placeholder="Powtórz Hasło" require/>
</div>
</div>
<?php if(in_array("Wpisane hasła nie są takie same.<br>", $error_array)) echo "Wpisane hasła nie są takie same.<br>";
else if(in_array("Twoje hasło musi zawierać od 5 do 25 znaków.<br>", $error_array)) echo "Twoje hasło musi zawierać od 5 do 25 znaków.<br>"; ?>
<?php if(in_array("<span style='color: #14C800;'>Stworzyłeś konto! Teraz możesz się zalogować.</span><br>", $error_array)) echo "<span style='color: #14C800;'>Stworzyłeś konto! Teraz możesz się zalogować.</span><br>"; ?>
<input type="submit" name="register_button" class="btn" value="Stwórz konto" />
<p class="social-text">Lub zarejestruj się za pomocą platform</p>
<div class="social-media">
<a href="#" class="social-icon">
<i class="fab fa-facebook-f"></i>
</a>
<a href="#" class="social-icon">
<i class="fab fa-twitter"></i>
</a>
<a href="#" class="social-icon">
<i class="fab fa-google"></i>
</a>
<a href="#" class="social-icon">
<i class="fab fa-linkedin-in"></i>
</a>
</div>
</form>
</div>
</div>
<div class="panels-container">
<div class="panel left-panel">
<div class="content">
<h3>Nowy tutaj ?</h3>
<p>
Załóż je w tej chwili aby uzyskać dostęp do naszej platformy
</p>
<button class="btn transparent" id="sign-up-btn">
Stwórz konto
</button>
</div>
<img src="assets/images/img/log.svg" class="image" alt="" />
</div>
<div class="panel right-panel">
<div class="content">
<h3>Jeden z nas ?</h3>
<p>
Zaloguj się aby dalej korzystać z naszej platformy
</p>
<button class="btn transparent" id="sign-in-btn">
Zaloguj się
</button>
</div>
<img src="assets/images/img/register.svg" class="image" alt="" />
</div>
</div>
</div>
<script src="assets/js/app.js"></script>
</body>
</html>
<?php
//Deklarowanie zmiennych w celu uniknięcia błędów
$fname = ""; //Imię
$lname = ""; //Nazwisko
$em = ""; //Email
$em2 = ""; //Email2
$password = ""; //Hasło
$password2 = ""; //Hasło2
$date = ""; //Data rejestracji
$error_array = array(); //Przechowuje komunikaty o błędach
if(isset($_POST['register_button'])) {
//Wartości formularza rejestracyjnego
//Imię
$fname = strip_tags($_POST['reg_fname']); //Usuwanie znaków HTML
$fname = str_replace(' ', '', $fname); //Usuwanie spacji
$fname = ucfirst(strtolower($fname)); //Wielka liter
$_SESSION['reg_fname'] = $fname; //Wgrywanie zmiennej imię do sesji
//Nazwisko
$lname = strip_tags($_POST['reg_lname']); //Usuwanie znaków HTML
$lname = str_replace(' ', '', $lname); //Usuwanie spacji
$lname = ucfirst(strtolower($lname)); //Wielka liter
$_SESSION['reg_lname'] = $lname; //Wgrywanie zmiennej nazwisko do sesji
//Email
$em = strip_tags($_POST['reg_email']); //Usuwanie znaków HTML
$em = str_replace(' ', '', $em); //Usuwanie spacji
$_SESSION['reg_email'] = $em; //Wgrywanie zmiennej email do sesji
//Email2
$em2 = strip_tags($_POST['reg_email2']); //Usuwanie znaków HTML
$em2 = str_replace(' ', '', $em2); //Usuwanie spacji
$_SESSION['reg_email2'] = $em2; //Wgrywanie zmiennej email2 do sesji
//Hasło
$password = strip_tags($_POST['reg_password']); //Usuwanie znaków HTML
$password2 = strip_tags($_POST['reg_password2']); //Usuwanie znaków HTML
$date = date("Y-m-d"); //Aktualna data
if($em == $em2) {
//Sprawdzanie maila
if(filter_var($em, FILTER_VALIDATE_EMAIL)) {
$em = filter_var($em, FILTER_VALIDATE_EMAIL);
//Sprawdzanie czy email istnieje
$e_check = mysqli_query($con, "SELECT email FROM users WHERE email='$em'");
//Liczy liczbę zwróconych wierszy
$num_rows = mysqli_num_rows($e_check);
if($num_rows > 0) {
array_push($error_array,"Taki email już istnieje.<br>");
}
}else {
array_push($error_array,"Niepoprawny email.<br>");
}
}else {
array_push($error_array,"Adresy email nie są takie same.<br>");
}
if(strlen($fname) > 25 || strlen($fname) < 3) {
array_push($error_array,"Twoje imię musi zawierać od 3 do 25 znaków.<br>");
}
if(strlen($lname) > 25 || strlen($lname) < 3) {
array_push($error_array,"Twoje nazwisko musi zawierać od 3 do 25 znaków.<br>");
}
if($password != $password2) {
array_push($error_array,"Wpisane hasła nie są takie same.<br>");
}else {
if(strlen($password) > 25 || strlen($password) < 5) {
array_push($error_array,"Twoje hasło musi zawierać od 5 do 25 znaków.<br>");
}
}
if(empty($error_array)) {
$password = sha1($password); //Szyfrowanie hasła przed wysłaniem do bazy danych
//Generowanie nazwy użytkownika
$username = strtolower($fname . "_" . $lname);
$check_username_query = mysqli_query($con, "SELECT username FROM users WHERE username='$username'");
$i = 0;
//Jeżeli nazwa istnieje dodaj liczbę
while(mysqli_num_rows($check_username_query) != 0) {
$i++;
$username = $username . "_" . $i;
$check_username_query = mysqli_query($con, "SELECT username FROM users WHERE username='$username'");
}
//Przypisywanie zdjęcia profilowego
$rand = rand(1,2);
if($rand == 1)
$profile_pic = "assets/images/profile_pics/defults/head_deep_blue.png";
else if($rand == 2)
$profile_pic = "assets/images/profile_pics/defults/head_emerald.png";
$query = mysqli_query($con, "INSERT INTO users VALUES ('', '$fname', '$lname', '$username', '$em', '$password', '$date', '$profile_pic', '0', '0', 'no', ',')");
array_push($error_array, "<span style='color: #14C800;'>Stworzyłeś konto! Teraz możesz się zalogować.</span><br>");
//Czyszczenie sesji
$_SESSION['reg_fname'] = "";
$_SESSION['reg_lname'] = "";
$_SESSION['reg_email'] = "";
$_SESSION['reg_email2'] = "";
}
}
?>