Обновление информации об учетной записи с использованием форм PHP и HTML

0

У меня есть страница PHP с HTML-формой и PHP. Он просит пользователя изменить свое имя пользователя и изменить его в базе данных. У меня есть код, но он не работает, и я зациклен на то, что мне нужно. Может кто-нибудь, пожалуйста, дайте мне несколько идей?

HTML

<form id="edit" method="POST" action="">

    <h1>
        <label for="username">Username *</label>
        <input id="username1" type="text" name="username1" value=""/>
    </h1>

    <h1>
        <button id="submit" type="submit">Submit</button>
    </h1>

</form>

PHP

<?php

if (isset($_POST['edit'])){
    $username = $_POST["username1"];

    $id = $_SESSION["user_id"];
    $query = "UPDATE user SET username = '$username' WHERE id = '$id'";
}
?>
  • 0
    Что именно не работает? Как форма получает доступ к вашему скрипту PHP?
  • 0
    Вы сделали запрос. хороший. тогда вы должны что-то сделать с этим. и кстати вы должны сделать что-то с пользовательским вводом либо
Показать ещё 3 комментария
Теги:

1 ответ

1

Вы должны запросить $_POST['username'] вместо $_POST['edit'].

И ваш запрос должен выполняться mysqli или PDO.

<?php

if (isset($_POST['username1'])){
    $username = $_POST["username1"];

    $id = $_SESSION["user_id"];
    $query = "UPDATE user SET username = '$username' WHERE id = '$id'";
    mysqli_query($database_con, $query);
}
?>

Но этот метод небезопасен, потому что $ username и $ id могут содержать SQL-Injection.

Вместо этого используйте подготовленные заявления.

<?php
$con = new mysqli("host", "user", "password", "databasename");
if (isset($_POST['username1'])){
    $username = $_POST["username1"];

    $id = $_SESSION["user_id"];
    $stmt = $con->prepare("UPDATE user SET username = ? WHERE id = ?");
    $stmt->bind_param("si",$username,$id);
    $stmt->execute();
}
?>

Ещё вопросы

Сообщество Overcoder
Наверх
Меню