Форум программистов, компьютерный форум, киберфорум
PHP для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.94/34: Рейтинг темы: голосов - 34, средняя оценка - 4.94
 Аватар для jumper423
3 / 3 / 1
Регистрация: 01.03.2011
Сообщений: 87

Ошибка "Fatal error: Cannot break/continue 1 level"

25.07.2012, 02:46. Показов 6469. Ответов 15
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Здравствуйте.
При сознании скрипта по изменению значений БД возникли проблемы с загрузкой другой фотографии.
Выбивает во такую ошибку Fatal error: Cannot break/continue 1 level in S:\home\respublika\www\admin\handlers\ch _l.php on line 24

Файл с выбором что изменять и на что.
PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
<? include "../inc/header2.php"?>
<? include "../inc/menu2.php"?>
    <div class="content">
        <? include "../inc/config.php"; ?>
        <? include "textarea.php"; ?>
        <h1>Изменить лидеров</h1>
        <form method="post" action="">
            <div class="change-radio">
                <?
                    $sel = mysql_query("SELECT id,name FROM leaders",$db);
                    while($myrow = mysql_fetch_array($sel))
                    {
                        printf("<input type='radio' name='sel' class='radio' value='%s'> <span class='radio-title'>%s</span><br /><hr>",$myrow['id'],$myrow['name']);
                    }
                ?>
            </div>
            <br />
            <input type="submit" name="change" value="Изменить" />
            
            <br /><br /><br />
            </form> 
            
            
            <? 
                if (isset($_POST['sel']))
                    {   
                        $sel=$_POST['sel'];
                        $radio = mysql_query("SELECT id,name,text FROM leaders WHERE id=$_POST[sel]",$db);
                        $myRadio = mysql_fetch_array($radio);
                        echo "<form method='post' action='ch_l.php?id={$_POST[sel]}'>";
                        printf("Имя  &nbsp;&nbsp;&nbsp;<input type='text' name='name' size='50' value='%s'>",$myRadio['name']);
                        echo "
                            <br /><br />
                            <textarea id='elm2' name='text' rows='15' cols='80' style='width: 100%'>
                                {$myRadio['text']}
                            </textarea>
                            <br />
                            <img id='img-lider' src='../../img/leaders/".$myRadio['id'].".jpg' />
                            <br />
                            <label for='img'>Изменить фото: </label>
                            <input type='file' name='img' id='img' /> 
                            <br /><br />
                            <input type='submit' name='save' value='Сохранить' />
                            </form>";
                    }
            ?> 
            
    </div>
<? include "../inc/futter.php"?>

Файл с изменение значений БД и удалением старой картинки и загрузки новой
PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
<? include "../inc/header2.php"?>
<? include "../inc/menu2.php"?>
<div class="content">
    <?php
    include "../inc/config.php"; 
    $menu=$_GET['menu']; 
    $name=$_POST['name'];
    $text=$_POST['text'];
    $id=$_GET['id'];
    $img = $_POST['img'];
                if (isset($name) && isset($text))
                    {
                    if ($name!=null && $text!=null)
                        {
                            $saveBD = mysql_query("UPDATE leaders SET name='$name', text='$text' WHERE id=$id");
                            if(isset($img))
                                {
                                    unlink('../../img/leaders/' . $id . '.jpg');
                                    if (file_exists('../../img/leaders/' . $id . '.jpg'))
                                        {
                                            unlink('../../img/leaders/' . $id . '.jpg');
                                        }
                                    
                                    if(empty($_FILES['img']['tmp_name'])) 
                                        continue;
                                    $fopen = fopen($_FILES['img']['tmp_name'], "r");
                                    if ($fopen)
                                        {
                                            if (!file_exists('../../img/leaders/' . $id . '.jpg'))
                                                {
                                                    move_uploaded_file($_FILES['img']["tmp_name"],
                                                    '../../img/leaders/' . $id . '.jpg');
                                                }
                                        }
                                    fclose($fopen);
                                }
                            if ($saveBD)
                                { echo 'Изменино успешно'; }
                            else { echo 'Запись не изменина'; }
                        }
                    else{echo 'Вы не ввели заголовок или текст';}
                    }
    ?>
    <br />
    <a href="change-l.php">Вернуться назад</a>
</div>
<? include "../inc/futter.php"?>

Не могу понять по чему она возникает. Когда делал скрипт по добавлению значений в БД и загрузки картинки всё работало нормально.
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
25.07.2012, 02:46
Ответы с готовыми решениями:

Fatal error: Cannot break/continue 1 level
Есть код, но никак не могу разобраться что же не так, если что не пинайте сильно, я в php недавно. Fatal error: Cannot break/continue 1...

Fatal error: Maximum function nesting level of '100' reached, aborting
Вот сам код:function find_ver($i_next, $j_next, $im, $jm, $n, $m, $x, $y, $odd, $Xmin) { $rez=-1; ...

BAckend fatal error: PHP Fatal error: Call to undefined function redirect_to()
Доброго дня! Подскажите, при попытке открыть сайт выдается ошибка: Backend fatal error: PHP Fatal error: Call to undefined function...

15
Эксперт PHP
5755 / 4134 / 1508
Регистрация: 06.01.2011
Сообщений: 11,276
25.07.2012, 09:21
jumper423, так вы же используете конструкцию continue вне цикла вот тут:
PHP
1
2
3
4
5
...
if(empty($_FILES['img']['tmp_name'])) 
                                        continue; // НЕЛЬЗЯ ТУТ ИСПОЛЬЗОВАТЬ!!!
                                    $fopen = fopen($_FILES['img']['tmp_name'], "r");
...
Читайте мануал: http://www.php.net/continue
0
 Аватар для jumper423
3 / 3 / 1
Регистрация: 01.03.2011
Сообщений: 87
25.07.2012, 09:53  [ТС]
Честно вообще не понимаю для чего используется continue.
Я взял готовый код и переделал его.

Но почему тогда в скрипте добавления новых фото в работает нормально хотя строки и целосная суть одна.

PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
<? include "../inc/header2.php"?>
<? include "../inc/menu2.php"?>
    <div class="content">
        <? include "textarea.php"; ?>
        <? include "../inc/config.php"; ?>
        <h1>Добавить лидера</h1>
        <form enctype="multipart/form-data" method="post" action="">
            <br />
            Имя  &nbsp;&nbsp;&nbsp;<input type="text" name="name" size="50">
            <br /><br />
            <textarea id="elm2" name="text" rows="15" cols="80" style="width: 100%">
            </textarea>
            <br /><br />
            <label for="img">Выберите фото: </label>
            <input type="file" name="img" id="img" /> 
            <br /><br />
            <input type="submit" name="save" value="Отправить" />
            <input type="reset" name="reset" value="Стереть" />
        </form>
        <br />
        <?
        if($_POST['save'])
            {
                $name = $_POST['name'];
                $text = $_POST['text'];
                $img = $_POST['img'];
                if (isset($name) && isset($text))
                    {
                    if ($name!=null && $text!=null)
                        {
                            $result = mysql_query("SELECT id FROM leaders ORDER BY id DESC");
                            $myrow = mysql_fetch_array($result);
                            $album = $myrow[id]+1;
                            if (is_dir("../../img/leaders/"))
                                echo "";
                            else
                                mkdir("../../img/leaders/");
                                
                                $h=null;
                                    
                                if(empty($_FILES['img']['tmp_name'])) continue;
                                    $fopen = fopen($_FILES['img']['tmp_name'], "r");
                                if ($fopen)
                                    {
                                        if (file_exists('../../img/leaders/' . $album . '.jpg'))
                                            {
                                                echo $album.".jpg уже существует. <br />";
                                            }
                                        else
                                            {
                                                move_uploaded_file($_FILES['img']["tmp_name"],
                                                '../../img/leaders/' . $album . '.jpg');
                                                echo "Файл:".$album.".jpg  успешно добавлен в /img/leaders/<br /><img id='img-lider' src='../../img/leaders/" . $album . ".jpg'><br />" ;;
                                            }
                                        fclose($fopen);
                                    }
                                else echo ($i+1).". Can't open uploaded file!<br /><br />";
                                if ($fopen)
                                    {
                                        $insert = mysql_query("INSERT INTO leaders (name,text) VALUES ('$name','$text')");
                                        if($insert)
                                            echo "Лидер успешно добавился в БД";
                                        else echo "Лидер не добавился в БД";
                                    }
                                else echo "Вы не выбрали ни один файл";
                                
                        }
                    else{echo 'Вы не ввели имя или текст';}
                    }
            }
        ?>
    </div>
<? include "../inc/futter.php"?>
0
Почетный модератор
Эксперт HTML/CSSЭксперт PHP
 Аватар для KOPOJI
16844 / 6724 / 880
Регистрация: 12.06.2012
Сообщений: 19,967
25.07.2012, 10:11
конструкция continue завершает текущую итерацию без выполнения последующих действий, конструкция break прерывает выполнение цикла
0
 Аватар для jumper423
3 / 3 / 1
Регистрация: 01.03.2011
Сообщений: 87
25.07.2012, 10:16  [ТС]
А куда на поставить break?
0
Почетный модератор
Эксперт HTML/CSSЭксперт PHP
 Аватар для KOPOJI
16844 / 6724 / 880
Регистрация: 12.06.2012
Сообщений: 19,967
25.07.2012, 10:20
потому и ругается
Цитата Сообщение от jumper423 Посмотреть сообщение
PHP
1
if(empty($_FILES['img']['tmp_name'])) continue;
если пусто -> то начинать новую итерацию неоткуда - ее просто нет. эти конструкции работают только с циклами, с условными операторами не работают

Добавлено через 1 минуту
Цитата Сообщение от jumper423 Посмотреть сообщение
А куда на поставить break?
вам его никуда нельзя ставить, ни break, ни continue. у вас циклов нет, только условные операторы. учите синтаксис ЯП

Добавлено через 57 секунд
эти конструкции применяются только с циклами - for,foreach,while,do-while

Добавлено через 1 минуту
Цитата Сообщение от jumper423 Посмотреть сообщение
if($_POST['save'])
и вот это - говнокод. на любом нормальном хостинге вам при первой же загрузке пых ругнется
0
 Аватар для jumper423
3 / 3 / 1
Регистрация: 01.03.2011
Сообщений: 87
25.07.2012, 10:27  [ТС]
Убрал continue.
Появились другие ошибки.
Warning: fopen() [function.fopen]: Filename cannot be empty in S:\home\respublika\www\admin\handlers\ch _l.php on line 25

Warning: fclose(): supplied argument is not a valid stream resource in S:\home\respublika\www\admin\handlers\ch _l.php on line 34


PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
<? include "../inc/header2.php"?>
<? include "../inc/menu2.php"?>
<div class="content">
    <?php
    include "../inc/config.php"; 
    $menu=$_GET['menu']; 
    $name=$_POST['name'];
    $text=$_POST['text'];
    $id=$_GET['id'];
    $img = $_POST['img'];
                if (isset($name) && isset($text))
                    {
                    if ($name!=null && $text!=null)
                        {
                            $saveBD = mysql_query("UPDATE leaders SET name='$name', text='$text' WHERE id=$id");
                            if(isset($img))
                                {
                                    unlink('../../img/leaders/' . $id . '.jpg');
                                    if (file_exists('../../img/leaders/' . $id . '.jpg'))
                                        {
                                            unlink('../../img/leaders/' . $id . '.jpg');
                                        }
                                    
                                    empty($_FILES['img']['tmp_name']);
                                    $fopen = fopen($_FILES['img']['tmp_name'], "r");
                                    if ($fopen)
                                        {
                                            if (!file_exists('../../img/leaders/' . $id . '.jpg'))
                                                {
                                                    move_uploaded_file($_FILES['img']["tmp_name"],
                                                    '../../img/leaders/' . $id . '.jpg');
                                                }
                                        }
                                    fclose($fopen);
                                }
                            if ($saveBD)
                                { echo 'Изменино успешно'; }
                            else { echo 'Запись не изменина'; }
                        }
                    else{echo 'Вы не ввели заголовок или текст';}
                    }
    ?>
    <br />
    <a href="change-l.php">Вернуться назад</a>
</div>
<? include "../inc/futter.php"?>
Добавлено через 55 секунд
А что ты предлагаешь вместо if($_POST['save']) поставить?
0
Почетный модератор
Эксперт HTML/CSSЭксперт PHP
 Аватар для KOPOJI
16844 / 6724 / 880
Регистрация: 12.06.2012
Сообщений: 19,967
25.07.2012, 10:29
Цитата Сообщение от jumper423 Посмотреть сообщение
PHP
1
empty($_FILES['img']['tmp_name']);
что это вообще такое
как говорится, это вопрос или предъява?

Добавлено через 28 секунд
и вообще как вы собираетесь открыть временный файл?

Добавлено через 41 секунду
Цитата Сообщение от jumper423 Посмотреть сообщение
А что ты предлагаешь вместо if($_POST['save']) поставить?
PHP
1
if(isset($_POST['save']))
0
 Аватар для jumper423
3 / 3 / 1
Регистрация: 01.03.2011
Сообщений: 87
25.07.2012, 10:30  [ТС]
Я ж говорю.
Код загрузки на сервер не мой.
Я всего лишь нашёл его в интернете и подправил под себя.
0
Почетный модератор
Эксперт HTML/CSSЭксперт PHP
 Аватар для KOPOJI
16844 / 6724 / 880
Регистрация: 12.06.2012
Сообщений: 19,967
25.07.2012, 10:31
и еще. код, оформленный в стиле "новая строка - новая табуляция" выглядит хуже чем код вообще без табуляции

Добавлено через 1 минуту
наверное проще вам новый код написать чем переделывать ошибки таких "умельцев".
0
 Аватар для jumper423
3 / 3 / 1
Регистрация: 01.03.2011
Сообщений: 87
25.07.2012, 10:35  [ТС]
Цитата Сообщение от KOPOJI Посмотреть сообщение
и еще. код, оформленный в стиле "новая строка - новая табуляция" выглядит хуже чем код вообще без табуляции
Привык к этому уже.

Добавлено через 1 минуту
Но этот код работал при добавлении новой картинки.
PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
<? include "../inc/header2.php"?>
<? include "../inc/menu2.php"?>
    <div class="content">
        <? include "textarea.php"; ?>
        <? include "../inc/config.php"; ?>
        <h1>Добавить лидера</h1>
        <form enctype="multipart/form-data" method="post" action="">
            <br />
            Имя  &nbsp;&nbsp;&nbsp;<input type="text" name="name" size="50">
            <br /><br />
            <textarea id="elm2" name="text" rows="15" cols="80" style="width: 100%">
            </textarea>
            <br /><br />
            <label for="img">Выберите фото: </label>
            <input type="file" name="img" id="img" /> 
            <br /><br />
            <input type="submit" name="save" value="Отправить" />
            <input type="reset" name="reset" value="Стереть" />
        </form>
        <br />
        <?
        if(isset($_POST['save']))
            {
                $name = $_POST['name'];
                $text = $_POST['text'];
                $img = $_POST['img'];
                if (isset($name) && isset($text))
                    {
                    if ($name!=null && $text!=null)
                        {
                            $result = mysql_query("SELECT id FROM leaders ORDER BY id DESC");
                            $myrow = mysql_fetch_array($result);
                            $album = $myrow[id]+1;
                            if (is_dir("../../img/leaders/"))
                                echo "";
                            else
                                mkdir("../../img/leaders/");
                                
                                $h=null;
                                    
                                if(empty($_FILES['img']['tmp_name'])) continue;
                                    $fopen = fopen($_FILES['img']['tmp_name'], "r");
                                if ($fopen)
                                    {
                                        if (file_exists('../../img/leaders/' . $album . '.jpg'))
                                            {
                                                echo $album.".jpg уже существует. <br />";
                                            }
                                        else
                                            {
                                                move_uploaded_file($_FILES['img']["tmp_name"],
                                                '../../img/leaders/' . $album . '.jpg');
                                                echo "Файл:".$album.".jpg  успешно добавлен в /img/leaders/<br /><img id='img-lider' src='../../img/leaders/" . $album . ".jpg'><br />" ;;
                                            }
                                        fclose($fopen);
                                    }
                                else echo ($i+1).". Can't open uploaded file!<br /><br />";
                                if ($fopen)
                                    {
                                        $insert = mysql_query("INSERT INTO leaders (name,text) VALUES ('$name','$text')");
                                        if($insert)
                                            echo "Лидер успешно добавился в БД";
                                        else echo "Лидер не добавился в БД";
                                    }
                                else echo "Вы не выбрали ни один файл";
                                
                        }
                    else{echo 'Вы не ввели имя или текст';}
                    }
            }
        ?>
    </div>
<? include "../inc/futter.php"?>
Каким образом он тут не хочет работать не могу понять
0
Почетный модератор
Эксперт HTML/CSSЭксперт PHP
 Аватар для KOPOJI
16844 / 6724 / 880
Регистрация: 12.06.2012
Сообщений: 19,967
25.07.2012, 10:40
Цитата Сообщение от jumper423 Посмотреть сообщение
PHP
1
if(empty($_FILES['img']['tmp_name'])) continue;
замени на
PHP
1
 if(!empty($_FILES['img']['tmp_name']))
0
 Аватар для jumper423
3 / 3 / 1
Регистрация: 01.03.2011
Сообщений: 87
25.07.2012, 10:44  [ТС]
Выбило одну ошибку теперь
Warning: fclose(): supplied argument is not a valid stream resource in S:\home\respublika\www\admin\handlers\ch _l.php on line 34
0
Почетный модератор
Эксперт HTML/CSSЭксперт PHP
 Аватар для KOPOJI
16844 / 6724 / 880
Регистрация: 12.06.2012
Сообщений: 19,967
25.07.2012, 20:40
так ты пытаешь закрыть не существующий файл.

Добавлено через 1 минуту
открываешь файл с временным именем, перемещаешь его, а затем пытаешься закрыть то, чего уже нет - файл то уже перемещен..

Добавлено через 1 минуту

Не по теме:

открыл холодильник, достал огурец - съел. затем подумал, и решил положить его обратно - что и пытаешься сделать. даже организм запротестует в такой ситуации!!! :D



Добавлено через 1 минуту
P.S. просто убери эту строчку с fclose...
0
 Аватар для jumper423
3 / 3 / 1
Регистрация: 01.03.2011
Сообщений: 87
26.07.2012, 05:12  [ТС]
Ошибки исчезли, но уже сама картинка не сохраняется, только старая удаляется.

PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
                                    if (file_exists('../../img/leaders/' . $id . '.jpg'))
                                        {
                                            unlink('../../img/leaders/' . $id . '.jpg');
                                        }
                                    
                                    if(!empty($_FILES['img']['tmp_name'])){
                                    $fopen = fopen($_FILES['img']['tmp_name'], "r");
                                    if ($fopen)
                                        {
                                            if (!file_exists('../../img/leaders/' . $id . '.jpg'))
                                                {
                                                    unlink('../../img/leaders/' . $id . '.jpg');
                                                    move_uploaded_file($_FILES['img']["tmp_name"],
                                                    '../../img/leaders/' . $id . '.jpg');
                                                }
                                        }
                                    }
0
 Аватар для jumper423
3 / 3 / 1
Регистрация: 01.03.2011
Сообщений: 87
27.07.2012, 21:53  [ТС]
Нашёл ошибку было довольно таки глупой.
В строке
PHP
1
echo "<form method='post' action='ch_l.php?id={$_POST[sel]}'>";
Не указал
HTML5
1
  enctype='multipart/form-data'
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
27.07.2012, 21:53
Помогаю со студенческими работами здесь

Ошибка Fatal error: Uncaught Error: [] operator not supported for strings in
Здравствуйте, делаю валидацию формы и если отправляю пустую форму то выдает ошибку . В чем проблема? &lt;?php $data = $_POST; $errors...

Что за ошибка и как её устранить? Fatal error: Uncaught Error: Call to undefined function get_magic_quotes_gpc() in
Здравствуйте. Что за ошибка и как её устранить? И если можно понятным языком для чайника! :wall: Fatal error: Uncaught Error: Call to...

О чем говорит эта ошибка: Fatal error: Uncaught Error: Call to undefined function mysql_connect()
Поиска по сайту, но вот такая ошибка: Fatal error: Uncaught Error: Call to undefined function mysql_connect() in...

Fatal error: Maximum function nesting level of '100' reached, aborting! in
Попытался установить CMS на WampServer в процессе установки вылазит &quot; Fatal error: Maximum function nesting level of '100' reached,...

Ошибка: Fatal error: Uncaught Error: Call to undefined function mysql_num_rows() in
Пытаюсь вывести картинку из базы данных. Код PHP: &lt;?php $host =...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
16
Ответ Создать тему
Новые блоги и статьи
Первый деплой
lagorue 16.01.2026
Не спеша развернул своё 1ое приложение в kubernetes. А дальше мне интересно создать 1фронтэнд приложения и 2 бэкэнд приложения развернуть 2 деплоя в кубере получится 2 сервиса и что-бы они. . .
Расчёт переходных процессов в цепи постоянного тока
igorrr37 16.01.2026
/ * Дана цепь постоянного тока с R, L, C, k(ключ), U, E, J. Программа составляет систему уравнений по 1 и 2 законам Кирхгофа, решает её и находит токи на L и напряжения на C в установ. режимах до и. . .
Восстановить юзерскрипты Greasemonkey из бэкапа браузера
damix 15.01.2026
Если восстановить из бэкапа профиль Firefox после переустановки винды, то список юзерскриптов в Greasemonkey будет пустым. Но восстановить их можно так. Для этого понадобится консольная утилита. . .
Изучаю kubernetes
lagorue 13.01.2026
А пригодятся-ли мне знания kubernetes в России?
Сукцессия микоризы: основная теория в виде двух уравнений.
anaschu 11.01.2026
https:/ / rutube. ru/ video/ 7a537f578d808e67a3c6fd818a44a5c4/
WordPad для Windows 11
Jel 10.01.2026
WordPad для Windows 11 — это приложение, которое восстанавливает классический текстовый редактор WordPad в операционной системе Windows 11. После того как Microsoft исключила WordPad из. . .
Classic Notepad for Windows 11
Jel 10.01.2026
Old Classic Notepad for Windows 11 Приложение для Windows 11, позволяющее пользователям вернуть классическую версию текстового редактора «Блокнот» из Windows 10. Программа предоставляет более. . .
Почему дизайн решает?
Neotwalker 09.01.2026
В современном мире, где конкуренция за внимание потребителя достигла пика, дизайн становится мощным инструментом для успеха бренда. Это не просто красивый внешний вид продукта или сайта — это. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru