在HTML模板PHP上访问sesssion变量

时间:2019-05-14 03:57:04

标签: php html front-controller

我有一个简单的Web表单,希望验证记住错误时,该表单要记住最后一个条目。

一般过程是:

如果输入错误,则以-- press submit -- data validation --格式输入数据,如果显示错误消息,则将输入的数据保留在表单上,​​并且不存储在DB的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)

0 个答案:

没有答案