I've been stuck on this for quite a while and I can't seem to find another answer that matches my situation.
In my User Class:
public function register($uFirstName,$uLastName,$uCompany,$uEmail,$uPassword,$uAccess)
{
try
{
$newPassword = password_hash($uPassword, PASSWORD_DEFAULT);
$stmt = $this->db->prepare("INSERT INTO users(FirstName,LastName,Company,Email,Password,Access) VALUES (:uFirstName,uLastName,uCompany,uEmail,uPassword,uAccess)");
$stmt->bindparam("uFirstName", $uFirstName);
$stmt->bindparam("uLastName", $uLastName);
$stmt->bindparam("uCompany", $uCompany);
$stmt->bindparam("uEmail", $uEmail);
$stmt->bindparam("uPassword", $uPassword);
$stmt->bindparam("uAccess", $uAccess);
$stmt->execute();
return $stmt;
}
catch(PDOException $e)
{
echo $e->getMessage();
}
}
In my form page:
if(isset($_POST['btn-signup']))
{
$uFirstName = trim($_POST['regFirstName']);
$uLastName = trim($_POST['regLastName']);
$uCompany = trim($_POST['regCompany']);
$uEmail = trim($_POST['regEmail']);
$uEmailVerify = trim($_POST['regEmailVerify']);
$uPassword = trim($_POST['regPassword']);
$uAccess = 0;
if ($uEmail != $uEmailVerify) {
$error = "Emails Don't Match";
}
else if (!filter_var($uEmail, FILTER_VALIDATE_EMAIL)) {
$error = "Please Enter a Valid Email";
}
else if (strlen($uPassword) < 6) {
$error = "Password must be at least 6 characters";
}
else {
try
{
$stmt = $DB_con->prepare("SELECT Email FROM users WHERE Email=:uEmail");
$stmt->execute(array(':uEmail' => $uEmail));
$row = $stmt->fetch(PDO::FETCH_ASSOC);
if ($row['Email'] == $uEmail) {
$error = "Email is Already Registered, Log In Instead";
}
else {
if ($user->register($uFirstName,$uLastName,$uCompany,$uEmail,$uPassword,$uAccess)) {
$user->redirect('http://facebook.com');
}
}
}
catch (PDOException $e)
{
echo $e->getMessage();
}
}
}