I'm facing one error which is undefined index: user_image
My input file name is user_image and I just defined that user_image at above the function and leaved it empty "" and then I defined that also in register function, but still im getting error of undefined index:User_image.
Look at my functions i just included this function in my main page.
$username = $email = $password_1 = $password_2 = $user_image = "";
$username_error = $email_error = $password_1_error = $password_2_error = $user_image_error = "";
$username_err = $password_err = "";
if (isset($_POST['register'])) {
register();
}
function register(){
global $db, $username, $email, $user_image, $username_error, $email_error, $password_1_error, $password_2_error, $user_image_error;
$username = e($_POST['username']);
$email = e($_POST['email']);
$password_1 = e($_POST['password_1']);
$password_2 = e($_POST['password_2']);
$user_image = $_FILES['user_image']['name'];
$temp_name1 = $_FILES['user_image']['tmp_name'];
move_uploaded_file($temp_name1, "assets/images/users/$user_image");
if (empty($username)) {
$username_error = "Username is required";
}else{
$query = "SELECT * FROM users WHERE username='$username' LIMIT 1";
$results = mysqli_query($db, $query);
if (mysqli_num_rows($results) == 1) {
$username_error = "Username is already taken";
}
}
if (empty($email)) {
$email_error = "Email is required";
}elseif(!filter_var($email, FILTER_VALIDATE_EMAIL)) {
$email_error = "Invalid email format";
}else{
$query = "SELECT * FROM users WHERE email='$email' LIMIT 1";
$results = mysqli_query($db, $query);
if (mysqli_num_rows($results) == 1) {
$email_error = "Email is already taken";
}
}
if(empty(trim($password_1))){
$password_1_error = "Please enter a password.";
} elseif(strlen(trim($password_1)) < 6){
$password_1_error = "Password must have atleast 6 characters.";
}
if(empty(trim($password_2))){
$password_2_error = "Please confirm password.";
} else{
if(empty($password_1_error) && ($password_1 != $password_2)){
$password_2_error = "Password did not match.";
}
}
if(empty(trim($user_image))){
$user_image_error = "User Image is must needed";
}
if (empty($username_error) && empty($email_error) && empty($password_1_error) && empty($password_2_error) && empty($user_image_error)) {
$password = md5($password_1);
if (isset($_POST['role'])) {
$role = e($_POST['role']);
$query = "INSERT INTO users (username, email, role, password, user_image)
VALUES('$username', '$email', '$role', '$password', '$user_image')";
mysqli_query($db, $query);
$_SESSION['success'] = "New user successfully created!!";
header('location: index.php');
}else{
$query = "INSERT INTO users (username, email, role, password, user_image)
VALUES('$username', '$email', 'user', '$password', '$user_image')";
mysqli_query($db, $query);
$logged_in_user_id = mysqli_insert_id($db);
$_SESSION['user'] = getUserById($logged_in_user_id); // put logged in user in session
$_SESSION['success'] = "You are now logged in";
header('location: index.php');
}
}
}
Html
<div class="custom-file">
<input type="file" class="custom-file-input" name="user_image" id="customFile">
<label class="custom-file-label" for="customFile">Choose file</label>
<span class="text-danger"><?php echo $user_image_error; ?></span>
</div>
Firstly, you need to add enctype="multipart/form-data"
attribute to your form.
Secondly you should check for the index first
if(isset($_FILES['user_image'])){
}
The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.