I need help with inserting the data into the database what should I do? please help me
Here is my login page code
<?php
class Account {
private $con;
private $errorArray = array();
public function __construct($con) {
$this->con = $con;
}
public function login($un, $pw) {
$pw = hash("sha512", $pw);
$query = $this->con->prepare("SELECT * FROM users WHERE username=:un AND password=:pw");
$query->bindParam(":un", $un);
$query->bindParam(":pw", $pw);
$query->execute();
if($query->rowCount() == 1) {
return true;
}
else {
array_push($this->errorArray, Constants::$loginFailed);
return false;
}
}
public function register($fn, $ln, $un, $em, $em2, $pw, $pw2) {
$this->validateFirstName($fn);
$this->validateLastName($ln);
$this->validateUsername($un);
$this->validateEmails($em, $em2);
$this->validatePasswords($pw, $pw2);
if(empty($this->errorArray)) {
return $this->insertUserDetails($fn, $ln, $un, $em, $pw);
}
else {
return false;
}
}
public function updateDetails($fn, $ln, $em, $un) {
$this->validateFirstName($fn);
$this->validateLastName($ln);
$this->validateNewEmail($em, $un);
if(empty($this->errorArray)) {
$query = $this->con->prepare("UPDATE users SET firstName=:fn, lastName=:ln, email=:em WHERE username=:un");
$query->bindParam(":fn", $fn);
$query->bindParam(":ln", $ln);
$query->bindParam(":em", $em);
$query->bindParam(":un", $un);
return $query->execute();
}
else {
return false;
}
}
public function updatePassword($oldPw, $pw, $pw2, $un) {
$this->validateOldPassword($oldPw, $un);
$this->validatePasswords($pw, $pw2);
if(empty($this->errorArray)) {
$query = $this->con->prepare("UPDATE users SET password=:pw WHERE username=:un");
$pw = hash("sha512", $pw);
$query->bindParam(":pw", $pw);
$query->bindParam(":un", $un);
return $query->execute();
}
else {
return false;
}
}
private function validateOldPassword($oldPw, $un) {
$pw = hash("sha512", $oldPw);
$query = $this->con->prepare("SELECT * FROM users WHERE username=:un AND password=:pw");
$query->bindParam(":un", $un);
$query->bindParam(":pw", $pw);
$query->execute();
if($query->rowCount() == 0) {
array_push($this->errorArray, Constants::$passwordIncorrect);
}
}
public function insertUserDetails($fn, $ln, $un, $em, $pw) {
$pw = hash("sha512", $pw);
$profilePic = "assets/images/profilePictures/default.png";
$query = $this->con->prepare("INSERT INTO users (firstName, lastName, username, email, password, profilePic)
VALUES(:fn, :ln, :un, :em, :pw, :pic)");
$query->bindParam(":fn", $fn);
$query->bindParam(":ln", $ln);
$query->bindParam(":un", $un);
$query->bindParam(":em", $em);
$query->bindParam(":pw", $pw);
$query->bindParam(":pic", $profilePic);
return $query->execute();
}
private function validateFirstName($fn) {
if(strlen($fn) > 25 || strlen($fn) < 2) {
array_push($this->errorArray, Constants::$firstNameCharacters);
}
}
private function validateLastName($ln) {
if(strlen($ln) > 25 || strlen($ln) < 2) {
array_push($this->errorArray, Constants::$lastNameCharacters);
}
}
private function validateUsername($un) {
if(strlen($un) > 25 || strlen($un) < 5) {
array_push($this->errorArray, Constants::$usernameCharacters);
return;
}
$query = $this->con->prepare("SELECT username FROM users WHERE username=:un");
$query->bindParam(":un", $un);
$query->execute();
if($query->rowCount() != 0) {
array_push($this->errorArray, Constants::$usernameTaken);
}
}
private function validateEmails($em, $em2) {
if($em != $em2) {
array_push($this->errorArray, Constants::$emailsDoNotMatch);
return;
}
if(!filter_var($em, FILTER_VALIDATE_EMAIL)) {
array_push($this->errorArray, Constants::$emailInvalid);
return;
}
$query = $this->con->prepare("SELECT email FROM users WHERE email=:em");
$query->bindParam(":em", $em);
$query->execute();
if($query->rowCount() != 0) {
array_push($this->errorArray, Constants::$emailTaken);
}
}
private function validateNewEmail($em, $un) {
if(!filter_var($em, FILTER_VALIDATE_EMAIL)) {
array_push($this->errorArray, Constants::$emailInvalid);
return;
}
$query = $this->con->prepare("SELECT email FROM users WHERE email=:em AND username != :un");
$query->bindParam(":em", $em);
$query->bindParam(":un", $un);
$query->execute();
if($query->rowCount() != 0) {
array_push($this->errorArray, Constants::$emailTaken);
}
}
private function validatePasswords($pw, $pw2) {
if($pw != $pw2) {
array_push($this->errorArray, Constants::$passwordsDoNotMatch);
return;
}
if(preg_match("/[^A-Za-z0-9]/", $pw)) {
array_push($this->errorArray, Constants::$passwordNotAlphanumeric);
return;
}
if(strlen($pw) > 30 || strlen($pw) < 5) {
array_push($this->errorArray, Constants::$passwordLength);
}
}
public function getError($error) {
if(in_array($error, $this->errorArray)) {
return "<span class='errorMessage'>$error</span>";
}
}
public function getFirstError() {
if(!empty($this->errorArray)) {
return $this->errorArray[0];
}
else {
return "";
}
}
}
?>
Here is my authO login script how would I add this to my sign up page? I really need to know how I will appreciate if you have an answer thans so much! Is there anyway you insert into the same table as my sign up page?
public function userDetails($user_session) {
$db = getDB();
$query = $db->prepare("SELECT * FROM users WHERE id=:session_id");
$query->bindParam("session_id", $user_session,PDO::PARAM_INT) ;
$query->execute();
$data = $query->fetch(PDO::FETCH_OBJ);
$db = null;
return $data;
}
public function userSignup($userData,$loginProvider) {
$first_name='';
$last_name='';
$gender='';
$birthday='';
$location= '';
$hometown='';
$bio='';
$relationship='';
$timezone='';
$picture='';
$blog='';
if($loginProvider == 'microsoft') {
$email=$userData->emails->account;
} else {
$email=$userData->email;
}
$emain_check = preg_match('~^[a-zA-Z0-9._-]+@[a-zA-Z0-9._-]+\.([a-zA-Z]{2,4})$~i', $email);
//Email Check
if(strlen(trim($email))>0 && $emain_check>0) {
$provider_id=$userData->id;
// Common for facebook and git
if($loginProvider == 'linkedin') {
$name=$userData->firstName.' '.$userData->lastName;
} else {
$name=$userData->name;
}
if($loginProvider == 'facebook') {
$first_name=$userData->first_name;
$last_name=$userData->last_name;
$gender=$userData->gender;
$timezone=$userData->timezone;
$picture='https://graph.facebook.com/'.$provider_id.'/picture?type=large';
} else if($loginProvider == 'microsoft') {
$first_name=$userData->first_name;
$last_name=$userData->last_name;
if($userData->birth_month)
$birthday=$userData->birth_month.'/'.$userData->birth_day.'/'.$userData->birth_year;
} else if ($loginProvider == 'google') {
$first_name=$userData->given_name;
$last_name=$userData->family_name;
$gender=$userData->gender;
$timezone=$userData->timezone;
$picture=$userData->picture;
} else if($loginProvider == 'github') {
$picture=$userData->avatar_url;
$blog=$userData->blog;
$bio=$userData->bio;
} else if($loginProvider == 'linkedin') {
$first_name=$userData->firstName;
$last_name=$userData->lastName;
}
$db = getDB();
$sql = $db->prepare("SELECT id,provider FROM users WHERE email=:email");
$sql->bindParam("email", $email,PDO::PARAM_STR) ;
$sql->execute();
// User check with email
if($sql->rowCount() == 0){
$query = $db->prepare("INSERT INTO users
(email, name, first_name, last_name, gender, birthday, location,
hometown, bio, relationship, timezone, provider, provider_id,picture)
VALUES (:email, :name, :first_name, :last_name, :gender, :birthday, :location, :hometown,
:bio, :relationship,:timezone, :provider , :provider_id, :picture)");
$query->bindParam("name", $name ,PDO::PARAM_STR) ;
$query->bindParam("first_name", $first_name ,PDO::PARAM_STR) ;
$query->bindParam("last_name", $last_name ,PDO::PARAM_STR) ;
$query->bindParam("email", $email ,PDO::PARAM_STR) ;
$query->bindParam("gender", $gender ,PDO::PARAM_STR) ;
$query->bindParam("birthday", $birthday ,PDO::PARAM_STR) ;
$query->bindParam("location", $location ,PDO::PARAM_STR) ;
$query->bindParam("hometown", $hometown ,PDO::PARAM_STR) ;
$query->bindParam("bio", $bio ,PDO::PARAM_STR) ;
$query->bindParam("relationship", $relationship ,PDO::PARAM_STR) ;
$query->bindParam("timezone", $timezone ,PDO::PARAM_STR) ;
$query->bindParam("provider_id", $provider_id ,PDO::PARAM_STR) ;
$query->bindParam("provider", $loginProvider ,PDO::PARAM_STR) ;
$query->bindParam("picture", $picture ,PDO::PARAM_STR) ;
$query->execute();
} else {
$row= $sql->fetch(PDO::FETCH_OBJ);
$provider=$row->provider;
$id=$row->id;
if($provider != $loginProvider) {
if(strlen($first_name)){
$query = $db->prepare(" UPDATE users SET first_name =:first_name WHERE id=:id ");
$query->bindParam("first_name", $first_name ,PDO::PARAM_STR) ;
$query->bindParam("id", $id ,PDO::PARAM_STR) ;
$query->execute();
}
if(strlen($last_name)){
$query = $db->prepare(" UPDATE users SET last_name =:last_name WHERE id=:id ");
$query->bindParam("last_name", $last_name ,PDO::PARAM_STR) ;
$query->bindParam("id", $id ,PDO::PARAM_STR) ;
$query->execute();
}
if(strlen($gender)){
$query = $db->prepare(" UPDATE users SET gender =:gender WHERE id=:id ");
$query->bindParam("gender", $gender ,PDO::PARAM_STR) ;
$query->bindParam("id", $id ,PDO::PARAM_STR) ;
$query->execute();
}
if(strlen($location)){
$query = $db->prepare(" UPDATE users SET location =:location WHERE id=:id ");
$query->bindParam("location", $location ,PDO::PARAM_STR) ;
$query->bindParam("id", $id ,PDO::PARAM_STR) ;
$query->execute();
}
if(strlen($birthday)){
$query = $db->prepare(" UPDATE users SET birthday =:birthday WHERE id=:id ");
$query->bindParam("birthday", $birthday ,PDO::PARAM_STR) ;
$query->bindParam("id", $id ,PDO::PARAM_STR) ;
$query->execute();
}
if(strlen($picture)){
$query = $db->prepare(" UPDATE users SET picture =:picture WHERE id=:id ");
$query->bindParam("picture", $picture ,PDO::PARAM_STR) ;
$query->bindParam("id", $id ,PDO::PARAM_STR) ;
$query->execute();
}
$query = $db->prepare(" UPDATE users SET provider_id =:provider_id, provider =:provider WHERE id=:id ");
$query->bindParam("provider_id", $provider_id ,PDO::PARAM_STR) ;
$query->bindParam("provider", $loginProvider ,PDO::PARAM_STR) ;
$query->bindParam("id", $id ,PDO::PARAM_STR) ;
$query->execute();
}
}
$success_query = $db->prepare("SELECT * FROM users WHERE email=:email");
$success_query->bindParam("email", $email ,PDO::PARAM_STR) ;
$success_query->execute();
$data = $success_query->fetch(PDO::FETCH_OBJ);
$db = null;
return $data;
}
}
}
?>