Суть проблемы такова, пишу вот это
/**
Определим доступность предмета по уровню
*/
if($user_wow['level'] < $row['level'])
{
$error = 'Уровень персонажа слишком мал для покупки предмета .';
}
/**
Финансы
*/
else if($user_wow['gold'] < $row['cost'])
{
$error = 'Недостаточно золота для покупки предмета .';
}
/**
Проверим на оружие
*/
else if($user_wow['sword'] > 0)
{
$error = 'Для покупки предмета , необходимо выбросить старое оружие .';
}
if ($error)
{
echo '<div class="err">'.$error.'</div>';
}
Но если все окей и для покупки все есть в том месте где должна выводится ошибка (например Для покупки предмета , необходимо выбросить старое оружие) пишит вот это Notice: Undefined variable: error in W:\home\localhost\test\world\sword_info.php on line 96
как исправить это?((
А создать переменную за тебя кто-то должен? Ну или еще как вариант через isset проверить ее существование. А вообще я сам всегда стараюсь не пользоваться магией приведения типов и для каждого типа делать соответствующие проверки.
Например в данном случае я бы сделал так:
if (isset($error)) {
}
или в самом начале создал переменную $error = '' и затем уже в условии проверил, не является ли она пустой:
if (!empty($error)) {
}
А еще лучше сделать массив $error = [];
и затем использовать не elseif, разбить на отдельные условия.
При этом думаю не нужно объяснять, как заполнять массив.
И уже в конце:
if (!empty($error)) {
echo implode("\r\n", $error);
}
reaper, спс с меня + Тему в офф
Пока тему не закрыли еще вопрос
if ($user['level'] >= 4)
{
$act = ($_GET['act']);
switch ($act){
default:
/////Дальше код админки
Почемуто матерится на эту строку $act = ($_GET['act']);
Megabit, а зачем скобочки после равно? Ты же потом подставляешь акт тоже в скобочки и выходит 2 пары скобочек.
ValekS, скобки убрал, но ничего не изменилось....
Megabit, зачем тебе это
$act = ($_GET['act']);
вообще? этож бред..
adust, я в этих переменных вообще не фурычу.. глянь файл там в 34 строке ошибку бьет, копеечку если что накину
Megabit, $act = isset($_GET['act']) ? $_GET['act'] : '';