Nie moge sprawdzić, czy użytkownik istnieje.

0

Witam, nie wiem czy mój sposób jest dobry jak sprawdzic czy dany użytwkonik istnieje, myślę, że cały kod jest dobry (zły format emaily, powtórzone hasło itd działa normalnie).
Więc tak to wygląda:

[...]
        $username = $_POST['uid'];
    $email = $_POST['mail'];
    $password = $_POST['pwd'];
    $passwordRepeat = $_POST['pwd-repeat'];
    $usernameExist = mysqli_query("SELECT * FROM users WHERE uidUsers='$username'", MYSQLI_USE_RESULT);
[...]
        else if ($username == $usernameExist) {
        header("Location: ../signup.php?error=invalidusername");
        exit();
    }

Nawet gdy nazwa jest zajęta, użytkownik dalej się rejestruje.
screenshot-20190818180355.png

1

Return Values
Returns FALSE on failure. For successful SELECT, SHOW, DESCRIBE or EXPLAIN queries mysqli_query() will return a mysqli_result object. For other successful queries mysqli_query() will return TRUE.

A wynik porównujesz ze stringiem zawierającym nazwę juzera.

1

Średnio zczaiłem tą dokumentacje na temat mysqli_query(). Szukałem i szukałem, bo zrozumieć nie mogłem co mam zrobić i znalazłem coś takiego:

$sql_u = "SELECT * FROM users WHERE uidUsers='$username'";
$res_u = mysqli_query($conn, $sql_u);
[...]
else if (mysqli_num_rows($res_u)>0) {
        header("Location: ../signup.php?error=invalidusername");
        exit();
}

I gitara działa, może komuś się przyda (pewnie nie).

1

Generalnie zamiast SELECTa na wszystkich polach lepiej byłoby zrobić COUNTa, no i oznaczyć w bazie pole uidUsers jako UNIQUE.

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