0
Ich versuche, den aktualisierten Wert in showName
div anzuzeigen, aber meine Website zeigt nur den aktualisierten Wert erst nach dem Abgemeldet und erneut angemeldet.PHP kann keine aktualisierten Werte anzeigen
- Benutzernamen durch Drücken der Taste
saveName
aktualisieren. - erfolgreich aktualisiert Benutzername in PHPMyAdmin
users
Tabelle. showName
div zeigt immer noch den alten Benutzernamen an. Auch wenn ich die Seite aktualisiere.
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>
edit.php
<?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);
});
});
** WARNUNG **: Bei der Verwendung von 'mysqli' Sie [parametrisierte Abfragen] verwenden sollten (http://php.net/manual/en/mysqli.quickstart.prepared-statements.php) und ['bind_param'] (http://php.net/manual/en/mysqli-stmt.bind-param.php), um Benutzerdaten zu Ihrer Abfrage hinzuzufügen. ** Verwenden Sie NICHT ** String-Interpolation oder Verkettung, um dies zu erreichen, weil Sie einen schwerwiegenden [SQL injection bug] erstellt haben (http://bobby-tables.com/). ** NIEMALS ** $ _POST 'oder' $ _GET' Daten direkt in eine Abfrage einfügen, es kann sehr schädlich sein, wenn jemand versucht, Ihren Fehler auszunutzen. – tadman
Hinweis: Wenn Sie Daten aus dem '$ _SESSION' ziehen, müssen Sie diese ebenfalls aktualisieren, wenn Sie sie in der Datenbank ändern. – tadman
@tadman Ich habe tatsächlich eine Funktion, die 'trim()', 'stripslashes()' und 'htmlspecialchars()' für '$ _POST' verwendet. Ich frage mich, wie man '$ _SESSION' aktualisieren kann, wenn ich die Datenbank gleichzeitig aktualisiere? –