vendredi 22 juillet 2016

What Can I Do Instead Of Multiple If Statements? PHP Register Script

As you can see in the script below, I use multiple if statements when checking registration inputs. Is there an easier, less spaghetti?

The script works as is, but i would like it to be neater.

<?php

if (isset($_POST['register'])) {

    $uname = trim($_POST['uName']);
    $email = trim($_POST['email']);
    $pass = trim($_POST['pass']);
    $passCon = trim($_POST['passCon']);

    $uname = strip_tags($uname);
    $email = strip_tags($email);
    $pass = strip_tags($pass);
    $passCon = strip_tags($passCon);

    if (!empty($pass)) {
        if (!empty($email)) {
            if (!empty($uname)) {
                if ($pass == $passCon) {

                    $query = "SELECT username FROM users WHERE username='$uname'";
                    $result = mysqli_query($conn, $query);
                    $checkUsername = mysqli_num_rows($result);

                    if ($checkUsername == 0) {

                        $query = "SELECT email FROM users WHERE email='$email'";
                        $result = mysqli_query($conn, $query);
                        $count = mysqli_num_rows($result);

                        if ($count == 0) {

                            $password = hash('sha256', $pass);
                            $queryInsert = "INSERT INTO users(id, username, email, password, date) VALUES('', '$uname', '$email', '$password', '" . time() . "')";
                            $res = mysqli_query($conn, $queryInsert);

                            if ($res) {
                                $errTyp = "success";
                                $errMsg = "successfully registered, you may login now";
                            }
                        } else {
                            $errTyp = "warning";
                            $errMsg = "Sorry Email already in use";
                        }
                    } else {
                        $errTyp = "warning";
                        $errMsg = "Sorry Username already in use";
                    }
                } else {
                    $errTyp = "warning";
                    $errMsg = "Passwords didn't match";
                }
            } else {
                $errTyp = "warning";
                $errMsg = "You didn't enter a Username";
            }
        } else {
            $errTyp = "warning";
            $errMsg = "You didn't enter an email address";
        }
    } else {
        $errTyp = "warning";
        $errMsg = "You didn't enter a password";
    }
}

Thank you, Jay

Aucun commentaire:

Enregistrer un commentaire