0
更新された値をshowName
divに表示しようとしていますが、ログアウトして再度ログインした後に更新された値のみが表示されます。PHPは更新された値を表示できません
- ユーザ名を更新するには、
saveName
ボタンを押してください。 - PHPMyAdminのユーザ名を更新しました
users
テーブル。 showName
divには以前のユーザー名が表示されます。ページを更新しても
のindex.php
<div id="showName">
<?php
if(isset($_SESSION['userId'])){
echo $_SESSION['username']; }
?>
</div>
<div id="message"></div>
<div> <input id="editName" name="editName" /> </div>
<button id="saveName" type="submit" >Save</button>
个人设定
<?php
ob_start();
session_start();
include_once('database.php');
$validUser= $_SESSION["username"];
if(isset($_POST['editName']))
{
$username = $_POST["editName"];
if ($username =="") {
echo "Enter your full name.";
return false;
}else {
$sql = "UPDATE users SET username='$username' WHERE username='$validUser'";
if(mysqli_query($con, $sql)){
echo "Successfully Updated.";
} else{
echo "Something went wrong"; }
}
return false;
}
ob_end_flush();
?>
script.php
$("#saveName").click(function(e) {
e.preventDefault();
e.stopPropagation();
$.post("edit.php",
$("#editName").serializeArray(),
function(info){ $("#message").html(info);
});
});
** WARNING **:あなたが使用する必要がありますmysqli' '使用する場合は、[パラメータ化クエリ](http://php.net/manual/en/mysqli.quickstart.prepared-statements.php)と['bind_param'](http://php.net/manual/en/mysqli-stmt.bind-param.php)を使ってクエリにユーザーデータを追加します。 **重大な[SQLインジェクションのバグ](http://bobby-tables.com/)を作成したため、文字列の補間または連結を使用してこれを実行しないでください。 ** '$ _POST'や' $ _GET'データを直接クエリに入れないでください。誰かがあなたのミスを悪用しようとすると、非常に危険です。 – tadman
ヒント: '$ _SESSION'からデータを取り出す場合は、データベースで変更する場合にも更新する必要があります。 – tadman
@tadman私は実際に '$ _POST'に' trim() '、' stripslashes() 'と' htmlspecialchars() 'を使う関数を持っています。私は同時にデータベースを更新するときに '$ _SESSION'をどのように更新するのだろうか? –