编辑我的个人资料页面不更新用户配置文件



我有一个更新页面

因此,获取查询正常工作,但是当我单击提交时,它给了我个人资料已更新,然后我刷新页面,我什么也没更新。

页面没有显示任何错误,我对此很困惑...

这是我的代码:

if(isset($_POST['edit_profile'])) {
$firstname = $_POST['firstname'];
$lastname = $_POST['lastname'];
$username = $_POST['username'];
$email = $_POST['email'];
$password = $_POST['password'];
$user_avatar = $_FILES ['user_avatar']['name'];
$user_avatar_temp = $_FILES['user_avatar']['tmp_name'];
    move_uploaded_file($user_avatar_temp, "./user_avatar/$user_avatar");
if(empty($user_avatar)){

       $query = "SELECT user_avatar FROM users WHERE username = '{$the_user_id}' ";
       $select_image = mysqli_query($connection,$query);
       if(!$select_image){
         die('rip'.mysqli_error($connection));
       }
       while($row = mysqli_fetch_assoc($select_image)){
           $user_avatar = $row['user_avatar'];
       }
             }
             $param_password = password_hash($password,PASSWORD_DEFAULT);
             $error = NULL;
             if (empty($password)) {
                 $error = 'You forgot to choose a password!';
             }
             if (!$error) {
    $query = "UPDATE users SET ";
    $query .= "firstname = '{$firstname}', ";
    $query .= "lastname = '{$lastname}', ";
    $query .= "username = '{$username}', ";
    $query .= "email = '{$email}', ";
    $query .= "user_avatar = '{$user_avatar}', ";
    $query .= "password = '{$param_password}', ";
    $query .= "WHERE username = '{$the_user_id}' ";
}

    $edit_user_query =mysqli_query($connection,$query);
if(!$edit_user_query){
  die('rip'.mysqli_error($connection));
}

     echo "<div class='alert alert-success fade in'>
  <a href='#' class='close' data-dismiss='alert' aria-label='close'>&times;</a>
  <strong>Success!</strong> Your profile has been edited
</div>";

}

您可以查看Pastebin上的表格的完整代码:

pastebin代码

您不检查运行查询时错误是否为空;

         if (!$error) {
    $query = "UPDATE users SET ";
    $query .= "firstname = '{$firstname}', ";
    $query .= "lastname = '{$lastname}', ";
    $query .= "username = '{$username}', ";
    $query .= "email = '{$email}', ";
    $query .= "user_avatar = '{$user_avatar}', ";
    $query .= "password = '{$param_password}', ";
    $query .= "WHERE username = '{$the_user_id}' ";
}

    $edit_user_query =mysqli_query($connection,$query);

因此,如果存在错误,它将运行先前的选择查询。

最新更新