У меня возникла небольшая проблема с получением значений формы для отображения после того, как я отправил форму. Главное, когда форма отправляется, все поля ввода пустуют. Но поля DO DISPLAY, когда детали не обновляются (из if statment).
<?php
require 'core/init.php';
$auth = new Auth();
if (isset($_SESSION['customer_id'])) {
$rows = DBPDO::getInstance()->get('customer', array(
array('id', '=', $_SESSION['customer_id'])
));
if ($_SERVER['REQUEST_METHOD'] == 'POST') {
$password1 = $_POST['password1'];
// Verify Password Matches Account
$password1 = $rows->first()->user_salt . $password1;
$password1 = $auth->hashData($password1);
// New Password
$newsalt = $auth->randomString();
$password2 = $_POST['password2'];
$newpassword2 = $newsalt . $password2;
$newpassword2 = $auth->hashData($password2);
$business = $_POST['businessname'];
$name = $_POST['contactname'];
$email = $_POST['contactemail'];
$code = $_POST['contactcode'];
$phone = $_POST['contactphone'];
if (!empty($password1) && $password1 == $rows->first()->password && empty($password2)) {
$update = DBPDO::getInstance()->update('customer', $_SESSION['customer_id'], array(
'businessName' => $_POST['businessname'],
'contactName' => $_POST['contactname'],
'email' => $_POST['contactemail'],
'code' => $_POST['contactcode'],
'phone' => $_POST['contactphone'],
'deliveryAddress' => $_POST['deliveryaddress']
));
$_SESSION['errmsg'] = "Details Updated!";
header("Location: account.php");
} elseif (!empty($password1) && $password1 == $user->first()->password && !empty($password2)) {
echo 'Details and Password Updated';
} else {
echo 'Details not Updated';
}
}
} else {
header('Location:index.php');
}
?>
HTML
<form action="<?php echo htmlspecialchars($_SERVER["PHP_SELF"]); ?>" method="post">
<div class="col-md-6">
<div class="form-group">
<label for="businessname">Business Name</label>
<div class="input-group input-group-lg">
<input type="text" name="businessname" id="businessname" class="form-control" value="<?php echo $rows->first()->businessName; ?>" aria-required="true"/>
</div>
</div>
</form>
я только что подтвердил, что добавление:
$rows = DBPDO::getInstance()->get('customer', array(
array('id', '=', $_SESSION['customer_id'])
));
После того, как обновление базы данных разрешит проблему, HOWEVER я действительно не хочу снова запрашивать базу данных. Возможно ли повторить запрос? Или это не имеет большого значения?
Является ли страница, указанная выше account.php?
Если это так, header("Location: account.php");
в основном перенаправляет браузер на рассматриваемую страницу и, тем самым, теряет все почтовые данные.