Доступ к переменной sesssion в HTML-шаблоне PHP - PullRequest
1 голос
/ 14 мая 2019

У меня есть простая веб-форма, где я хочу, чтобы форма запоминала последнюю запись в случае, если проверка выдает ошибку.

Общий процесс:

ввод данных в форму-- press submit -- data validation -- если ошибка, отобразить сообщение об ошибке, сохранить введенные данные в форме и не сохранять в DB | if no error -- хранилище в БД.

В настоящее время я использую HTML-рендеринг шаблона и хотел бы продолжать это делать.

Форма представляет собой обычный HTML, а часть формы выглядит следующим образом

 <table class="form-table" id="addContact">
        <tbody>
        <tr>
            <td>Eesnimi:</td>
            <td><input type="text" id="fname" name="firstName" placeholder="Sinu eesnimi.." value= "{{ session.firstName }}"></td>
        </tr>

В настоящее время я сохранил значения как переменные сеанса.Сеанс запускается из Index.php, а проверка и рендеринг шаблона HTML происходит в Index.php.Форма хранится в переменных Add.html

Index.php add.html

Session следующим образом:

$_SESSION['firstName'] = $firstName;
    $_SESSION['lastName'] = $lastName;
    $_SESSION['phones'] = $phones;

В настоящее время форма простоотображение {{ session.firstName }}, а не значение переменной сеанса.Я попытался установить переменную в шаблоне HTML, но это вызвало общую ошибку.

<?php

namespace {

    use tpl\Scope;

    function render_template($templatePath, $data = []) {
        $node = new DOMDocument();
        libxml_use_internal_errors(true);
        $node->loadHTMLFile($templatePath);

        tpl\traverse($node, new Scope($data));

        return $node->saveHTML();
    }

}

class Entry {
        public $key;
        public $value;

        public function __construct($name, $key) {
            $this->key = $name;
            $this->value = $key;
        }

        public function __toString() {
            return $this->key . "->" . $this->value;
        }
    }

И вызов render_template (путь к шаблону, данные здесь нажимают $ _SESSION)

...