Hey guys!
I am trying to learn and practice how to use mysqli_real_escape_string() before using prepared statement… How would I do this for the following lines?Do I need to use mysqli for these lines?
I am trying to assign a variable to the following:
<?php
if (!isset($_POST['submit'])) {
header("Location: ../signup.php");
exit();
} else {
include_once 'dbh.php';
$first = mysqli_real_escape_string($conn, $_POST['first']);
$last = mysqli_real_escape_string($conn, $_POST['last']);
$email =mysqli_real_escape_string($conn, $_POST['email']) ;
$uid = mysqli_real_escape_string($conn, $_POST['uid']);
$password = mysqli_real_escape_string($conn, $_POST['pwd']);
$user_permission = 1;
$user_access = 1;
$user_activate = 0;
//Error handlers...
if (empty($first) || empty($last) || empty($email) || empty($uid)|| empty($password)) {
header("Location: ../signup.php?signup=empty");
exit();
} else {
//Check if input characters are valid
if (!preg_match("/^[a-zA-Z]*$/", $first) || !preg_match("/^[a-zA-Z]*$/", $last)) {
header("Location: ../signup.php?signup=invalid");
exit();
} else {
//Checking for valid emails
if (!filter_var($email, FILTER_VALIDATE_EMAIL)) {
header("Location: ../signup.php?signup=email");
exit();
} else {
if (Strlen($password) < 5) {
header("Location: ../signup.php?signup=invvalidlength");
exit();
} else {
if (!preg_match("/^[a-zA-Z0-9]*$/", $password)){
header("Location: ../signup.php?signup=invvalidalphanumeric");
exit();
} else {
$sql = "SELECT * FROM users WHERE user_uid='$uid'";
$result = mysqli_query($conn, $sql);
$resultCheck = mysqli_num_rows($result);
if($resultCheck > 0) {
header("Location: ../signup.php?signup=usertaken");
exit();
} else {
// Supply a random generated token for email activation
$token = 'qqewreqreqwsdfdfdafcbvcQERFGHFGHGFHRETERTDF!@#$%^^()';
$token = str_shuffle($token);
$token = substr($token, 0, 10);
//Hashing the password
$hashedPwd = password_hash($password, PASSWORD_DEFAULT);
//Insert the user into the database
$sql ="INSERT INTO users (user_first, user_last, user_email, user_uid, user_password, user_permission, user_access, user_token, user_activate) VALUES ('$first', '$last', '$email', '$uid', '$hashedPwd', '$user_permission', '$user_access', '$token', '$user_activate');";
$name = $first, $last;
$to = $email;
$header = 'From: pianocourse101@hotmail.com';
$subject = 'Email activation is required';
$message = <<<EMAIL
Hello $name,
Thanks for registering with PianoCourse101!
Please activate your account below before you
can login. Activate your account by clicking
on the following link below....
http://localhost/loginsystem/includes/activate.php?email=$to&activatetoken=$token
EMAIL;
mail($to, $subject, $message, $header);
mysqli_query($conn, $sql);
// insert into permissions table
header("Location: ../signup.php?signup=success");
exit();
}
}
}
}
}
}
Should I do something like this
$user_permission = 1;
$user_access = mysqli_real_escape_string($conn, $user_access = 1);
$user_activate = mysqli_real_escape_string($conn, $user_activate = 0);