Помогите решить проблемку! В общем выдает ошибку Parse error на строке case <NAME> : перебровал различные вариации, не помогает В общем нужно чтоб в кейсе инклудился файл модуля из базы. название модулей хранится в бд PHP: <?php switch ( $_GET['action'] ) { case "workers" : include ENGINE_DIR . '/admin_inc/workers/workers.php'; break; case "module" : include ENGINE_DIR . '/admin_inc/module/module.php'; break; $query = mysql_query("SELECT * FROM ".PREFIX."_modules ORDER by `id`"); if(mysql_num_rows($query)) { while($data = mysql_fetch_array($query)) { define ( '<NAME>', totranslit($data['name']) ); case <NAME> : include ENGINE_DIR . '/admin_inc/'.<NAME>.'/'.<NAME>.'.php'; break; } } default : if(empty($_GET['action'])) include ENGINE_DIR . '/admin_inc/main.php'; else include ENGINE_DIR . '/modules/error.php'; break; } else include ENGINE_DIR . '/admin_inc/main.php';
читал, но видимо плохо))) ну дело в том, что в базе хранятся названия модулей. а мне нужно заинклудить модули в кейсах. вообще это возможно или я опять перемудрил что-то :-[
Тут все неверно построено. 1. У тебя куски кода находятся внутри switch, но не принадлежат ниодному из case (строки 11-22) 2. if/else неверно построены - if находится внутри switch, else - вне его. Куча синтаксических ошибок, проще заново переписать.
PHP: <?php $query = mysql_query("SELECT * FROM ".PREFIX."_modules WHERE name='".mysql_real_escape_string($_GET['action'])."'"); switch ( $_GET['action'] ) { case "workers" : include ENGINE_DIR . '/admin_inc/workers/workers.php'; break; case "module" : include ENGINE_DIR . '/admin_inc/module/module.php'; break; default : if(empty($_GET['action'])) include ENGINE_DIR . '/admin_inc/main.php'; elseif(mysql_num_rows($query)) { $data = mysql_fetch_array($query); define ( "NAME", totranslit($data['name']) ); include ENGINE_DIR . '/admin_inc/'.NAME.'/'.NAME.'.php'; } else include ENGINE_DIR . '/modules/error.php'; break; } в общем сделал так! огромное спасибо Padaboo
да ну это тоже самое, что print_f и do while у одного нехорошего человека, switch case видел только во всяких обертках над GD и то лучше бы какую нибудь фабрику применяли
никогда не понимал смысла таких функций для служебного пользования, если есть iconv("…", "…//TRANSLIT", $text);
наслаждайся PHP: <?php require("includes/include.php"); if(!in_array($user['US_ID'],$allowed_admin)) ErrorMessage('You are not allowed to change anything'); $cmd = isset($_POST['CMD'])?trim($_POST['CMD']):trim($_GET['cmd']); switch ($cmd) { /////////////////////////////////////////////////////////////////////////// case "admin_delete": // Admin: Delete user if (!$user['US_ADMIN']) ErrorMessage("Access denied."); $db->delete("account_types",array( array("FIELD"=>"AT_ID","QUALIFIER"=>"EQ","VALUE"=>intval($_GET['id'])) )); Header("Location: ".$gl_site_secured."account_types.php?cmd=admin_list"); break; /////////////////////////////////////////////////////////////////////////// case "admin_edit": // Admin: Show edit user blank if (!$user['US_ADMIN']) ErrorMessage("Access denied."); if (intval($_GET['id'])>0 && $db->find("account_types",array( array("FIELD"=>"AT_ID", "QUALIFIER"=>"EQ", "VALUE"=>intval($_GET['id'])) ))==1 && $db->row(0,$account_type)) { $page->assign($account_type); } else { $page->assign("AT_ID","0"); } $page->display("account_types_admin_edit.tpl"); break; /////////////////////////////////////////////////////////////////////////// case "admin_store": // Admin: Store account type info if (!$user['US_ADMIN']) ErrorMessage("Access denied."); if (intval($_POST['AT_ID'])>0) { // Update existing account_type if (!$db->update("account_types",array( "AT_NAME" => $_POST['AT_NAME'], ), array( array("FIELD"=>"AT_ID", "QUALIFIER"=>"EQ", "VALUE"=>intval($_POST['AT_ID'])) ))) ErrorMessage("Strange error occurs during updating of account type..."); } else { // Insert new account type if (!$db->insert("account_types",array( "AT_NAME" => $_POST['AT_NAME'], ))) ErrorMessage("Strange error occurs during insertion of account type..."); } Header("Location: ".$gl_site_secured."account_types.php?cmd=admin_list"); break; /////////////////////////////////////////////////////////////////////////// case "admin_list": // Admin: Show list of account types if (!$user['US_ADMIN']) ErrorMessage("Access denied."); if ($_GET['order']) $order = mysql_real_escape_string(trim(substr($_GET['order'],0,30))); else if ($_COOKIE['account_types_order']) $order = mysql_real_escape_string(trim(substr($_COOKIE['account_types_order'],0,30))); else $order = ""; setcookie("account_types_order",$order, time()+60*60*24*365); // Set for 1 year $page->assign("account_types_order",$order); $db->find("account_types",array(), $order); $i=0; $account_types = array(); while ($db->row($i++,$row)) { $status = ($row['CU_ALLOWED']?"Normal":"Blocked"); $account_types[] = array_merge($row, array( "status" => $status, "table_class" => ($i%2?"table_odd":"table_even") )); } $page->assign ("account_types",$account_types); $page->display("account_types_admin_list.tpl"); break; /////////////////////////////////////////////////////////////////////////// default: // Invalid command ErrorMessage("Requested URL is invalid."); } ?>
Luge это откуда? осталось только найти GOTO где нибудь в ооп коде и вместо java se пойду изучать java ee ^^
гото я тебе пока не покажу — не встречал нигде ещё, но из такого дерьма 80% самописных сайтов состоит. зы. учитывая появление goto в последних версиях учебники ещё не обновились, вот года через 3-4…