Привет, ребята, я новичок в программировании, и у меня есть быстрый вопрос, и, надеюсь, это не слишком много. Я пытаюсь дать пользователям моего тестового веб-сайта возможность обновлять их информацию. Я использую следующий код:Как дать пользователям возможность обновлять информацию
$mysqli = mysqli_connect('localhost', 'root', 'testpass', 'testdatabase')
or die(mysqli_error());
echo "<h2>How would you like to update your account $_SESSION[username]?</h2>";
$display = <<<END
<h4> Update your username here: <br/></h4>
<form method="POST" action="$_SERVER[PHP_SELF]">
<input type="text" name="update_username"/>
<input type="submit" name="submit" value="Update"/>
</form>
END;
echo $display;
$update_username = $_POST['update_username'];
$current_username = $_SESSION['username'];
$sql_update = "UPDATE users SET username = '$update_username' WHERE username = '$current_username'";
$result_update = mysqli_query($mysqli, $sql_update) or die (mysqli_error($mysqli));
Приведенный выше код обновляет их информацию, но он обновляется только один раз. Когда я проверяю базу данных после ее обновления, она изменилась на то, что я тоже изменил. Затем я попытаюсь изменить его снова, но он не изменился, поэтому я выхожу из системы и снова загружаюсь. Когда я вхожу в систему, я меняю его, но на этот раз, когда я смотрю на базу данных, нет имени пользователя. Я выхожу из системы и снова загружаюсь. Я меняю его снова, и он действительно меняется. Я должен проходить этот же процесс каждый раз, когда я пытаюсь изменить имя пользователя (или любую другую информацию), и это становится очень раздражающим. У вас есть идеи по поводу того, почему это делается? Спасибо!
Вы начали сеанс и для всех страниц, используя сеансы? Вам также может потребоваться уничтожить сеанс при выходе из системы. –
Используйте условное выражение, – starkeen
Я думаю, что у вас может быть проблема с кешем сеансов. Вам нужно будет указать соответствующий код для используемых страниц. Кроме того, используя 'isset()' для переменных $ _POST и $ _SESSION. –