我有一个更新页面
因此,获取查询正常工作,但是当我单击提交时,它给了我个人资料已更新,然后我刷新页面,我什么也没更新。
页面没有显示任何错误,我对此很困惑...
这是我的代码:
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'>×</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);
因此,如果存在错误,它将运行先前的选择查询。