I want to submit data using this simple form using php and html. My database table is called users with the following attributes:
usersId
usersName,
usersEmail,
usersUid,
usersPwd
After filing the form , it seems to not have any error but it does not send the data to the database.
functions.inc.php
<?php
function emptyInputSignup($name,$email,$username,$pwd,$pwdRepeat) {
$result;
if (empty($name) || empty($email) || empty($username) || empty($pwd) || empty($pwdRepeat)) {
$result = true;
} else {
$result = false;
}
return $result;
}
function invalidUid($username) {
$result;
if (preg_match('/^[a-z]((?!__)[a-z\d_])+[a-z\d]$/i', $username)) {
$result = true;
} else {
$result = false;
}
return $result;
}
function invalidEmail($email) {
$result;
if (!filter_var($email, FILTER_VALIDATE_EMAIL)) {
$result = true;
} else {
$result = false;
}
return $result;
}
function pwdMatch($pwd, $pwdRepeat) {
$result;
if ($pwd !== $pwdRepeat) {
$result = true;
} else {
$result = false;
}
return $result;
}
function uidExists($conn, $username, $email) {
$sql = "SELECT * FROM users WHERE usersUid = ? OR usersEmail = ?;";
$stmt = mysqli_stmt_init($conn);
if (!mysqli_stmt_prepare($stmt, $sql)) {
header("location: ../signup.php?error=stmtfailed");
exit();
}
mysqli_stmt_bind_param($stmt, "ss", $username, $email);
mysqli_stmt_execute($stmt);
$resultData = mysqli_stmt_get_result($stmt);
if ($row = mysqli_fetch_assoc($resultData)) {
return $row;
} else {
$result = false;
return $result;
}
mysqli_stmt_close($stmt);
}
function createUser($conn, $name, $email, $username, $pwd) {
$sql = "INSERT INTO users (usersName, usersEmail, usersUid, usersPwd) VALUES (?, ?, ?, ?);";
$stmt = mysqli_stmt_init($conn);
if (!mysqli_stmt_prepare($stmt, $sql)) {
header("location: ../signup.php?error=stmtfailed");
exit();
}
$hashedpwd = password_hash($pwd, PASSWORD_DEFAULT);
mysqli_stmt_bind_param($stmt, "ssss", $name, $email, $username, $hashedpwd);
mysqli_stmt_execute($stmt);
mysqli_stmt_close($stmt);
header("location: ../signup.php?error=none");
exit();
}
signup.inc.php
<?php
if (isset($_POST["submit"])){
$name = $_POST["name"];
$email = $_POST["email"];
$username = $_POST["uid"];
$pwd = $_POST["pwd"];
$pwdRepeat = $_POST["pwdrepeat"];
require_once 'dbh.inc.php';
require_once 'functions.inc.php';
if(emptyInputSignup($name,$email,$username,$pwd,$pwdRepeat) !== false){
header("location: ../signup.php?error=emptyinput");
exit();
}
if(invalidUid($username) !== false){
header("location: ../signup.php?error=invaliduid");
exit();
}
if(invalidEmail($email) !== false){
header("location: ../signup.php?error=invalidemail");
exit();
}
if(pwdMatch($pwd, $pwdRepeat) !== false){
header("location: ../signup.php?error=pwddontmatch");
exit();
}
if(uidExists($conn, $username, $email) !== false){
header("location: ../signup.php?error=usernametaken");
exit();
}
createUser($conn, $name, $email, $username, $pwd);
}
else {
header("location:../signup.php?error=none");
exit();
}