function toPHPArray($str) { //first get raw array $array = explode(";", $str); //escape and add quotes to elements $safeArray = array(); foreach ($array as $entry) { array_push($safeArray, "'" . escapePHP($entry) . "'"); } //implode to comma+space-delimited array and add "array(" and ")" return "array(" . implode(", ", $safeArray) . ")"; }
include "../include/config.php"; if (isset($_SESSION['root'])) { $styles_available = $config['style_available']; //todo: editing style option will cause session.php to change session style! $option_list = array('mail_smtp', 'mail_username', 'mail_password', 'mail_smtp_host', 'mail_smtp_port', 'site_name', 'organization_name', 'site_address', 'form_array_delimiter', 'max_recommend', 'style', 'app_enabled', 'latex_path', 'time_dateformat', 'club_dateformat', 'page_display', 'page_display_names'); $option_tabs = array("mail_smtp" => array("Mail", "Mail SMTP", "options" => array("true", "false")), "mail_username" => array("Mail", "Username"), "mail_smtp_host" => array("Mail", "SMTP Host"), "mail_smtp_port" => array("Mail", "SMTP Port"), "mail_password" => array("Mail", "Password"), "site_name" => array("Basic", "Site Name"), "organization_name" => array("Basic", "Organization Name"), "site_address" => array("Basic", "Site Address"), "form_array_delimiter" => array("Advanced", "Form_Array_Delimiter"), "max_recommend" => array("Basic", "Max Recommend"), "style" => array("Basic", "Site Style", "options" => $styles_available), "app_enabled" => array("Basic", "Application Enabled", "options" => array("true", "false")), "latex_path" => array("Advanced", "LATEX path"), "time_dateformat" => array("Basic", "Time & Date Format"), "club_dateformat" => array("Basic", "Club Date Format"), "page_display" => array("Advanced", "Pages Displayed"), "page_display_names" => array("Advanced", "Page Names")); $display_tabs = array("Basic", "Mail", "Advanced"); $hide_options = array('mail_password'); $array_options = array("page_display", "page_display_names"); //write configuration if (isset($_REQUEST['submit'])) { $options = array(); foreach ($option_list as $option_name) { if (array_key_exists($option_name, $_REQUEST) && !in_array($option_name, $array_options)) { if (!in_array($option_name, $array_options)) { $options[$option_name] = escapePHP($_REQUEST[$option_name]); } else { $options[$option_name] = toPHPArray($_REQUEST[$option_name]); } } else { $options[$option_name] = ''; //this will write previous value } } if (!isset($options['mail_password']) || $options['mail_password'] == '') { $options['mail_username'] = ''; $options['mail_smtp_host'] = ''; $options['mail_smtp_port'] = ''; } if (isset($options['max_recommend']) && !is_numeric($options['max_recommend'])) { $options['max_recommend'] = 10;