From: Nicolas Boisselier Date: Mon, 23 Oct 2017 13:40:35 +0000 (+0100) Subject: lib/php/db/table.php X-Git-Url: https://git.nbdom.net/?a=commitdiff_plain;h=59222794c3a613eee45f39273495ab2f9241caa9;p=nb.git lib/php/db/table.php --- diff --git a/lib/php/db/table.php b/lib/php/db/table.php index 58bd563c..5041d0d5 100644 --- a/lib/php/db/table.php +++ b/lib/php/db/table.php @@ -534,6 +534,41 @@ Class Table extends nb { $st = $this->db()->conn->prepare($sql); $st->execute(); + $form_hidden = ''; + $url_params = [ + 'referer' => (!empty($_SERVER['HTTP_REFERER']) ? urlencode($_SERVER['HTTP_REFERER']) : ''), + ]; + if ($this->show_hidden_params and !empty(self::$params)) { + $form_hidden = '' + .self::form_hidden([],array_merge($this->params2hash(self::$params),[ + 'action' => ($add ? 'insert' : 'update'), + 'referer' => (!empty($_SERVER['HTTP_REFERER']) ? urlencode($_SERVER['HTTP_REFERER']) : ''), + ])) + ; + + foreach (self::$params as $p) { + if (!($v = self::p($p))) continue; + $url_params[$p] = $v; + } + $url_params['action'] = ($add ? 'insert' : 'update'); + + } else { + $form_hidden = (!empty($_SERVER['HTTP_REFERER']) ? '' : ''); + #echo self::form_hidden(['HTTP_REFERER']); + } + + #debug($form_hidden); + if (false and $url_params) { + $flat = []; + foreach ($url_params as $k=>$v) { + if ((string)$v === '') continue; + $flat[] = $k.'='.urlencode($v); + } + $form_action .= ( strpos('?',$form_action) === false ? '&' : '' ) . join('&',$flat); + #debug($form_action); + $form_hidden = ''; + } + echo '
'.NB_EOL; echo '
'.NB_EOL; $count = 0; @@ -569,23 +604,7 @@ Class Table extends nb { .'
'.NB_EOL ; - if ($this->show_hidden_params and !empty(self::$params)) { - echo '' - .self::form_hidden([],array_merge($this->params2hash(self::$params),[ - 'action' => ($add ? 'insert' : 'update'), - 'referer' => (!empty($_SERVER['HTTP_REFERER']) ? urlencode($_SERVER['HTTP_REFERER']) : ''), - ])) -# NB 23.10.17 .self::form_hidden(['action','referer']) -# NB 23.10.17 // NB 19.10.17: action reactivated for rent -# NB 23.10.17 .(!empty($fields['action']) ? '' : '') -# NB 23.10.17 .(!empty($_SERVER['HTTP_REFERER']) ? '' : '') - ; - } else { - echo (!empty($_SERVER['HTTP_REFERER']) ? '' : ''); - #echo self::form_hidden(['HTTP_REFERER']); - } - - echo '
'.NB_EOL; + echo $form_hidden.''.NB_EOL; } @@ -1614,16 +1633,16 @@ Class Table extends nb { foreach ($this->fields() as $name => $field) { - if (!isset($post[$this->key_preff.$name])) { - if ($field->key) $this->bye("Missing `$name`!"); - continue; - } - $value = $post[$this->field_preff.$name]; if ($field->key) { $keys[] = $name; + if (!isset($post[$this->key_preff.$name])) { + if ($field->key) $this->bye("Missing `$name`!"); + continue; + } + $_value = isset($post[$this->key_preff.$name]) ? $post[$this->key_preff.$name] : null; if ($_value) {