请帮助我解决标题中指定的问题。
代码部分为:
<?php
// framework related things in this file.
// vsf = Very Simple Framework
$vsf = new stdClass;
// default app_layout file
$vsf->app_layout = 'app_layout.php';
// define the 'index' file, where we should link back to.
// Need to include the path, otherwise S.E. friendly URLS get messed up.
$vsf->self = '/mapcal/index.php';
// to support search engine friendly URLS, grab data from PATH_INFO
if (isset($_SERVER["PATH_INFO"]) ) {
$tmp_array = explode("/",$_SERVER["PATH_INFO"]);
for ($index = 0; $index < count($tmp_array); $index++) {
// only want the odd elements, they are the parameters. The even ones are the values
if ( $index % 2 == 0 ) { continue; }
$_REQUEST[$tmp_array[$index]] = $tmp_array[$index+1];
}
}
// these functions are for form error handling
$errorfields = array();
$errormsgs = array();
$errorwasthrown = FALSE;
function adderrmsg($field = '', $msg = '') {
global $errorfields;
global $errormsgs;
global $errorwasthrown;
if ($field) {
$errorfields[] = $field;
}
if ($msg) {
$errormsgs[] = $msg;
}
$errorwasthrown = TRUE;
}
function displayformerrors($errhdr = 'The following errors occured:') {
global $errorfields;
global $errormsgs;
if ( empty($errorfields) and empty($errormsgs) ) {return;}
if (! empty($errormsgs) ) {
print "<p style='color: red;'>$errhdr<br>'n";
foreach ($errormsgs as $msg) {
print "• $msg<br>'n";
}
print "</p>'n'n";
}
}
function displayformlabel ($field = '', $label = '') {
global $errorfields;
if ( in_array($field,$errorfields) ) {
print "<span style='color: red;'>$label</span>";
}
else {
print $label;
}
}
function reuseform($formaction = 'new',$field_list = '',$query = '') {
if ($formaction == "new") {
foreach (split(",",$field_list) as $field) {
global ${$field};
${$field} = '';
}
}
elseif ($formaction == 'form') {
foreach (split(",",$field_list) as $field) {
global ${$field};
${$field} = $_REQUEST[$field];
}
}
elseif ($formaction == 'query') {
foreach (split(",",$field_list) as $field) {
global ${$field};
${$field} = $query[$field];
}
}
} // close function reuseform
?>
第 90 行是: ${$field} = $query[$field];
由于表单中有 12 个字段,因此通知显示 12 次,但为什么显示它,我无法在表单字段中看到用于编辑目的的数据。请帮助我解决这个问题。
检查以确保 $_REQUEST 保存变量。
此外,默认情况下,重用表单似乎将$query设置为"而不是 Array() ...$query设置是否正确?此错误指示它不是。
显然${$field}
的计算结果为 "0"
,并且没有定义$query["0"]
。
您可以将此快速修复程序与isset
一起使用
if(isset($GLOBALS[${$field}]))
{
${$field} = $query [$field];
}