Недавно начал использовать RedBeanPHP, всё нормально работало, пока я не попытался сделать изменение логина.
<?php
require "db.php";
$data = $_POST;
if (isset($data['changelogin'])) {
$errors = array();
if (trim($data['oldlogin']) == '') {
$errors[] = 'Введите старый логин';
}
if (trim($data['newlogin']) == '') {
$errors[] = 'Введите новый логин';
}
$user = R::findOne('users', 'name = ?', array($data['oldlogin']));
if (empty($errors)) {
$users = R::load('users', $user);
$users->name = $data['newlogin'];
R::store($users);
header('Location: index.php');
} else {
echo '<div style="color: red;">' . array_shift($errors) . '</div>';
}
}
?>
Вообщем, вместо того чтобы загружать новое имя, создается новая строка c почтой NULL
Паролем NULL
, но зато нужным логином.
У вас создается новая запись, потому что вы создаете нового пользователя и присваиваете ему только логин:
if (empty($errors)) {
$users = R::load('users', $user); // Загрузили юзера которого нет в базе $user = NULL;
$user->name = $data['newlogin']; // Присваиваем свойство name
R::store($users); // Сохраняем нового юзера
header('Location: index.php');
}
Вы уже загрузили модель юзера тут:
$user = R::findOne('users', 'name = ?', array($data['oldlogin']));
Все что вам нужно это изменить у него name
:
$user->name = $data['newlogin'];
R::store('users', $user);
В итоге код будет такой:
<?php
require "db.php";
$data = $_POST;
if (isset($data['changelogin'])) {
$errors = array();
if (trim($data['oldlogin']) == '') {
$errors[] = 'Введите старый логин';
}
if (trim($data['newlogin']) == '') {
$errors[] = 'Введите новый логин';
}
if (empty($errors)) {
$user = R::findOne('users', 'name = ?', array($data['oldlogin']));
$user->name = $data['newlogin'];
R::store($user);
header('Location: index.php');
} else {
echo '<div style="color: red;">' . array_shift($errors) . '</div>';
}
}
?>
Айфон мало держит заряд, разбираемся с проблемой вместе с AppLab
Везде пишут про файл manifest, но у меня он не создаётся и нигде вообще не упоминается, main класс выбрал, но jar файл так и не запускается пишет:
У меня установлена java версии 18, но при выполнении команды java --version, получаю ответ что версия: openjdk 11
Есть некоторый класс, который удобно реализовать как singletonКак лучше инициализировать его поля(информация о том как их заполнять приходит...