Problem z formularzem ( javascript + php)

0

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'] = "";
    
    }
}
?>

2

Drugi kod też wrzuć w odpowiednie tagi, żeby to można przeczytać.
Generalnie po stronie PHP - serwera, informację o tym czy ktoś jest zalogowany czy nie trzyma się w sesji.

1 użytkowników online, w tym zalogowanych: 0, gości: 1