用户尝试更新时如何更新图像?

时间:2018-05-18 10:13:11

标签: php html mysqli

editform.php

   <?php
session_start();

if (!isset($_SESSION['id'])) {
    header('location:login.php');

}

?>

                        <?php
                        $nameErr = $emailErr = $usernameErr = $DateOfBirthErr = $departmentErr = $ageErr = $fileToUploadErr = $fileToUploadErrr = $fileToUploadErrrr = $fileToUploadErrrrr = $fileToUploadErrrrrr = "";
                        $name = $email = $username = $DateOfBirth = $department = $age  = $filename  = "";

                        include_once 'connect.php';
                        $id = $_GET['id'];
                        $query = mysqli_query($mysqli, "select * from `users` where userid ='$id'");
                        $row = mysqli_fetch_array($query);

                            //set a default variable to hold the original value if $_POST is not triggered
                        $name = $row['name'];
                        $username = $row['username'];
                        $email = $row['email'];
                        $DateOfBirth = $row['Date_of_birth'];
                        $department = $row['department'];
                        $age = $row['age'];
                       // $filename = $_FILES['filename']['name'];
                        echo "<img alt='image' style='width:180px;height:100px;' src='upload/" . $row['filename'] . "'>";


                            // checking weather the form has been submitted before performing the update query
                        if (isset($_POST['update'])) {

                            //Name Section    
                            if (empty($_POST["name"])) {
                                $nameErr = "Name is required";
                            } else {
                                $name = $_POST["name"];
                              // check if name only contains letters and whitespace
                                if (!preg_match("/^[a-zA-Z ]*$/", $name)) {
                                    $nameErr = "Only letters and white space allowed";
                                }
                            }

                            //E-mail Section
                            if (empty($_POST["email"])) {
                                $emailErr = "Email is required";
                            } else {
                                $email = $_POST["email"];
                            // check if e-mail address is well-formed
                                if (!filter_var($email, FILTER_VALIDATE_EMAIL)) {
                                    $emailErr = "Invalid email format";
                                }
                            }

                            //Username Section
                            if (empty($_POST["username"])) {
                                $usernameErr = "Username is required";
                            } else {
                                $username = $_POST["username"];
                             // check if name only contains letters and whitespace
                                if (!preg_match("/^[a-zA-Z ]*$/", $username)) {
                                    $usernameErr = "Only letters and white space allowed";
                                }
                            }

                            //D.O.B Section
                            if (empty($_POST["Date_of_birth"])) {
                                $DateOfBirthErr = "Date Of Birth is required";
                            } else {
                                $DateOfBirth = $_POST["Date_of_birth"];
                            }

                            //Department Section
                            if (empty($_POST["department"])) {
                                $departmentErr = "Department is required";
                            } else {
                                $department = $_POST["department"];
                            }

                            //Age Section
                            if (empty($_POST["age"])) {
                                $ageErr = "Age is required";
                            } else {
                                $age = $_POST["age"];
                            }


                            //UPLOAD FILE
                            $uploaddir = 'upload/';
                            $uploadfile = $uploaddir . basename($_FILES['filename']['name']);
                            $imageFileType = pathinfo($uploadfile, PATHINFO_EXTENSION);

                            if ($_FILES['filename']['name'] != '') {  
                                // Check the image is actaully image or not
                                $check = getimagesize($_FILES["filename"]["tmp_name"]);
                                if ($check == false) {
                                    $fileToUploadErrrrr = "File is not an image.";

                                } 

                                // Check if file already exists
                                if (file_exists($uploadfile)) {
                                    $fileToUploadErrrrrr = "Sorry, file already exists.";
                                }

                                if ($imageFileType != "jpg" && $imageFileType != "png") {
                                    $fileToUploadErr = "Sorry, only JPG,PNG files are allowed.";
                                } elseif ($_FILES['filename']['size'] > 500000) {

                                    $fileToUploadErrrr = "Sorry, your file is too large.";

                                } else {

                                  /*  if ($filename != '') {
                                        $target = "upload/" . $filename;
                                        unlink($target);
                                    }*/

                                    $uploaded = move_uploaded_file($_FILES['filename']['tmp_name'], $uploadfile);
                                    if ($uploaded) {
                                        $file = $_FILES['filename']['name'];
                                    } else {
                                        $file = $filename;
                                    }
                                }
                            }  else {
                                $file = $filename;
                            }


                            if ($nameErr == "" && $emailErr == "" && $usernameErr == "" && $DateOfBirthErr == "" && $departmentErr == "" && $ageErr == "" && $fileToUploadErr == "" && $fileToUploadErrr == "" && $fileToUploadErrrr == "" && $fileToUploadErrrrr == "" && $fileToUploadErrrrrr == "") {
                                $check = "SELECT * FROM users WHERE username = '$username' and userid !='$id'";
                                $rs = mysqli_query($mysqli, $check);
                                $da = mysqli_fetch_array($rs, MYSQLI_NUM);
                                if ($da > 0) {
                                    echo "Username Already in Exists";
                                } else {
                                    if($file=="")
                                    {
                                $sql = "update `users` set name='$name', username='$username', email='$email', Date_of_birth='$DateOfBirth', department='$department', age='$age' where userid ='$id'";
                                if (mysqli_query($mysqli, $sql)) {
                                        echo "Record updated successfully";
                                    } else {
                                        echo "Error updating record: " . mysqli_error(mysqli_query);
                                    }
                                    mysqli_close($mysqli);
                                    }
                                    else{

                                    $sql = "update `users` set name='$name', username='$username', email='$email', Date_of_birth='$DateOfBirth', department='$department', age='$age' , filename='$file' where userid ='$id'";

                                    if (mysqli_query($mysqli, $sql)) {
                                        echo "Record updated successfully";
                                    } else {
                                        echo "Error updating record: " . mysqli_error(mysqli_query);
                                    }
                                    mysqli_close($mysqli);
                                }
                                }
                            }
                        }

                        ?>


                        <!DOCTYPE html>
                        <html>
                        <head>
                            <style>
                                            .error {
                                                color:red;
                                            }

                                            .button {
                                                background-color: #4CAF50;
                                                border: none;
                                                color: white;
                                                padding: 10px 25px;
                                                text-align: center;
                                                text-decoration: none;
                                                display: inline-block;
                                                font-size: 16px;
                                                margin: 4px 2px;
                                                cursor: pointer;
                                            }
                                            .div1 {
                                                background-color: #f2f2f2;
                                                margin-top: -19px;
                                                margin-bottom: -25px;
                                                margin-left: -19px; 
                                            }

                                            .copy {
                                                border-radius: 4px;
                                                padding: 6px 20px;
                                               border-style: ridge;
                                            }

                                            .copy1{
                                                 border-radius: 4px;
                                                 padding: 6px 28px;
                                                 border-style: ridge;
                                            }

                                            .copy2{
                                                 border-radius: 4px;
                                                 padding: 4px 2px;

                                            }
                            </style>
                        </head>
            <body>

                    <div style="padding-left: 250px" class="div1">
                    <h2 style="color:#009999">EDIT :</h2>

                        <form method="POST" action="" enctype="multipart/form-data">
                            <input type="hidden" name="hidden_id" value="<?= $id ?>"/>
                            <label style="color:#0099ff">Name:</label><input class= "copy" style="margin-left: 52px" type="text" value="<?= $name ?>" name="name">
                            <span class="error"> <?php echo $nameErr; ?></span>
                            <br><br>

                            <label style="color:#0099ff">Username:</label><input type="text" class= "copy" style="margin-left:26px" value="<?= $username ?>" name="username">
                            <span class="error"><?php echo $usernameErr; ?></span>
                            <br><br>

                            <label style="color:#0099ff">E-mail:</label><input type="text" class= "copy" style="margin-left: 48px"  value="<?= $email ?>" name="email">
                            <span class="error"><?php echo $emailErr; ?></span>
                            <br><br>

                            <label style="color:#0099ff">Date_of_birth: </label><input type="date" class= "copy1" value="<?= $DateOfBirth ?>" name="Date_of_birth">
                            <span class="error"> <?php echo $DateOfBirthErr; ?></span>
                            <br><br>

                            <label style="color:#0099ff">Department:</label>
                                <select name="department"  class= "copy2" style="margin-left:14px" value="<?= $department ?>">
                                    <option value="EE">Electrical & Electronics</option>
                                    <option value="EC">Electronics & Communication</option>
                                    <option value="ME">Mechanical</option>
                                    <option value="CS">Computer Science</option>
                                    <option value="CV">Civil</option>
                                    <option value="IS">Information Science</option>
                                </select>
                            <span class="error"> <?php echo $departmentErr; ?></span>
                            <br><br>

                            <label style="color:#0099ff">Age:</label><input type="text" class= "copy" style="margin-left:62px" value="<?= $age ?>" name="age">
                            <span class="error"> <?php echo $ageErr; ?></span>
                            <br><br>

                            <label style="color:#0099ff">Select image : </label><input type="file" style="width:180px;height:100px;padding:10px;" name="filename" >

                            <span class="error"><br> <?php echo $fileToUploadErr; ?></span>
                            <span class="error"><br> <?php echo $fileToUploadErrrr; ?></span>
                            <span class="error"><br> <?php echo $fileToUploadErrrrr; ?></span>
                            <span class="error"><br> <?php echo $fileToUploadErrrrrr; ?></span>


                            <input type="submit" class="button" name="update" value="Update"> 
                            <a href="welcome.php">Back</a>
                        </form>

                    </div>

            </body>
            </html>

大家好,我真的非常需要你的帮助。 实际上我创建了一个注册表单,用户可以在其中注册其详细信息 注册表格绝对运作良好。甚至用户登录时也是如此 工作得很好,但现在当用户试图更新他的详细信息时,例如名称,用户名正在更新 但是当用户试图更新他的图像时,问题出现了,除了图像剩余部分 在图像方面越来越新,图像没有得到更新,请大家提出我的谦卑请求 对于所有正在查看我的问题的人,请帮助我解决这个问题,我试图解决这个问题 天,但我无法这样做,请请帮助我,我真的需要你的帮助

2 个答案:

答案 0 :(得分:1)

您应该将enctype="multipart/form-data"属性添加到form元素:

<form method="POST" action="" enctype="multipart/form-data">

答案 1 :(得分:0)

编辑编辑图像操作时,

你应该把你的更新sql查询用if else条件。

所以,基本上,

if(empty($image_file_name)){

//query without image column

$sql = "update `users` set name='$name',username='$username', 
email='$email', Date_of_birth='$DateOfBirth', department='$department',
age='$age' where userid ='$id'" ;

//do not forget to execute query here with mysqli_query 

}
if(!empty($image_file_name)){

//query with image column

$sql = "update `users` set name='$name',username='$username', 
email='$email', Date_of_birth='$DateOfBirth', department='$department',age='$age',
image_name='$image_file_name' where userid ='$id'" ;

//do not forget to execute query here with mysqli_query 

}

另外,请确保我们无法在输入类型=&#39;文件&#39;中预取文本框等值,但是,您可以使用img标记预览已上传的图像。

所以,改为

<input type='file' value='<?php echo $filename; ?>' <!--do not use this-->

你应该使用,

<input type='file'> 
<img src='your_already_uploaded_file_path' height='50px' width='50px'> <!--change height width as you wish-->

另外,请确保您缺少带有表单标记的 enctype =&#34; multipart / form-data&#34; 。因此,不要忘记使用表单标记添加此属性。使用上传文件时必须使用此属性。