Всем привет! Есть такой код. При авторизации пользователя используется $_SESSION["logged_user"], авторизация сама через Red Bean. Никак не могу привязать конкретного пользователя $_SESSION["logged_user"] к загрузке/обновлению аватарки.
В таблице пользователь с id=1, но есть еще и пользователи с id=2, id=3 и т.д. в Mysql обновляет профиль только у 1 пользователя, а у не у 2 или 3 авторизованного. Вот как мне от этого избавиться $_SESSION["id"] = 1, используя конкретного пользователя, который авторизовался?
<?php
$_SESSION["id"] = 1; // Сессия юзера
$sessionId = $_SESSION["id"];
$user = mysqli_fetch_assoc(mysqli_query($conn, "SELECT * FROM tb_user WHERE id = $sessionId"));
?>
<!DOCTYPE html>
<html lang="en" dir="ltr">
<head>
<meta charset="utf-8">
<title>Обновление</title>
<link rel="stylesheet" href="styles.css">
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/4.7.0/css/font-awesome.min.css">
</head>
<body>
<form class="form" id = "form" action="" enctype="multipart/form-data" method="post">
<div class="upload">
<?php
$id = $user["id"];
$image = $user["image"];
?>
<img src="img/<?php echo $image; ?>" width = 125 height = 125 title="<?php echo $image; ?>">
<div class="round">
<input type="hidden" name="id" value="<?php echo $id; ?>">
<input type="hidden" name="name" value="<?php echo $name; ?>">
<input type="file" name="image" id = "image" accept=".jpg, .jpeg, .png">
<i class = "fa fa-camera" style = "color: #fff;"></i>
</div>
</div>
</form>
<script type="text/javascript">
document.getElementById("image").onchange = function(){
document.getElementById("form").submit();
};
</script>
<?php
if(isset($_FILES["image"]["name"])){
$id = $_POST["id"];
$name = $_POST["name"];
$imageName = $_FILES["image"]["name"];
$imageSize = $_FILES["image"]["size"];
$tmpName = $_FILES["image"]["tmp_name"];
// Image validation
$validImageExtension = ['jpg', 'jpeg', 'png'];
$imageExtension = explode('.', $imageName);
$imageExtension = strtolower(end($imageExtension));
if (!in_array($imageExtension, $validImageExtension)){
echo
"
<script>
alert('Invalid Image Extension');
document.location.href = 'index.php';
</script>
";
}
elseif ($imageSize > 1200000){
echo
"
<script>
alert('Image Size Is Too Large');
document.location.href = 'index.php';
</script>
";
}
else{
$newImageName = $name . " - " . date("Y.m.d") . " - " . date("h.i.sa"); // Generate new image name
$newImageName .= '.' . $imageExtension;
$query = "UPDATE tb_user SET image = '$newImageName' WHERE id = $id";
mysqli_query($conn, $query);
move_uploaded_file($tmpName, 'img/' . $newImageName);
echo
"
<script>
document.location.href = 'index.php';
</script>
";
}
}
?>
</body>
</html>
Код авторизации пользователя:
<?php
$data = $_POST;
if ( isset($data['do_login']) )
{
$errors = array();
$user = R::findOne('users', 'login = ?', array($data['login']));
if ($user)
{
// логин существует
if( password_verify($data['password'], $user->password)) {
// всё хорошо, логиним пользователя
$_SESSION['logged_user'] = $user;
header('Location: /');
} else
{
$errors[] = 'Неверно введён пароль!';
}
} else
{
$errors[] = 'Пользователь с таким логином не найден!';
}
}
?>