From bc426821d8ae6319bd9394ac275bb700e6394fc3 Mon Sep 17 00:00:00 2001 From: Joe Hunt Date: Mon, 26 May 2008 11:02:59 +0000 Subject: [PATCH] Fixed many minor bugs, new ones as well as debtor_trans related. Changed to use DOCTYPE html 4.01 transitional. Some files/css needed change. --- CHANGELOG.txt | 24 ++++ admin/backups.php | 98 ++++++------- admin/create_coy.php | 32 +++-- admin/inst_lang.php | 70 ++++----- admin/inst_module.php | 70 ++++----- gl/manage/exchange_rates.php | 38 ++--- includes/page/header.inc | 3 +- includes/session.inc | 26 ++-- includes/ui/ui_controls.inc | 43 +++--- includes/ui/ui_input.inc | 88 +++++++----- includes/ui/ui_lists.inc | 9 +- includes/ui/ui_view.inc | 15 +- purchasing/allocations/supplier_allocate.php | 24 ++-- sales/allocations/customer_allocate.php | 18 +-- sales/includes/db/sales_credit_db.inc | 2 + sales/inquiry/customer_allocation_inquiry.php | 34 ++--- themes/aqua/default.css | 112 ++++++++------- themes/cool/default.css | 134 +++++++++--------- themes/default/default.css | 14 +- 19 files changed, 459 insertions(+), 395 deletions(-) diff --git a/CHANGELOG.txt b/CHANGELOG.txt index 4757ff1c..90982c47 100644 --- a/CHANGELOG.txt +++ b/CHANGELOG.txt @@ -19,6 +19,30 @@ Legend: ! -> Note $ -> Affected files +26-May-2008 Joe Hunt +# Fixed many minor bugs, new ones as well as debtor_trans related. +! Changed to use DOCTYPE html 4.01 transitionel. Some files/css needed change. +$ /admin/backups.php + /admin/create_coy.php + /admin/inst_lang.php + /admin/inst_module.php + /gl/manage/exchange_rates.php + /includes/session.inc + /includes/page/header.inc + /includes/ui/ui_controls.inc + /includes/ui/ui_input.inc + /includes/ui/ui_lists.inc + /includes/ui/ui_view.inc + /purchasing/allocations/supplier_allocate.php + /sales/allocations/customer_allocate.php + /sales/includes/db/sales_credit_db.inc + /sales/inquiry/customer_allocation_inquiry.php + /themes/aqua/default.css + /themes/cool/default.css + /themes/default/default.css + + + 23-May-2008 Joe Hunt # Minor bug in dimensions.php (Outstanding Dimensions) $ /applications/dimensions.php diff --git a/admin/backups.php b/admin/backups.php index 4fcc453f..cf2ef1cf 100644 --- a/admin/backups.php +++ b/admin/backups.php @@ -9,7 +9,7 @@ include_once($path_to_root . "/admin/db/maintenance_db.inc"); $valid_paths = valid_paths(); //$valid_paths = ''; -if ($valid_paths != "") +if ($valid_paths != "") { page(_("Backup and Restore Database - Error")); display_error (_("Backup paths have not been set correctly.") ."   " . _("Please contact System Administrator.") . "
" .$valid_paths); @@ -45,7 +45,7 @@ echo " if (ext != 'sql') { alert('" . _('This extension can not be be viewed: ') . "' + ext) return - } + } window.open('" . BACKUP_PATH . "'+pFilename, '', 'toolbar=no,scrollbars=yes') } function deleteBackup() { @@ -71,31 +71,31 @@ echo " - + - + - + - +
$msg 
" . _("Backup scripts") . "" . _("Backup scripts") . "
$cmb$cmb - - - - - - - + + + + + + +
" . _("Compression") . "  $compr
 
 
 
 
" . _("Compression") . "  $compr
 
 
 
 
" . _("Comments") . " (" . _("Create Backup") . ")" . _("Comments") . " (" . _("Create Backup") . ")
"; @@ -106,47 +106,47 @@ end_form(); end_page(); -function handle_form($conn) +function handle_form($conn) { global $path_to_root; //Generate Only if (isset($_GET['c'])) { - if ($_GET['c']=='g') + if ($_GET['c']=='g') { $filename = generate_backup($conn, $_GET['comp'], $_GET['comm']); header("Location: backups.php?c=gs&fn=" . urlencode($filename)); return ""; } //Generate and download - if ($_GET['c']=='gd') + if ($_GET['c']=='gd') { $filename = generate_backup($conn); header("Location: backups.php?c=ds&fn=" . urlencode($filename)); return ""; } //Download the file - if ($_GET['c']=='d') + if ($_GET['c']=='d') { download_file(BACKUP_PATH . $_GET['fn']); exit; } //Delete the file - if ($_GET['c']=='df') + if ($_GET['c']=='df') { $filename = $_GET['fn']; @unlink(BACKUP_PATH . $filename); header("Location: backups.php?c=dff&fn=" . urlencode($filename)); return ""; } - if ($_GET['c']=='dff') + if ($_GET['c']=='dff') { $msg = _("File successfully deleted.")."   "; $msg .= _("Filename") . " = " . $_GET['fn']; return $msg; } //Write JS script to open download window - if ($_GET['c']=='ds') + if ($_GET['c']=='ds') { $filename = urlencode($_GET['fn']); $msg = _("Backup is being downloaded..."); @@ -156,14 +156,14 @@ function handle_form($conn) return $msg; } //Print backup success message - if ($_GET['c']=='gs') + if ($_GET['c']=='gs') { $msg = _("Backup successfully generated.")."   "; $msg .= _("Filename") . " = " . $_GET['fn']; return $msg; } //Restore backup - if ($_GET['c']=='r') + if ($_GET['c']=='r') { $filename=$_GET['fn']; restore_backup(BACKUP_PATH . $filename, $conn); @@ -171,48 +171,48 @@ function handle_form($conn) return ""; } //Print restore success message - if ($_GET['c']=='rs') + if ($_GET['c']=='rs') { $msg = _("Restore backup completed.")."   "; return $msg; } - if ($_GET['c']=='u') + if ($_GET['c']=='u') { $filename = $_FILES['uploadfile']['tmp_name']; - if (is_uploaded_file ($filename)) + if (is_uploaded_file ($filename)) { restore_backup($filename, $conn); $msg = _("Uploaded file has been restored."); - } - else + } + else { $msg = _("Backup was not uploaded into the system."); } return $msg; } - } + } return ""; } -function generate_backup($conn, $ext='no', $comm='') +function generate_backup($conn, $ext='no', $comm='') { if ($conn['tbpref'] != "") $filename = $conn['dbname'] . "_" . $conn['tbpref'] . date("Ymd_Hi") . ".sql"; - else + else $filename = $conn['dbname'] . "_" . date("Ymd_Hi") . ".sql"; - - $filename = db_export($conn, $filename, $ext, $comm); - + + $filename = db_export($conn, $filename, $ext, $comm); + return $filename; } -function restore_backup($filename, $conn) +function restore_backup($filename, $conn) { return db_import($filename, $conn); -} +} -function get_backup_file_combo() +function get_backup_file_combo() { global $path_to_root; $ar_files = array(); @@ -225,31 +225,31 @@ function get_backup_file_combo() rsort($ar_files); $opt_files = ""; foreach ($ar_files as $file) - if (strpos($file, ".sql") || strpos($file, ".sql")) + if (strpos($file, ".sql") || strpos($file, ".sql")) $opt_files .= ""; - return ""; + return ""; } -function get_compr_combo() +function get_compr_combo() { $ar_comps = array(); - + $ar_comps[] = _("No"); - if (function_exists("gzcompress")) + if (function_exists("gzcompress")) $ar_comps[] = "zip"; - if (function_exists("gzopen")) + if (function_exists("gzopen")) $ar_comps[] = "gzip"; $opt_comps = ""; foreach ($ar_comps as $file) $opt_comps .= ""; return ""; -} - -function download_file($filename) +} + +function download_file($filename) { - if (empty($filename) || !file_exists($filename)) + if (empty($filename) || !file_exists($filename)) { return FALSE; } @@ -261,12 +261,12 @@ function download_file($filename) return true; } -function valid_paths() +function valid_paths() { global $path_to_root; - + $st = ""; - if (!file_exists(BACKUP_PATH)) + if (!file_exists(BACKUP_PATH)) $st .= "   - " . _("cannot find backup directory") . " - " . BACKUP_PATH . "
"; return $st; } diff --git a/admin/create_coy.php b/admin/create_coy.php index af3cffd2..d2498b01 100644 --- a/admin/create_coy.php +++ b/admin/create_coy.php @@ -32,19 +32,25 @@ function check_data() { global $db_connections, $tb_pref_counter; - foreach($db_connections as $id=>$con) { - if ($_POST['host'] == $con['host'] && $_POST['dbname'] == $con['dbname']) { - if ($_POST['tbpref'] == $con['tbpref']) { - display_error(_("This database settings are already used by another company.")); - return false; - } - if ($_POST['tbpref'] == 0 || $con['tbpref'] == '') { - display_error(_("You cannot have table set without prefix together with prefixed sets in the same database.")); - return false; - } - } + if ($_POST['name'] == "" || $_POST['host'] == "" || $_POST['dbuser'] == "" || $_POST['dbname'] == "") + return false; + foreach($db_connections as $id=>$con) + { + if ($_POST['host'] == $con['host'] && $_POST['dbname'] == $con['dbname']) + { + if ($_POST['tbpref'] == $con['tbpref']) + { + display_error(_("This database settings are already used by another company.")); + return false; + } + if ($_POST['tbpref'] == 0 || $con['tbpref'] == '') + { + display_error(_("You cannot have table set without prefix together with prefixed sets in the same database.")); + return false; + } + } } - return true; + return true; } //--------------------------------------------------------------------------------------------- @@ -305,7 +311,7 @@ function display_company_edit($selected_id) end_table(); display_note(_("Choose from Database scripts in SQL folder. No Datase is created without a script."), 0, 1); - echo "
"; + echo "
"; end_form(); diff --git a/admin/inst_lang.php b/admin/inst_lang.php index b076cc02..cc0cc0e3 100644 --- a/admin/inst_lang.php +++ b/admin/inst_lang.php @@ -16,7 +16,7 @@ include_once($path_to_root . "/includes/ui.inc"); if (isset($_GET['selected_id'])) { $selected_id = $_GET['selected_id']; -} +} elseif (isset($_POST['selected_id'])) { $selected_id = $_POST['selected_id']; @@ -28,6 +28,8 @@ else function check_data() { + if ($_POST['code'] == "" || $_POST['name'] == "" || $_POST['encoding'] == "") + return false; return true; } @@ -45,15 +47,15 @@ function array_natsort($aryData, $strIndex, $strSortBy, $strSortType=false) if (!is_array($aryData) || !$strIndex || !$strSortBy) // return the array return $aryData; - + // create our temporary arrays $arySort = $aryResult = array(); - + // loop through the array foreach ($aryData as $aryRow) // set up the value in the array $arySort[$aryRow[$strIndex]] = $aryRow[$strSortBy]; - + // apply the natural sort natsort($arySort); @@ -61,7 +63,7 @@ function array_natsort($aryData, $strIndex, $strSortBy, $strSortType=false) if ($strSortType=="desc") // reverse the array arsort($arySort); - + // loop through the sorted and original data foreach ($arySort as $arySortKey => $arySorted) foreach ($aryData as $aryOriginal) @@ -72,7 +74,7 @@ function array_natsort($aryData, $strIndex, $strSortBy, $strSortType=false) // return the return return $aryResult; -} +} function write_lang() { @@ -82,9 +84,9 @@ function write_lang() $conn = array_natsort($installed_languages, 'code', 'code'); $installed_languages = $conn; //reset($installed_languages); - $n = count($installed_languages); + $n = count($installed_languages); $msg = " ')\n"; $msg .= "-- 'code' should match the name of the directory for the language under \\lang\n"; @@ -112,16 +114,16 @@ function write_lang() $filename = $path_to_root . "/lang/installed_languages.inc"; // Check if the file exists and is writable first. - if (file_exists($filename) && is_writable($filename)) + if (file_exists($filename) && is_writable($filename)) { - if (!$zp = fopen($filename, 'w')) + if (!$zp = fopen($filename, 'w')) { display_error(_("Cannot open the languages file - ") . $filename); return false; - } - else + } + else { - if (!fwrite($zp, $msg)) + if (!fwrite($zp, $msg)) { display_error(_("Cannot write to the language file - ") . $filename); fclose($zp); @@ -130,8 +132,8 @@ function write_lang() // Close file fclose($zp); } - } - else + } + else { display_error(_("The language file ") . $filename . _(" is not writable. Change its permissions so it is, then re-run the operation.")); return false; @@ -156,12 +158,12 @@ function handle_submit() $installed_languages[$id]['rtl'] = (bool)$_POST['rtl']; if (!write_lang()) return false; - $directory = $path_to_root . "/lang/" . $_POST['code']; + $directory = $path_to_root . "/lang/" . $_POST['code']; if (!file_exists($directory)) { mkdir($directory); mkdir($directory . "/LC_MESSAGES"); - } + } if (is_uploaded_file($_FILES['uploadfile']['tmp_name'])) { $file1 = $_FILES['uploadfile']['tmp_name']; @@ -187,13 +189,13 @@ function handle_delete() { global $path_to_root, $installed_languages; - $id = $_GET['id']; + $id = $_GET['id']; $lang = $installed_languages[$id]['code']; - $filename = "$path_to_root/lang/$lang/LC_MESSAGES"; - if ($h = opendir($filename)) + $filename = "$path_to_root/lang/$lang/LC_MESSAGES"; + if ($h = opendir($filename)) { - while (($file = readdir($h)) !== false) + while (($file = readdir($h)) !== false) { if (is_file("$filename/$file")) unlink("$filename/$file"); @@ -201,10 +203,10 @@ function handle_delete() closedir($h); } rmdir($filename); - $filename = "$path_to_root/lang/$lang"; - if ($h = opendir($filename)) + $filename = "$path_to_root/lang/$lang"; + if ($h = opendir($filename)) { - while (($file = readdir($h)) !== false) + while (($file = readdir($h)) !== false) { if (is_file("$filename/$file")) unlink("$filename/$file"); @@ -231,7 +233,7 @@ function display_languages() global $table_style, $installed_languages; $lang = $_SESSION["language"]->code; - + echo " "; - + start_table($table_style2); - if ($selected_id != -1) + if ($selected_id != -1) { $conn = $installed_languages[$selected_id]; $_POST['code'] = $conn['code']; @@ -306,7 +308,7 @@ function display_language_edit($selected_id) else $_POST['rtl'] = false; hidden('selected_id', $selected_id); - } + } text_row_ex(_("Language"), 'code', 20); text_row_ex(_("Name"), 'name', 20); text_row_ex(_("Encoding"), 'encoding', 20); @@ -318,7 +320,7 @@ function display_language_edit($selected_id) end_table(0); display_note(_("Select your language files from your local harddisk."), 0, 1); - echo "
"; + echo "
"; end_form(); @@ -329,18 +331,18 @@ function display_language_edit($selected_id) if (isset($_GET['c'])) { - if ($_GET['c'] == 'df') + if ($_GET['c'] == 'df') { handle_delete(); } - if ($_GET['c'] == 'u') + if ($_GET['c'] == 'u') { - if (handle_submit()) + if (handle_submit()) { //meta_forward($_SERVER['PHP_SELF']); } - } + } } //--------------------------------------------------------------------------------------------- diff --git a/admin/inst_module.php b/admin/inst_module.php index 76cb8363..2dfde4b9 100644 --- a/admin/inst_module.php +++ b/admin/inst_module.php @@ -13,15 +13,15 @@ include_once($path_to_root . "/modules/installed_modules.php"); include_once($path_to_root . "/includes/ui.inc"); $tabs = array('orders', 'AP', 'stock', 'manuf', 'proj', 'GL', 'system'); -$names = array(_("Sales"), _("Purchases"), _("Items and Inventory"), _("Manufacturing"), +$names = array(_("Sales"), _("Purchases"), _("Items and Inventory"), _("Manufacturing"), _("Dimensions"), _("Banking and General Ledger"), _("Setup")); - + //--------------------------------------------------------------------------------------------- if (isset($_GET['selected_id'])) { $selected_id = $_GET['selected_id']; -} +} elseif (isset($_POST['selected_id'])) { $selected_id = $_POST['selected_id']; @@ -55,9 +55,9 @@ function tab_list_row($label, $name, $selected) { if ($selected == $tabs[$i]) echo "\n"; - else + else echo "\n"; - } + } echo "\n"; echo "\n"; } @@ -66,6 +66,8 @@ function tab_list_row($label, $name, $selected) function check_data() { + if ($_POST['name'] == "" || $_POST['path'] == "") + return false; return true; } @@ -83,15 +85,15 @@ function array_natsort($aryData, $strIndex, $strSortBy, $strSortType=false) if (!is_array($aryData) || !$strIndex || !$strSortBy) // return the array return $aryData; - + // create our temporary arrays $arySort = $aryResult = array(); - + // loop through the array foreach ($aryData as $aryRow) // set up the value in the array $arySort[$aryRow[$strIndex]] = $aryRow[$strSortBy]; - + // apply the natural sort natsort($arySort); @@ -99,7 +101,7 @@ function array_natsort($aryData, $strIndex, $strSortBy, $strSortType=false) if ($strSortType=="desc") // reverse the array arsort($arySort); - + // loop through the sorted and original data foreach ($arySort as $arySortKey => $arySorted) foreach ($aryData as $aryOriginal) @@ -110,7 +112,7 @@ function array_natsort($aryData, $strIndex, $strSortBy, $strSortType=false) // return the return return $aryResult; -} +} function write_modules() { @@ -119,9 +121,9 @@ function write_modules() $mods = array_natsort($installed_modules, 'tab', 'tab'); $installed_modules = $mods; //reset($installed_languages); - $n = count($installed_modules); + $n = count($installed_modules); $msg = ""; - + start_table($table_style2); - if ($selected_id != -1) + if ($selected_id != -1) { $mod = $installed_modules[$selected_id]; $_POST['tab'] = $mod['tab']; @@ -316,7 +318,7 @@ function display_module_edit($selected_id) $_POST['filename'] = $mod['filename']; hidden('selected_id', $selected_id); hidden('filename', $_POST['filename']); - } + } tab_list_row(_("Menu Tab"), 'tab', null); text_row_ex(_("Name"), 'name', 30); text_row_ex(_("Folder"), 'path', 20); @@ -326,7 +328,7 @@ function display_module_edit($selected_id) end_table(0); display_note(_("Select your module PHP file from your local harddisk."), 0, 1); - echo "
"; + echo "
"; end_form(); @@ -337,18 +339,18 @@ function display_module_edit($selected_id) if (isset($_GET['c'])) { - if ($_GET['c'] == 'df') + if ($_GET['c'] == 'df') { handle_delete(); } - if ($_GET['c'] == 'u') + if ($_GET['c'] == 'u') { - if (handle_submit()) + if (handle_submit()) { //meta_forward($_SERVER['PHP_SELF']); } - } + } } //--------------------------------------------------------------------------------------------- diff --git a/gl/manage/exchange_rates.php b/gl/manage/exchange_rates.php index 5ece97ad..2f0cce3c 100644 --- a/gl/manage/exchange_rates.php +++ b/gl/manage/exchange_rates.php @@ -18,7 +18,7 @@ page(_("Exchange Rates"), false, false, "", $js); if (isset($_GET['selected_id'])) { $selected_id = $_GET['selected_id']; -} +} elseif (isset($_POST['selected_id'])) { $selected_id = $_POST['selected_id']; @@ -28,7 +28,7 @@ else //--------------------------------------------------------------------------------------------- function check_data() { - if (!is_date($_POST['date_'])) + if (!is_date($_POST['date_'])) { display_error( _("The entered date is invalid.")); set_focus('date_'); @@ -59,13 +59,13 @@ function handle_submit() if (!check_data()) return false; - if ($selected_id != "") + if ($selected_id != "") { update_exchange_rate($_POST['curr_abrev'], $_POST['date_'], input_num('BuyRate'), input_num('BuyRate')); - } - else + } + else { add_exchange_rate($_POST['curr_abrev'], $_POST['date_'], @@ -103,7 +103,7 @@ function display_rates($curr_code) $k = 0; //row colour counter - while ($myrow = db_fetch($result)) + while ($myrow = db_fetch($result)) { alt_table_row_color($k); @@ -131,8 +131,8 @@ function display_rate_edit() if (isset($_POST['get_rate'])) { $_POST['BuyRate'] = exrate_format(get_ecb_rate($_POST['curr_abrev'])); - } - if ($selected_id != "") + } + if ($selected_id != "") { //editing an existing exchange rate @@ -146,13 +146,13 @@ function display_rate_edit() hidden('curr_abrev', $_POST['curr_abrev']); label_row(_("Date to Use From:"), $_POST['date_']); - } - else + } + else { date_row(_("Date to Use From:"), 'date_'); } - small_amount_row(_("Exchange Rate:"), 'BuyRate', null, '', - submit('get_rate',_("Get")), user_exrate_dec()); + small_amount_row(_("Exchange Rate:"), 'BuyRate', null, '', + submit('get_rate',_("Get"), false), user_exrate_dec()); end_table(1); @@ -172,10 +172,10 @@ function clear_data() //--------------------------------------------------------------------------------------------- -if (isset($_POST['ADD_ITEM']) || isset($_POST['UPDATE_ITEM'])) +if (isset($_POST['ADD_ITEM']) || isset($_POST['UPDATE_ITEM'])) { - if (handle_submit()) + if (handle_submit()) { meta_forward($_SERVER['PHP_SELF']); } @@ -183,7 +183,7 @@ if (isset($_POST['ADD_ITEM']) || isset($_POST['UPDATE_ITEM'])) //--------------------------------------------------------------------------------------------- -if (isset($_GET['delete'])) +if (isset($_GET['delete'])) { handle_delete(); @@ -201,7 +201,7 @@ echo _("Select a currency :") . " "; currencies_list('curr_abrev', $_POST['curr_abrev'], true); // if currency sel has changed, clear the form -if ($_POST['curr_abrev'] != get_global_curr_code()) +if ($_POST['curr_abrev'] != get_global_curr_code()) { clear_data(); $selected_id = ""; @@ -209,13 +209,13 @@ if ($_POST['curr_abrev'] != get_global_curr_code()) set_global_curr_code($_POST['curr_abrev']); -if (is_company_currency($_POST['curr_abrev'])) +if (is_company_currency($_POST['curr_abrev'])) { display_note(_("The selected currency is the company currency."), 2); display_note(_("The company currency is the base currency so exchange rates cannot be set for it."), 1); -} -else +} +else { display_rates($_POST['curr_abrev']); diff --git a/includes/page/header.inc b/includes/page/header.inc index 7d52f410..b8f08e6b 100644 --- a/includes/page/header.inc +++ b/includes/page/header.inc @@ -99,10 +99,11 @@ function page_header($title, $no_menu=false, $is_index=false, $onload="", $js="" if (!headers_sent()){ header("Content-type: text/html; charset='$encoding'"); } + echo "\n"; echo "dir . "' >\n"; echo "$title"; $local_stylesheet = $_SESSION['language']->get_stylesheet(); - echo ""; + echo ""; echo " \n"; if (file_exists($local_path_to_root. "/".$local_stylesheet)) echo " \n"; diff --git a/includes/session.inc b/includes/session.inc index 026ad125..9ba28f49 100644 --- a/includes/session.inc +++ b/includes/session.inc @@ -9,13 +9,13 @@ | by Joe Hunt Consulting | \--------------------------------------------------*/ - function output_html($text) + function output_html($text) { global $before_box; return in_ajax() ? fmt_errors() : ($before_box.fmt_errors().$text); } - if (!isset($path_to_root)) + if (!isset($path_to_root)) { $path_to_root = "."; } @@ -48,7 +48,7 @@ //---------------------------------------------------------------------------------------- - function kill_login() + function kill_login() { session_unset(); session_destroy(); @@ -56,7 +56,7 @@ //---------------------------------------------------------------------------------------- - function login_fail() + function login_fail() { echo "


" . _("Incorrect Password") . "

"; echo "" . _("The user and password combination is not valid for the system.") . "

"; @@ -71,9 +71,9 @@ //---------------------------------------------------------------------------------------- - function check_page_security($page_security) + function check_page_security($page_security) { - if (!$_SESSION["wa_current_user"]->check_user_access()) + if (!$_SESSION["wa_current_user"]->check_user_access()) { echo "


"; echo "" . _("Security settings have not been defined for your user account."); @@ -83,14 +83,14 @@ exit; } - if (!$_SESSION["wa_current_user"]->can_access_page($page_security)) + if (!$_SESSION["wa_current_user"]->can_access_page($page_security)) { page(_("Access denied")); echo "



"; echo _("The security settings on your account do not permit you to access this function"); echo ""; echo "

" . _("Back") . ""; - echo "



"; + echo "



"; //echo '