Zaczynam zabawę z PHP I HTML. I moje zadanie to stworzyć stronę.
Więc postanowiłem zrobić stronę banku. Dużą część już zrobiłem formularz bazę danych, formularz logowania,stronę główna,rejestrację.. I tutaj mam problem przy formularzu rejestracji nowego użytkownika.
Mianowicie nie działa mi sprawdzenie poprawności numeru pesel.
Co dziwne zrobiłem sprawdzenie czy dany login jest w bazie danych i to działa mi prawidłowo.. A przy sprawdzeniu Peselu coś nie działa i nie widzę w czym jest problem.
Proszę o pomoc i wytłumaczenie "łopatologiczne" co zrobiłem nie tak

Tutaj jest mój cały kod pliku rejestracja.php
CODE
<?php
// Załaduj config.php
require_once "config.php";
// Zdefiniuj zmienne i zainicjuj z pustymi wartościami
$username = $password = $confirm_password = $imie = $nazwisko = $PESEL = $Adres = $KODP = $email = $potwierdz_email = "";
$username_err = $password_err = $confirm_password_err = $imie_err = $nazwisko_err = $PESEL_err = $Adres_err = $KODP_err = $email_err = $potwierdz_email_err = "";
// Przetwarzanie danych formularza po przesłaniu formularza
if($_SERVER["REQUEST_METHOD"] == "POST"){
// Sprawdź pole login, czy jest puste
if(empty(trim($_POST["username"]))){
$username_err = "<br>"."Wpisz swój login.";
} else{
// Przygotuj zapytanie "Select"
$sql = "SELECT id FROM users WHERE username = ?";
if($stmt = mysqli_prepare($link, $sql)){
// Powiąż zmienne z przygotowaną instrukcją jako parametry
mysqli_stmt_bind_param($stmt, "s", $param_username);
// Ustaw parametry
$param_username = trim($_POST["username"]);
// Spróbuj wykonać przygotowaną instrukcję
if(mysqli_stmt_execute($stmt)){
/* zapisz wynik */
mysqli_stmt_store_result($stmt);
if(mysqli_stmt_num_rows($stmt) == 1){
$username_err = "<br>"."Taki login już istnieje!";
} else{
$username = trim($_POST["username"]);
}
} else{
echo "<br>"."Oops! Coś poszło nie tak, spróbuj ponownie później";
}
// Zakończ powyższe działania
mysqli_stmt_close($stmt);
}
}
// Potwierdź hasło
if(empty(trim($_POST["password"]))){
$password_err = "<br>"."Wpisz hasło.";
} elseif(strlen(trim($_POST["password"])) < 6){
$password_err = "<br>"."Hasło musi zawierać więcej niż 6 znaków";
} else{
$password = trim($_POST["password"]);
}
//
if(empty(trim($_POST["confirm_password"]))){
$confirm_password_err = "<br>"."Potwierdź hasło.";
} else{
$confirm_password = trim($_POST["confirm_password"]);
if(empty($password_err) && ($password != $confirm_password)){
$confirm_password_err = "<br>"."Hasło się nie zgadza.";
}
}
//
if(empty(trim($_POST["imie"]))){
$imie_err = "<br>"."Wpisz imię.";
} elseif(strlen(trim($_POST["imie"])) < 3){
$imie_err = "<br>"."Imię powinno posiadać co najmniej 3 znaki";
} else{
$imie = trim($_POST["imie"]);
}
//
if(empty(trim($_POST["nazwisko"]))){
$nazwisko_err = "<br>"."Wpisz nazwisko.";
} elseif(strlen(trim($_POST["nazwisko"])) < 2){
$nazwisko_err = "<br>"."Nazwisko powinno posiadać co najmniej 2 znaki";
} else{
$nazwisko = trim($_POST["nazwisko"]);
}
//
if(empty(trim($_POST["PESEL"]))){
$PESEL_err = "<br>"."Wpisz numer PESEL.";
} elseif(preg_match('/^[0-9]{11}$/', $_POST["PESEL"])){
$PESEL_err = "<br>"."PESEL musi posiadać 11 cyfr";
} else{
$PESEL = trim($_POST["PESEL"]);
}
// Sprawdź błędy przed wstawieniem do bazy danych
if(empty($username_err) && empty($password_err) && empty($confirm_password_err) && empty($imie_err) && empty($nazwisko_err) && empty($PESEL_err)){
// Przygotuj zapytanie wstawiania do tabeli w bazie danych
$sql = "INSERT INTO users (username, password, imie, nazwisko, pesel) VALUES (?, ?, ?, ?, ?)";
if($stmt = mysqli_prepare($link, $sql)){
// Powiąż zmienne z przygotowaną instrukcją jako parametry
mysqli_stmt_bind_param($stmt, "sssss", $param_username, $param_password, $param_imie, $param_nazwisko, $param_PESEL);
// Ustaw parametry
$param_username = $username;
$param_password = password_hash($password, PASSWORD_DEFAULT); // Haszowanie hasła
$param_imie = $imie;
$param_nazwisko = $nazwisko;
$param_PESEL = $PESEL;
// Spróbuj wykonać przygotowaną instrukcję
if(mysqli_stmt_execute($stmt)){
// Przekieruj do logowanie.php
header("location: logowanie.php");
} else{
echo "Something went wrong. Please try again later.";
}
// Zakończ powyższe działania
mysqli_stmt_close($stmt);
}
}
// Zakończ połączenie
mysqli_close($link);
}
?>
<!DOCTYPE HTML>
<html lang="pl">
<head>
<meta charset="utf-8" />
<title>Bank IENGIE!</title>
<meta name="description" content="Strona banku IENGIE. Rafał & Sławomir Company" />
<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1" />
<link rel="stylesheet" href="style.css" type="text/css" />
<link href='<link rel="preconnect" href="https://fonts.gstatic.com"><link href="https://fonts.googleapis.com/css2?family=Nerko+One&display=swap" rel="stylesheet"> rel='stylesheet' type='text/css'>
</head>
<body>
<div id="container">
<div id="logo">
Codzienne Bankowanie z IENGIE!
</div>
<div id="menu">
<div class="option"><a href="logowanie.php">Logowanie<a/></div>
<div class="option"><a href="rejestracja.php">Rejestracja</a></div>
<div class="option">O nas!</div>
<div class="option">Kontakt</div>
<div style="clear:both;"></div>
</div>
<div id="topbar">
<div id="topbarL">
<img src="lnux.png" />
</div>
<div id="topbarR">
<span class="bigtitle">Słów kilka</span>
<div style="height: 15px;"></div>
Posiadanie pieniędzy polega na niewydawaniu ich.
</div>
<div style="clear:both;"></div>
</div>
<div id="sidebar">
<div class="optionL"><a href="index.php">Strona główna</a></div>
<div class="optionL"><a href="logowanie.php">Logowanie</a></div>
<div class="optionL"><a href="rejestracja.php">Rejestracja</a></div>
<div class="optionL">O nas</div>
<div class="optionL">Kontakt</div>
</div>
<div id="content">
<span class="bigtitle">Dlaczego bank IENGIE?</span>
<div class="dottedline"></div>
<div class="wrapper">
<h2>Zarejestruj się</h2>
<p>Uzupełnij dane logowania.</p>
<form action="<?php echo htmlspecialchars($_SERVER["PHP_SELF"]); ?>" method="post">
<div class="form-group <?php echo (!empty($username_err)) ? 'has-error' : ''; ?>">
<label>Login</label>
<input type="text" name="username" class="form-control" value="<?php echo $username; ?>">
<span class="help-block"><?php echo $username_err; ?></span>
</div>
<div class="form-group <?php echo (!empty($password_err)) ? 'has-error' : ''; ?>">
<label>Hasło</label>
<input type="password" name="password" class="form-control" value="<?php echo $password; ?>">
<span class="help-block"><?php echo $password_err; ?></span>
</div>
<div class="form-group <?php echo (!empty($confirm_password_err)) ? 'has-error' : ''; ?>">
<label>Powtórz hasło</label>
<input type="password" name="confirm_password" class="form-control" value="<?php echo $confirm_password; ?>">
<span class="help-block"><?php echo $confirm_password_err; ?></span>
</div>
<div class="form-group <?php echo (!empty($imie_err)) ? 'has-error' : ''; ?>">
<label>Imię</label>
<input type="text" name="imie" class="form-control" value="<?php echo $imie; ?>">
<span class="help-block"><?php echo $imie_err; ?></span>
</div>
<div class="form-group <?php echo (!empty($nazwisko_err)) ? 'has-error' : ''; ?>">
<label>Nazwisko</label>
<input type="text" name="nazwisko" class="form-control" value="<?php echo $nazwisko; ?>">
<span class="help-block"><?php echo $nazwisko_err; ?></span>
</div>
<div class="form-group <?php echo (!empty($PESEL_err)) ? 'has-error' : ''; ?>">
<label>PESEL</label>
<input type="text" name="PESEL" class="form-control" value="<?php echo $PESEL; ?>">
<span class="help-block"><?php echo $PESEL_err; ?></span>
</div>
<div class="form-group">
<input type="submit" class="btn btn-primary" value="Submit">
<input type="reset" class="btn btn-default" value="Reset">
</div>
<p>Masz już konto? <a href="logowanie.php">Zaloguj się</a>.</p>
</form>
</div>
</div>
<div id="footer">
Właściciele: © Wszelkie prawa zastrzeżone
</div>
</div>
</body>
</html>
// Załaduj config.php
require_once "config.php";
// Zdefiniuj zmienne i zainicjuj z pustymi wartościami
$username = $password = $confirm_password = $imie = $nazwisko = $PESEL = $Adres = $KODP = $email = $potwierdz_email = "";
$username_err = $password_err = $confirm_password_err = $imie_err = $nazwisko_err = $PESEL_err = $Adres_err = $KODP_err = $email_err = $potwierdz_email_err = "";
// Przetwarzanie danych formularza po przesłaniu formularza
if($_SERVER["REQUEST_METHOD"] == "POST"){
// Sprawdź pole login, czy jest puste
if(empty(trim($_POST["username"]))){
$username_err = "<br>"."Wpisz swój login.";
} else{
// Przygotuj zapytanie "Select"
$sql = "SELECT id FROM users WHERE username = ?";
if($stmt = mysqli_prepare($link, $sql)){
// Powiąż zmienne z przygotowaną instrukcją jako parametry
mysqli_stmt_bind_param($stmt, "s", $param_username);
// Ustaw parametry
$param_username = trim($_POST["username"]);
// Spróbuj wykonać przygotowaną instrukcję
if(mysqli_stmt_execute($stmt)){
/* zapisz wynik */
mysqli_stmt_store_result($stmt);
if(mysqli_stmt_num_rows($stmt) == 1){
$username_err = "<br>"."Taki login już istnieje!";
} else{
$username = trim($_POST["username"]);
}
} else{
echo "<br>"."Oops! Coś poszło nie tak, spróbuj ponownie później";
}
// Zakończ powyższe działania
mysqli_stmt_close($stmt);
}
}
// Potwierdź hasło
if(empty(trim($_POST["password"]))){
$password_err = "<br>"."Wpisz hasło.";
} elseif(strlen(trim($_POST["password"])) < 6){
$password_err = "<br>"."Hasło musi zawierać więcej niż 6 znaków";
} else{
$password = trim($_POST["password"]);
}
//
if(empty(trim($_POST["confirm_password"]))){
$confirm_password_err = "<br>"."Potwierdź hasło.";
} else{
$confirm_password = trim($_POST["confirm_password"]);
if(empty($password_err) && ($password != $confirm_password)){
$confirm_password_err = "<br>"."Hasło się nie zgadza.";
}
}
//
if(empty(trim($_POST["imie"]))){
$imie_err = "<br>"."Wpisz imię.";
} elseif(strlen(trim($_POST["imie"])) < 3){
$imie_err = "<br>"."Imię powinno posiadać co najmniej 3 znaki";
} else{
$imie = trim($_POST["imie"]);
}
//
if(empty(trim($_POST["nazwisko"]))){
$nazwisko_err = "<br>"."Wpisz nazwisko.";
} elseif(strlen(trim($_POST["nazwisko"])) < 2){
$nazwisko_err = "<br>"."Nazwisko powinno posiadać co najmniej 2 znaki";
} else{
$nazwisko = trim($_POST["nazwisko"]);
}
//
if(empty(trim($_POST["PESEL"]))){
$PESEL_err = "<br>"."Wpisz numer PESEL.";
} elseif(preg_match('/^[0-9]{11}$/', $_POST["PESEL"])){
$PESEL_err = "<br>"."PESEL musi posiadać 11 cyfr";
} else{
$PESEL = trim($_POST["PESEL"]);
}
// Sprawdź błędy przed wstawieniem do bazy danych
if(empty($username_err) && empty($password_err) && empty($confirm_password_err) && empty($imie_err) && empty($nazwisko_err) && empty($PESEL_err)){
// Przygotuj zapytanie wstawiania do tabeli w bazie danych
$sql = "INSERT INTO users (username, password, imie, nazwisko, pesel) VALUES (?, ?, ?, ?, ?)";
if($stmt = mysqli_prepare($link, $sql)){
// Powiąż zmienne z przygotowaną instrukcją jako parametry
mysqli_stmt_bind_param($stmt, "sssss", $param_username, $param_password, $param_imie, $param_nazwisko, $param_PESEL);
// Ustaw parametry
$param_username = $username;
$param_password = password_hash($password, PASSWORD_DEFAULT); // Haszowanie hasła
$param_imie = $imie;
$param_nazwisko = $nazwisko;
$param_PESEL = $PESEL;
// Spróbuj wykonać przygotowaną instrukcję
if(mysqli_stmt_execute($stmt)){
// Przekieruj do logowanie.php
header("location: logowanie.php");
} else{
echo "Something went wrong. Please try again later.";
}
// Zakończ powyższe działania
mysqli_stmt_close($stmt);
}
}
// Zakończ połączenie
mysqli_close($link);
}
?>
<!DOCTYPE HTML>
<html lang="pl">
<head>
<meta charset="utf-8" />
<title>Bank IENGIE!</title>
<meta name="description" content="Strona banku IENGIE. Rafał & Sławomir Company" />
<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1" />
<link rel="stylesheet" href="style.css" type="text/css" />
<link href='<link rel="preconnect" href="https://fonts.gstatic.com"><link href="https://fonts.googleapis.com/css2?family=Nerko+One&display=swap" rel="stylesheet"> rel='stylesheet' type='text/css'>
</head>
<body>
<div id="container">
<div id="logo">
Codzienne Bankowanie z IENGIE!
</div>
<div id="menu">
<div class="option"><a href="logowanie.php">Logowanie<a/></div>
<div class="option"><a href="rejestracja.php">Rejestracja</a></div>
<div class="option">O nas!</div>
<div class="option">Kontakt</div>
<div style="clear:both;"></div>
</div>
<div id="topbar">
<div id="topbarL">
<img src="lnux.png" />
</div>
<div id="topbarR">
<span class="bigtitle">Słów kilka</span>
<div style="height: 15px;"></div>
Posiadanie pieniędzy polega na niewydawaniu ich.
</div>
<div style="clear:both;"></div>
</div>
<div id="sidebar">
<div class="optionL"><a href="index.php">Strona główna</a></div>
<div class="optionL"><a href="logowanie.php">Logowanie</a></div>
<div class="optionL"><a href="rejestracja.php">Rejestracja</a></div>
<div class="optionL">O nas</div>
<div class="optionL">Kontakt</div>
</div>
<div id="content">
<span class="bigtitle">Dlaczego bank IENGIE?</span>
<div class="dottedline"></div>
<div class="wrapper">
<h2>Zarejestruj się</h2>
<p>Uzupełnij dane logowania.</p>
<form action="<?php echo htmlspecialchars($_SERVER["PHP_SELF"]); ?>" method="post">
<div class="form-group <?php echo (!empty($username_err)) ? 'has-error' : ''; ?>">
<label>Login</label>
<input type="text" name="username" class="form-control" value="<?php echo $username; ?>">
<span class="help-block"><?php echo $username_err; ?></span>
</div>
<div class="form-group <?php echo (!empty($password_err)) ? 'has-error' : ''; ?>">
<label>Hasło</label>
<input type="password" name="password" class="form-control" value="<?php echo $password; ?>">
<span class="help-block"><?php echo $password_err; ?></span>
</div>
<div class="form-group <?php echo (!empty($confirm_password_err)) ? 'has-error' : ''; ?>">
<label>Powtórz hasło</label>
<input type="password" name="confirm_password" class="form-control" value="<?php echo $confirm_password; ?>">
<span class="help-block"><?php echo $confirm_password_err; ?></span>
</div>
<div class="form-group <?php echo (!empty($imie_err)) ? 'has-error' : ''; ?>">
<label>Imię</label>
<input type="text" name="imie" class="form-control" value="<?php echo $imie; ?>">
<span class="help-block"><?php echo $imie_err; ?></span>
</div>
<div class="form-group <?php echo (!empty($nazwisko_err)) ? 'has-error' : ''; ?>">
<label>Nazwisko</label>
<input type="text" name="nazwisko" class="form-control" value="<?php echo $nazwisko; ?>">
<span class="help-block"><?php echo $nazwisko_err; ?></span>
</div>
<div class="form-group <?php echo (!empty($PESEL_err)) ? 'has-error' : ''; ?>">
<label>PESEL</label>
<input type="text" name="PESEL" class="form-control" value="<?php echo $PESEL; ?>">
<span class="help-block"><?php echo $PESEL_err; ?></span>
</div>
<div class="form-group">
<input type="submit" class="btn btn-primary" value="Submit">
<input type="reset" class="btn btn-default" value="Reset">
</div>
<p>Masz już konto? <a href="logowanie.php">Zaloguj się</a>.</p>
</form>
</div>
</div>
<div id="footer">
Właściciele: © Wszelkie prawa zastrzeżone
</div>
</div>
</body>
</html>