Hey guys, very simple script to register a user. Not sure why but the query (line 69) isn't adding the data to the database? Show errors are on, but shows none and none in my logs. Anyone have an idea?
Thanks!
<?php
include('config/db.php');
require_once './lib/vendor/autoload.php';
global $success_msg, $email_exist, $f_NameErr, $l_NameErr, $_emailErr, $_mobileErr, $_passwordErr;
global $fNameEmptyErr, $lNameEmptyErr, $emailEmptyErr, $mobileEmptyErr, $passwordEmptyErr, $email_verify_err, $email_verify_success;
$_first_name = $_last_name = $_email = $_mobile_number = $_password = "";
if(isset($_POST["submit"])) {
$firstname = $_POST["firstname"];
$lastname = $_POST["lastname"];
$email = $_POST["email"];
$mobilenumber = $_POST["mobilenumber"];
$password = $_POST["password"];
$email_check_query = mysqli_query($connection, "SELECT * FROM users WHERE email_address = '{$email}' ");
$rowCount = mysqli_num_rows($email_check_query);
if(!empty($firstname) && !empty($lastname) && !empty($email) && !empty($mobilenumber) && !empty($password)){
if($rowCount > 0) {
$email_exist = '
<div class="alert alert-danger" role="alert">
User with email already exist!
</div>
';
} else {
$_first_name = mysqli_real_escape_string($connection, $firstname);
$_last_name = mysqli_real_escape_string($connection, $lastname);
$_email = mysqli_real_escape_string($connection, $email);
$_mobile_number = mysqli_real_escape_string($connection, $mobilenumber);
$_password = mysqli_real_escape_string($connection, $password);
if(!preg_match("/^[a-zA-Z ]*$/", $_first_name)) {
$f_NameErr = '<div class="alert alert-danger">
Only letters and white space allowed.
</div>';
}
if(!preg_match("/^[a-zA-Z ]*$/", $_last_name)) {
$l_NameErr = '<div class="alert alert-danger">
Only letters and white space allowed.
</div>';
}
if(!filter_var($_email, FILTER_VALIDATE_EMAIL)) {
$_emailErr = '<div class="alert alert-danger">
Email format is invalid.
</div>';
}
if(!preg_match("/^[0-9]{11}+$/", $_mobile_number)) {
$_mobileErr = '<div class="alert alert-danger">
Only 11-digit mobile numbers allowed.
</div>';
}
if(!preg_match("/^(?=.*\d)(?=.*[@#\-_$%^&+=§!\?])(?=.*[a-z])(?=.*[A-Z])[0-9A-Za-z@#\-_$%^&+=§!\?]{6,20}$/", $_password)) {
$_passwordErr = '<div class="alert alert-danger">
Password should be between 6 to 20 charcters long, contains atleast one special chacter, lowercase, uppercase and a digit.
</div>';
}
if((preg_match("/^[a-zA-Z ]*$/", $_first_name)) && (preg_match("/^[a-zA-Z ]*$/", $_last_name)) &&
(filter_var($_email, FILTER_VALIDATE_EMAIL)) && (preg_match("/^[0-9]{10}+$/", $_mobile_number)) &&
(preg_match("/^(?=.*\d)(?=.*[@#\-_$%^&+=§!\?])(?=.*[a-z])(?=.*[A-Z])[0-9A-Za-z@#\-_$%^&+=§!\?]{8,20}$/", $_password))){
$token = md5(rand().time());
$password_hash = password_hash($password, PASSWORD_BCRYPT);
$sql = "INSERT INTO users (first_name, last_name, email_address, mobile_number, password, token, is_active,
date_time) VALUES ('{$firstname}', '{$lastname}', '{$email}', '{$mobilenumber}', '{$password_hash}',
'{$token}', '0', now())";
$sqlQuery = mysqli_query($connection, $sql);
if(!$sqlQuery){
die("MySQL query failed!" . mysqli_error($connection));
}
if($sqlQuery) {
$msg = 'Click on the activation link to verify your email. <br><br>
<a href="*****/user_verificaiton.php?token='.$token.'"> Click here to verify email</a>
';
$transport = (new Swift_SmtpTransport('mail.****.com', 587, 'tls'))
->setUsername('*****')
->setPassword('*****');
$mailer = new Swift_Mailer($transport);
$message = (new Swift_Message('Please Verify Email Address!'))
->setFrom([$email => $firstname . ' ' . $lastname])
->setTo($email)
->addPart($msg, "text/html")
->setBody('Hello! User');
$result = $mailer->send($message);
if(!$result){
$email_verify_err = '<div class="alert alert-danger">
Verification email coud not be sent!
</div>';
} else {
$email_verify_success = '<div class="alert alert-success">
Verification email has been sent!
</div>';
}
}
}
}
} else {
if(empty($firstname)){
$fNameEmptyErr = '<div class="alert alert-danger">
First name can not be blank.
</div>';
}
if(empty($lastname)){
$lNameEmptyErr = '<div class="alert alert-danger">
Last name can not be blank.
</div>';
}
if(empty($email)){
$emailEmptyErr = '<div class="alert alert-danger">
Email can not be blank.
</div>';
}
if(empty($mobilenumber)){
$mobileEmptyErr = '<div class="alert alert-danger">
Mobile number can not be blank.
</div>';
}
if(empty($password)){
$passwordEmptyErr = '<div class="alert alert-danger">
Password can not be blank.
</div>';
}
}
}
?>