[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Fatal error: Cannot break/continue 1
valdemarin
Есть код, и никак не могу сообразить в чем проблема. Если что сильно не пинайте, в php я недавно. Строку выделил красным.
Fatal error: Cannot break/continue 1 level in /home/tralala.php on line 99

<?php


error_reporting( E_ALL ^ E_NOTICE );
define( "LM", true );
define( "TIMER", microtime( 1 ));
define( "MEMORY", memory_get_usage());
define( "ROOT_DIR", dirname( __FILE__ ));
define( "DATA_DIR", ROOT_DIR."/data" );
define( "LM_DIR", ROOT_DIR."/engine" );
session_start();
include( LM_DIR."/core.php" );
MainClass::$service = "admin";
MainClass::loadlang();
if ( config( "multilang" ) == "on" && isGet( "lang" ) && is_string( get( "lang" )) )
{
if ( MainClass::$session->IsUser())
{
MainClass::$db->query( "UPDATE `lm_users` SET `lang`='".( is_dir( "langs/".get( "lang" )) ? get( "lang" ) : config( "language" ))."' where `id`='".userinfo( "id" )."'" );
}
else
{
MainClass::setcookie( MainClass::$service."_lang", get( "lang" ));
}
return GoBack();
}
$e = $h = "";
if ( MainClass::$session->IsAdmin() && userinfo( "group_access_cp" ))
{
if ( isGet( "logout" ))
{
setcookie( config( "admin_cookies", "user" ), "", 0, "/" );
unset( $_SESSION['admin'] );
GoBack( MainClass::$filename );
}
MainClass::$modules->addHook( "admin_main_menu", "adminMenu", array(
"general",
lang( "home" )
));

MainClass::$modules->addHook( "admin_main_menu", "adminMenu", array(
"modules",
lang( "modules" )
));

MainClass::$modules->addHook( "admin_main_menu", "adminMenu", array(
"management",
lang( "management" )
));

MainClass::$modules->addHook( "admin_main_menu", "adminMenu", array(
"options",
lang( "preferences" )
));

$m = isGet( "module" ) ? ( boolean )$_GET['module'] : false;
switch ( get( "section" ))
{
case "options" :
MainClass::$modules->LoadModules( ROOT_DIR."/addons/admin/modules/", false, "section_options.php" );
break;
case "management" :
do
{
require( ROOT_DIR."/addons/admin/info.php" );
foreach ( $info as $k => $v )
{
MainClass::$modules->addHook( "admin_second_menu", "adminSecondMenu", array(
"management",
$k,
$info[$k]['title']
));

}
if ( !( $m && isset( $info[$m] )) )
{
break;
}
else
{
MainClass::$modules->LoadModules( ROOT_DIR."/addons/admin/modules/", false, $info[$m]['services'][MainClass::$service] );
}
}
while (0);
MainClass::$modules->LoadModules( ROOT_DIR."/addons/admin/modules/", false, "section_management.php" );
break;
case "modules" :
}
MainClass::$modules->InfoModules();
foreach ( MainClass::$modules->modules_components as $k )
{
MainClass::$modules->addHook( "admin_second_menu", "adminSecondMenu", array(
"modules",
$k
));
}
if ( $m && isset( $modules->modules_info[$m] ))
{
MainClass::$modules->LoadModules( ROOT_DIR."/modules/".$m."/", false );
}
else
{
MainClass::$modules->LoadModules( ROOT_DIR."/addons/admin/modules/", false, "section_modules.php" );
}
[color=red]break;[/color]
MainClass::$modules->LoadModules( ROOT_DIR."/addons/admin/modules/", false, "section_general.php" );
break;
MainClass::$tpl->InitTemplate( "admin", "index.php" );
MainClass::$tpl->TemplateBlocks();
MainClass::$tpl->set( "{theme}", MainClass::$tpl->tmpPath );
MainClass::$tpl->set( "{main}", call_user_func_array( "adminContent", array()) );
MainClass::$tpl->TemplateParse();
}
else
{
if ( isPost( "login" ) && isPost( "password" ) && post( "login" ) != "" )
{
$r = MainClass::$db->fetch( MainClass::$db->query( "SELECT `name`,`password`,`code`,`access_cp` FROM `lm_users` AS u LEFT JOIN `lm_groups` AS g ON(u.group=g.id) WHERE `name`='".post( "login" )."'" ));
if ( md5( post( "password" )) == $r['password'] && $r['code'] == "done" && $r['access_cp'] )
{
if ( !MainClass::$session->IsUser())
{
MainClass::$session->KillSessionCache();
setcookie( config( "user_cookies", "user" ), $r['name'].",".$r['password'], time() + 60 * 60 * 24 * intval( config( "time_of_life_session", "user" )), "/" );
if ( MainClass::$db->num( MainClass::$db->query( "SELECT `uname` FROM `lm_sessions` WHERE `uname`='".$r['name']."'" )) == 0 )
{
MainClass::$db->query( "UPDATE `lm_sessions` SET `uname`='".$r['name']."' WHERE `sid`='".session_id()."'" );
}
MainClass::$session->sRegister( $r['name'] );
}
$_SESSION['admin'] = $r['name'];
setcookie( config( "admin_cookies", "user" ), $r['name'].",".$r['password'], time() + 60 * 60 * 24 * intval( config( "time_of_life_session", "user" )), "/" );
GoBack();
}
else
{
$e = "<div class=\"panel\">".tError( "error", "Неправильный логин или пароль" )."</div>";
setcookie( config( "admin_cookies", "user" ), "", 0, "/" );
unset( $_SESSION['admin'] );
}
}

MainClass::$tpl->InitTemplate( "admin", "login.php" );
MainClass::$tpl->set( "{theme}", MainClass::$tpl->tmpPath );
MainClass::$tpl->set( "{error}", $e );
MainClass::$tpl->TemplateParse();
}
MainClass::$db->close();

?>




Спустя 4 минуты, 36 секунд (15.04.2012 - 16:49) inpost написал(а):
break; это выход из циклов, и операторов вроде switch.
break не выходит из условий IF.
ты не можешь в данном месте использовать break, потому что ему тупо не откуда выходить(!). Нет циклов.

Спустя 1 минута, 51 секунда (15.04.2012 - 16:50) Invis1ble написал(а):
Цитата
    break;
    MainClass::$modules->LoadModules( ROOT_DIR."/addons/admin/modules/", false, "section_general.php" );
    break;

один из них лишний

Спустя 1 час, 32 минуты, 31 секунда (15.04.2012 - 18:23) valdemarin написал(а):
да я пробовал, но после почему-то ссылается на ошибку в другом скрипте. хотя до этого работало, только этот код трогал.

Спустя 1 час, 17 минут, 22 секунды (15.04.2012 - 19:40) inpost написал(а):
Ну править, править, править!
Если ссылается на другое место, значит ошибку №1 ты исправил. Теперь тебе вывелась ошибка №2.
ПХП в случаях error останавливает работу скрипта и дальше на наличие ошибок не проверяет! То есть пока ты не исправишь ошибку №1, ты не увидишь наличие ошибки №2.

Спустя 6 минут, 14 секунд (15.04.2012 - 19:47) walerus написал(а):
<?php

error_reporting( E_ALL ^ E_NOTICE );
define( "LM", true );
define( "TIMER", microtime( 1 ));
define( "MEMORY", memory_get_usage());
define( "ROOT_DIR", dirname( __FILE__ ));
define( "DATA_DIR", ROOT_DIR."/data" );
define( "LM_DIR", ROOT_DIR."/engine" );

session_start();
include( LM_DIR."/core.php" );

MainClass::$service = "admin";
MainClass::loadlang();

if ( config( "multilang" ) == "on" && isGet( "lang" ) && is_string( get( "lang" )) )
{
if ( MainClass::$session->IsUser())
{
MainClass::$db->query(
"UPDATE
`lm_users`
SET
`lang`='"
. ( is_dir( "langs/".get( "lang" ) ) ? get( "lang" ) : config( "language" ) ) . "'
WHERE
`id`='"
. userinfo( "id" )."'"
);
}
else
{
MainClass::setcookie( MainClass::$service."_lang", get( "lang" ));
}

return GoBack();
}

$e = $h = "";

if ( MainClass::$session->IsAdmin() && userinfo( "group_access_cp" ))
{
if ( isGet( "logout" ))
{
setcookie( config( "admin_cookies", "user" ), "", 0, "/" );
unset( $_SESSION['admin'] );
GoBack( MainClass::$filename );
}

MainClass::$modules->addHook( "admin_main_menu", "adminMenu", array(
"general",
lang( "home" )
));


MainClass::$modules->addHook( "admin_main_menu", "adminMenu", array(
"modules",
lang( "modules" )
));


MainClass::$modules->addHook( "admin_main_menu", "adminMenu", array(
"management",
lang( "management" )
));


MainClass::$modules->addHook( "admin_main_menu", "adminMenu", array(
"options",
lang( "preferences" )
));


$m = isGet( "module" ) ? ( boolean )$_GET['module'] : false;

switch ( get( "section" ))
{
case "options" :
MainClass::$modules->LoadModules( ROOT_DIR."/addons/admin/modules/", false, "section_options.php" );
break;

case "management" :
do
{
require( ROOT_DIR."/addons/admin/info.php" );
foreach ( $info as $k => $v )
{
MainClass::$modules->addHook( "admin_second_menu", "adminSecondMenu", array(
"management",
$k,
$info[$k]['title']
));

}
if ( !( $m && isset( $info[$m] )) )
{
break;
}
else
{
MainClass::$modules->LoadModules( ROOT_DIR."/addons/admin/modules/", false, $info[$m]['services'][MainClass::$service] );
}
}
while (0);

MainClass::$modules->LoadModules( ROOT_DIR."/addons/admin/modules/", false, "section_management.php" );
break;
#################################################################################################### ####
case "modules" : // ВНИМАНИЕ !!!! ЧТО В ЭТОМ КЕЙСЕ ?????????????????
} // ЗАКРЫЛСЯ СВИТЧ !!!!!!!!!!!!!!!!!!!
#################################################################################################### ####


MainClass::$modules->InfoModules();

foreach ( MainClass::$modules->modules_components as $k )
{
MainClass::$modules->addHook( "admin_second_menu", "adminSecondMenu", array(
"modules",
$k
));
}

if ( $m && isset( $modules->modules_info[$m] ))
{
MainClass::$modules->LoadModules( ROOT_DIR."/modules/".$m."/", false );
}
else
{
MainClass::$modules->LoadModules( ROOT_DIR."/addons/admin/modules/", false, "section_modules.php" );
}

break; // НЕПОНЯТНО ЗАЧЕМ ОН ТУТ, ЕСЛИ НЕТ НИ ЦИКЛА, НИ СВИТЧ/КЕЙС

MainClass::$modules->LoadModules( ROOT_DIR."/addons/admin/modules/", false, "section_general.php" );

break; // НЕПОНЯТНО ЗАЧЕМ ОН ТУТ, ЕСЛИ НЕТ НИ ЦИКЛА, НИ СВИТЧ/КЕЙС

MainClass::$tpl->InitTemplate( "admin", "index.php" );
MainClass::$tpl->TemplateBlocks();
MainClass::$tpl->set( "{theme}", MainClass::$tpl->tmpPath );
MainClass::$tpl->set( "{main}", call_user_func_array( "adminContent", array()) );
MainClass::$tpl->TemplateParse();
}
else
{
if ( isPost( "login" ) && isPost( "password" ) && post( "login" ) != "" )
{
$r = MainClass::$db->fetch(
MainClass::$db->query(
"SELECT
`name`,
`password`,
`code`,
`access_cp`
FROM
`lm_users`
AS
u
LEFT JOIN
`lm_groups`
AS
g
ON
(u.group=g.id)
WHERE
`name`='"
. post( "login" ) . "'"
)
);


if ( md5( post( "password" )) == $r['password'] && $r['code'] == "done" && $r['access_cp'] )
{
if ( !MainClass::$session->IsUser())
{
MainClass::$session->KillSessionCache();

setcookie(
config( "user_cookies", "user" ),
$r['name'] . "," . $r['password'],
time() + 60 * 60 * 24 * intval( config( "time_of_life_session", "user" )), "/"
);

if ( MainClass::$db->num( MainClass::$db->query( "SELECT `uname` FROM `lm_sessions` WHERE `uname`='".$r['name']."'" )) == 0 )
{
MainClass::$db->query( "UPDATE `lm_sessions` SET `uname`='".$r['name']."' WHERE `sid`='".session_id()."'" );
}
MainClass::$session->sRegister( $r['name'] );
}

$_SESSION['admin'] = $r['name'];

setcookie(
config( "admin_cookies", "user" ),
$r['name'] . "," . $r['password'],
time() + 60 * 60 * 24 * intval( config( "time_of_life_session", "user" ) ), "/"
);

GoBack();
}
else
{
$e = "<div class=\"panel\">".tError( "error", "Неправильный логин или пароль" )."</div>";
setcookie( config( "admin_cookies", "user" ), "", 0, "/" );
unset( $_SESSION['admin'] );
}
}


MainClass::$tpl->InitTemplate( "admin", "login.php" );
MainClass::$tpl->set( "{theme}", MainClass::$tpl->tmpPath );
MainClass::$tpl->set( "{error}", $e );
MainClass::$tpl->TemplateParse();
}

MainClass::$db->close();

?>


Пишите читабельный код !, у меня не эталон, но все же... Смотрите по коду коменты, ошибка в Switch/Case


Спустя 2 дня, 18 часов, 38 минут, 53 секунды (18.04.2012 - 14:25) valdemarin написал(а):
с этим разобрался, убрал break и подправил case. теперь столкнулся с БД, но не могу понять сути, к примеру, нужно найти в БД таблицу а в ней поле "link" со значением =0, если его находим то выполняем определенное действие к примеру:

<?php
$s=array();
$w=true;
$link = @mysql_connect('localhost','root','****');
$hhg = mysql_select_db('base');
$q = @mysql_query('SELECT * FROM my_base WHERE link=0');
if ($q & $w) {
echo "true";
}
else {
echo "false";
}
?>

почему

$q = @mysql_query('SELECT * FROM my_base WHERE link=0');

выдает постоянно true? , а в этом поле стоит 1?
ведь стоит условие
WHERE link=0

Спустя 14 минут, 33 секунды (18.04.2012 - 14:40) glock18 написал(а):
walerus
внутри switch может не быть ни одного break - это совершенно нормально. inpost сказал верно

Спустя 2 минуты, 6 секунд (18.04.2012 - 14:42) valdemarin написал(а):
а с постом чуть выше про БД?

Спустя 10 минут, 46 секунд (18.04.2012 - 14:53) glock18 написал(а):
Цитата (valdemarin @ 18.04.2012 - 12:25)
почему

$q = @mysql_query('SELECT * FROM my_base WHERE link=0');

выдает постоянно true? , а в этом поле стоит 1?


потому что не знаем что функция возвращает. читаем и смотрим примеры: http://ru2.php.net/manual/ru/function.mysql-query.php
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.