Поля ввода не отображают значение после отправки формы?

1

У меня возникла небольшая проблема с получением значений формы для отображения после того, как я отправил форму. Главное, когда форма отправляется, все поля ввода пустуют. Но поля 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 я действительно не хочу снова запрашивать базу данных. Возможно ли повторить запрос? Или это не имеет большого значения?

  • 0
    Какие поля ввода?
  • 0
    Подождите, позвольте мне добавить это тоже.
Показать ещё 1 комментарий
Теги:

1 ответ

0

Является ли страница, указанная выше account.php?

Если это так, header("Location: account.php"); в основном перенаправляет браузер на рассматриваемую страницу и, тем самым, теряет все почтовые данные.

Ещё вопросы

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