Ich habe mehrere Beiträge zu diesem Thema hier gelesen, aber keiner scheint den Trick zu tun, vielleicht bin ich nur Missverständnis, wie ich neu zu diesem Thema. Ich habe ein Formular, das in eine Datenbank einfügt und dann echo out die Daten, perfekt !, Mein Problem ist, weil das Formular auf einer Benutzerkontenseite ist, wenn Sie sich ausloggen alle Informationen verschwindet. Ich bin mir bewusst, dass ich meine $ _POST-Variablen in eine $ _SESSION speichern muss.
Aber selbst wenn sie in einer Sitzung gespeichert werden, verschwinden die Daten immer noch, sobald sie sich ausgeloggt haben, wenn sie sich wieder einloggen. Wie kann man $ _POST in $ _SESSION speichern?
Ich bin derzeit mit:
// Save $_POST to $_SESSION
$_SESSION['fname'] = $_POST;
Gibt es einen besseren Weg, hier ist mein Code:
HTML
<section class="container">
<form id="myform " class="Form" method="post" action="Cus_Account.php?c_id=<?php echo $c_id ?>" accept-charset="utf-8">
<!-- <div id="first">-->
<input type="text" id="fname" name="fname" value="<?php echo isset($_POST['fname']) ? $_POST['fname'] : '';?>" required>
<input type="text" id="lname" name="lname" value="<?php echo isset($_POST['lname']) ? $_POST['lname'] : '';?>" required>
<input type="text" id="email" name="email" value="<?php echo $_SESSION['Cus_Email']; ?>" required>
<input type="number" id="phone" name="phone" value="<?php echo isset($_POST['phone']) ? $_POST['phone'] : '';?>"required>
<input type="submit" name="Update" value="Update">
<br>
</form>
PHP
<?php
if (isset($_POST['Update'])) {
$c_fname = $_POST['fname'];
$c_lname = $_POST['lname'];
$c_email = $_POST['email'];
$c_phone = $_POST['phone'];
// Save $_POST to $_SESSION
$_SESSION['fname'] = $_POST;
//query
$insert_det = "INSERT INTO Cus_acc_details(CUS_Fname,CUS_Lname,Cus_Email,CUS_Phone) VALUES (?,?,?,?)";
$stmt = mysqli_prepare($dbc, $insert_det);
//new
// $stmt = mysqli_prepare($dbc, $insert_c);
//debugging
//$stmt = mysqli_prepare($dbc, $insert_c) or die(mysqli_error($dbc));
mysqli_stmt_bind_param($stmt, 'sssi', $c_fname, $c_lname, $c_email, $c_phone);
/* execute query */
$r = mysqli_stmt_execute($stmt);
// if inserted echo the following messges
if ($r) {
echo "<script> alert('registration sucessful')</script>";
}
} else {
echo "<b>Oops! Your passwords do not </b>";
}
?>
Die $ _SESSION [ 'Cus_Email'] im Formular ist f von einer anderen Abfrage. Jede Hilfe oder Vorschläge würden sehr geschätzt werden.
Mögliche Duplikate von [Sitzungsvariablen nicht funktioniert php] (http://stackoverflow.com/questions/19692157/session-variables-not-working-php) – Machavity
Nicht sicher von Ihrer Frage, aber vielleicht einen Sitzungswert für jeden Feld '$ _SESSION ['fname'] = $ _POST ['fname'];' – chris85
Oder einfach '$ _SESSION = $ _POST;' aber wahrscheinlich '$ _SESSION ['post'] = $ _POST;' dann einfach 'echo $ _SESSION ['post'] ['fname']; 'etc ... – AbraCadaver