Mój poprzedni projekt się popsuł (chyba moja wina, zapisy się źle zrobiły, pogubiły itp.)
Było tam tyle rzeczy pominiętych, że postanowiłem zrobić drugi system rejestracji i logowania.
Ehh... Kodzik:
[<?php { $wszystko_OK = true; $login = $_POST['login']; $haslo1 = $_POST['haslo1']; $haslo2 = $_POST['haslo2']; $email = $_POST['email']; //SPRAWDZANIE LOGINU { $wszystko_OK = false; $_SESSION['e_login']="Login powinien zawierać od 3 do 20 znaków"; } { $wszystko_OK = false; $_SESSION['e_login']="Login może zawierać tylko litery i cyfry (bez polskich znaków)"; } //SPRAWDZANIE HASŁA { $wszystko_OK = false; $_SESSION['e_haslo']="Hasło powinno zawierać conajmniej 8 znaków"; } //SPRAWDZANIE DRUGIEGO HASŁA if ($haslo1!=$haslo2) { $wszystko_OK = false; $_SESSION['e_haslo2']="Podane hasła nie są takie same"; } //SPRAWDZANIE EMAILA $emailB = filter_var($email, FILTER_SANITIZE_EMAIL); if ((filter_var($emailB, FILTER_VALIDATE_EMAIL)==false) || ($emailB!=$email)) { $wszystko_OK=false; $_SESSION['e_email']="Podany adres e-mail jest niepoprawny"; } //SPRAWDZANIE CHECKBOXA { $wszystko_OK = false; $_SESSION['e_regulamin']="Aby się zarejestrować potwierdź regulamin"; } require_once "connect.php"; mysqli_report(MYSQLI_REPORT_STRICT); try { $polaczenie = new mysqli($host, $db_user, $db_password, $db_name); if($polaczenie->connect_errno!=0) { throw new Exception(mysqli_connect_errno()); } else { //CZY EMAIL JUŻ ISTNIEJE $rezultat = $polaczenie->query("SELECT id FROM uzytkownicy WHERE email='$email'"); if (!$rezultat) throw new Exception($polaczenie->error); $mails = $rezultat->num_rows; if($mails>0) { $wszystko_OK=false; $_SESSION['e_email']="E-mail jest już aktualnie w użyciu"; } //CZY LOGIN JUŻ ISTNIEJE $rezultat = $polaczenie->query("SELECT id FROM uzytkownicy WHERE user='$login'"); if (!$rezultat) throw new Exception($polaczenie->error); $logins = $rezultat->num_rows; if($logins>0) { $wszystko_OK=false; $_SESSION['e_login']="Login jest już aktualnie w użyciu"; } if ($wszystko_OK==true) { //DODAWANIE DO BAZY if ($polaczenie->query("INSERT INTO uzytkownicy VALUES (NULL, '$login', '$haslo1', '$email')")) { $_SESSION['udanarejestracja']=true; } else { throw new Exception($polaczenie->error); } } $polaczenie->close(); } } catch(Exception $e) { echo '<span style="color:red;">Przepraszamy, połączenie z serwerem aktualnie nieczynne. Prosimy o rejestrację w innym terminie.</span>'; } } ?> <!DOCTYPE HTML> <html lang="pl"> <head> <title>GRA</title> <meta charset="utf-8" /> <meta name="description" content=" " /> <meta name="keywords" content=" " /> <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1" /> <link rel="stylesheet" href="style.css" type="text/css" /> </head> <body> <div id="header">Fajna gra - rejestracja</div> <div id="page"> <font size="5"><i>Załóż darmowe konto i dołącz do społeczności!</font></i><br><br> <form method="post" /> Login:<br> <input type="text" name="login" /><br> <?php { } ?><br> Hasło:<br> <input type="password" name="haslo1" /><br> <?php { } ?><br> Powtórz hasło:<br> <input type="password" name="haslo2" /><br> <?php { } ?><br> E-mail:<br> <input type="text" name="email" /><br> <?php { } ?><br> <label><input type="checkbox" name="regulamin" /> Akceptuję</label> <a href="regulamin.php">regulamin</a><br> <?php { } ?><br> <input type="submit" name="submit" value="Zarejestruj się" /><br><br><br> <font size="5"><a href="index.php"><< LOGOWANIE <<</a></font> </div> </body> </html>
A błąd, który ciągle wyskakuje po POPRAWNEJ rejestracji to:
Przepraszamy, połączenie z serwerem aktualnie nieczynne. Prosimy o rejestrację w innym terminie.
Exception: Column count doesn't match value count at row 1 in C:\xampp\htdocs\gra\rejestracja.php:87 Stack trace: #0 {main}
Proszę o pomoc i jak to naprawić.