Форум программистов, компьютерный форум, киберфорум
PHP для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.61/18: Рейтинг темы: голосов - 18, средняя оценка - 4.61
 Аватар для v1le
15 / 12 / 1
Регистрация: 01.06.2011
Сообщений: 225

Undefined index

25.05.2013, 03:43. Показов 3887. Ответов 13
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Здравствуйте, пытаюсь сделать UPDATE.
Вот код:
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
<?php
    if (isset($_GET['editid'])){
        $editedid=$_GET['editid'];
        $res = mysql_query("SELECT * from `notebooks` WHERE ID=$editedid");
        $row = mysql_num_rows($res);
        while ($row = mysql_fetch_array($res)){
        echo "<h1>Edit item</h1>
            <input type=\"hidden\" name=\"update\" value=\"".$row["ID"]."\">
            <form method='post' action='edit.php'>
            <p>Model
            <input name=\"name\" type='text' size='20' maxlength='20' value=".$row["name"].">
            </p>
            <p>Firm
                <select name=\"firm\">
                <option>".$row['firm']."</option>
                </select>
            </p>
            <p>Type
                <select name=\"type\">
                <option>".$row['type']."</option>
                </select>
            </p>
            <p>Params</p>
            <textarea name=\"params\" cols='20' rows='5'>".$row['params']."</textarea>
            <p><input type='submit' name='smb' value='OK'></p>
            </form>
            ";
        }
        $query = mysql_query("UPDATE `notebooks` SET `name`='".$_POST['name']."', `firm`='".$_POST['firm']."', `type`='".$_POST['type']."', `params`='".$_POST['params']."' WHERE ID=".$editedid."") or die(mysql_error());
        
        exit;
}
Почему-то не видит переменные, вот что пишет:
PHP
1
2
3
4
5
6
7
Notice: Undefined index: name in Z:\home\d.loc\www\pages\edit.php on line 30
 
Notice: Undefined index: firm in Z:\home\d.loc\www\pages\edit.php on line 30
 
Notice: Undefined index: type in Z:\home\d.loc\www\pages\edit.php on line 30
 
Notice: Undefined index: params in Z:\home\d.loc\www\pages\edit.php on line 30
В чём проблема?
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
25.05.2013, 03:43
Ответы с готовыми решениями:

Как исправит Notice: Undefined index: sessy in и undefined variable
Доброго времени суток! Возможно это мелочь и с высоты опытного программиста это легкая задача, но мне пока не удаётся её решить. Кто знает...

Undefined index
Прочитал, что чтобы избавиться от этого, нужно использовать isset(). Так что получается на каждой из строк, где выдаёт Undefined index ...

Undefined index
В чем может быть проблема ? Раньше все дела также и работало Ошибка в самом Пост &lt;?php $mysqli = new...

13
 Аватар для maruo
133 / 133 / 48
Регистрация: 26.04.2013
Сообщений: 1,356
25.05.2013, 13:23
Мои любимые нотисы))))
В переводе Неопределенная переменная
вам выдает предупреждение что переменные name firm type не определены
0
 Аватар для fanatikus
1932 / 1523 / 703
Регистрация: 17.11.2012
Сообщений: 6,585
25.05.2013, 13:43
вы выводите форму и сразу пытаетесь обновить данные, без отправки $_POST
поставте проверку перед обновлением
PHP
1
2
3
4
 
if(isset($_POST['smb']{
   $query = mysql_query("UPDATE `notebooks` SET `name`='".$_POST['name']."', `firm`='".$_POST['firm']."', `type`='".$_POST['type']."', `params`='".$_POST['params']."' WHERE ID=".$editedid."") or die(mysql_error());
}
1
 Аватар для v1le
15 / 12 / 1
Регистрация: 01.06.2011
Сообщений: 225
25.05.2013, 16:33  [ТС]
Цитата Сообщение от fanatikus Посмотреть сообщение
вы выводите форму и сразу пытаетесь обновить данные, без отправки $_POST
поставте проверку перед обновлением
PHP
1
2
3
4
 
if(isset($_POST['smb']{
   $query = mysql_query("UPDATE `notebooks` SET `name`='".$_POST['name']."', `firm`='".$_POST['firm']."', `type`='".$_POST['type']."', `params`='".$_POST['params']."' WHERE ID=".$editedid."") or die(mysql_error());
}
Спасибо, сделал так, НО данные не обновляются.
0
 Аватар для fanatikus
1932 / 1523 / 703
Регистрация: 17.11.2012
Сообщений: 6,585
25.05.2013, 17:49
извиняюсь, пропустил скобки
теперь вроде правильно
PHP
1
2
3
4
5
6
<?php
if(isset($_POST['smb'])){
   $query = mysql_query("UPDATE `notebooks` SET `name`='".$_POST['name']."', `firm`='".$_POST['firm']."', `type`='".$_POST['type']."', `params`='".$_POST['params']."' WHERE id=".$editedid."") or die(mysql_error());
}
 
 ?>
0
 Аватар для v1le
15 / 12 / 1
Регистрация: 01.06.2011
Сообщений: 225
25.05.2013, 23:01  [ТС]
Цитата Сообщение от fanatikus Посмотреть сообщение
извиняюсь, пропустил скобки
теперь вроде правильно
PHP
1
2
3
4
5
6
<?php
if(isset($_POST['smb'])){
   $query = mysql_query("UPDATE `notebooks` SET `name`='".$_POST['name']."', `firm`='".$_POST['firm']."', `type`='".$_POST['type']."', `params`='".$_POST['params']."' WHERE id=".$editedid."") or die(mysql_error());
}
 
 ?>
Хех, дело не в скобках, я их и сам могу поставить)

Просто если сложить мой код и этот, то должно работать, а у меня отказывается.
0
 Аватар для fanatikus
1932 / 1523 / 703
Регистрация: 17.11.2012
Сообщений: 6,585
25.05.2013, 23:57
попробуйте так
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
if (isset($_GET['editid'])){
        $editedid=$_GET['editid'];
        $res = mysql_query("SELECT * from `notebooks` WHERE ID=$editedid");
        $row = mysql_num_rows($res);
        while ($row = mysql_fetch_array($res)){
        echo "<h1>Edit item</h1>
            <input type=\"hidden\" name=\"update\" value=\"".$row["ID"]."\">
            <form method='post' action='edit.php'>
            <p>Model
            <input name=\"name\" type='text' size='20' maxlength='20' value=".$row["name"].">
            </p>
            <p>Firm
                <select name=\"firm\">
                <option>".$row['firm']."</option>
                </select>
            </p>
            <p>Type
                <select name=\"type\">
                <option>".$row['type']."</option>
                </select>
            </p>
            <p>Params</p>
            <textarea name=\"params\" cols='20' rows='5'>".$row['params']."</textarea>
            <p><input type='submit' name='smb' value='OK'></p>
            </form>
            ";
        }
    }
    if(isset($_POST['smb'])){
            $query = mysql_query("UPDATE `notebooks` SET `name`='".$_POST['name']."', `firm`='".$_POST['firm']."', `type`='".$_POST['type']."', `params`='".$_POST['params']."' WHERE id=".$editedid."") or die(mysql_error());
    }
  ?>
1
 Аватар для v1le
15 / 12 / 1
Регистрация: 01.06.2011
Сообщений: 225
26.05.2013, 01:27  [ТС]
Цитата Сообщение от fanatikus Посмотреть сообщение
попробуйте так
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
if (isset($_GET['editid'])){
        $editedid=$_GET['editid'];
        $res = mysql_query("SELECT * from `notebooks` WHERE ID=$editedid");
        $row = mysql_num_rows($res);
        while ($row = mysql_fetch_array($res)){
        echo "<h1>Edit item</h1>
            <input type=\"hidden\" name=\"update\" value=\"".$row["ID"]."\">
            <form method='post' action='edit.php'>
            <p>Model
            <input name=\"name\" type='text' size='20' maxlength='20' value=".$row["name"].">
            </p>
            <p>Firm
                <select name=\"firm\">
                <option>".$row['firm']."</option>
                </select>
            </p>
            <p>Type
                <select name=\"type\">
                <option>".$row['type']."</option>
                </select>
            </p>
            <p>Params</p>
            <textarea name=\"params\" cols='20' rows='5'>".$row['params']."</textarea>
            <p><input type='submit' name='smb' value='OK'></p>
            </form>
            ";
        }
    }
    if(isset($_POST['smb'])){
            $query = mysql_query("UPDATE `notebooks` SET `name`='".$_POST['name']."', `firm`='".$_POST['firm']."', `type`='".$_POST['type']."', `params`='".$_POST['params']."' WHERE id=".$editedid."") or die(mysql_error());
    }
  ?>
У меня такой же код, но отказывается работать. Если подумать, код то ведь правильный?
0
65 / 65 / 18
Регистрация: 10.03.2013
Сообщений: 188
26.05.2013, 01:39
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
<?php
    if (isset($_GET['editid'])){
        $editedid=$_GET['editid'];
        $res = mysql_query("SELECT * from `notebooks` WHERE ID='$editedid'") or die("SELECT не пашет: " .mysql_error());
        $row = mysql_num_rows($res);
        while ($row = mysql_fetch_array($res)): ?>
        <h1>Edit item</h1>
            <form method='post' action='edit.php'>
            <input type="hidden" name="update" value="<?=$row["ID"]?>">
            <p>Model
            <input name="name" type='text' size='20' maxlength='20' value="<?=$row["name"]?>">
            </p>
            <p>Firm
                <select name="firm">
                <option value="<?=$row['firm']?>"><?=$row['firm']?></option>
                </select>
            </p>
            <p>Type
                <select name="type">
                <option value="<?=$row['type']?>"><?=$row['type']?></option>
                </select>
            </p>
            <p>Params</p>
            <textarea name="params" cols='20' rows='5'><?=$row['params']?></textarea>
            <p><input type='submit' name='smb' value='OK'></p>
            </form>
        <? endwhile;
        if (isset($_POST['name'], $_POST['firm'], $_POST['type'], $_POST['params'])) {
            $query = mysql_query("UPDATE `notebooks` 
            SET `name`='".$_POST['name']."', 
            `firm`='".$_POST['firm']."', 
            `type`='".$_POST['type']."', 
            `params`='".$_POST['params']."' 
            WHERE ID='".$editedid."'") or die("UPDATE не пашет: " .mysql_error());
}
}
?>
Какие ошибки выдаст?
1
 Аватар для v1le
15 / 12 / 1
Регистрация: 01.06.2011
Сообщений: 225
01.06.2013, 00:05  [ТС]
Цитата Сообщение от Sima175 Посмотреть сообщение
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
<?php
    if (isset($_GET['editid'])){
        $editedid=$_GET['editid'];
        $res = mysql_query("SELECT * from `notebooks` WHERE ID='$editedid'") or die("SELECT не пашет: " .mysql_error());
        $row = mysql_num_rows($res);
        while ($row = mysql_fetch_array($res)): ?>
        <h1>Edit item</h1>
            <form method='post' action='edit.php'>
            <input type="hidden" name="update" value="<?=$row["ID"]?>">
            <p>Model
            <input name="name" type='text' size='20' maxlength='20' value="<?=$row["name"]?>">
            </p>
            <p>Firm
                <select name="firm">
                <option value="<?=$row['firm']?>"><?=$row['firm']?></option>
                </select>
            </p>
            <p>Type
                <select name="type">
                <option value="<?=$row['type']?>"><?=$row['type']?></option>
                </select>
            </p>
            <p>Params</p>
            <textarea name="params" cols='20' rows='5'><?=$row['params']?></textarea>
            <p><input type='submit' name='smb' value='OK'></p>
            </form>
        <? endwhile;
        if (isset($_POST['name'], $_POST['firm'], $_POST['type'], $_POST['params'])) {
            $query = mysql_query("UPDATE `notebooks` 
            SET `name`='".$_POST['name']."', 
            `firm`='".$_POST['firm']."', 
            `type`='".$_POST['type']."', 
            `params`='".$_POST['params']."' 
            WHERE ID='".$editedid."'") or die("UPDATE не пашет: " .mysql_error());
}
}
?>
Какие ошибки выдаст?
Абсолютно никаких, у меня видимо, что-то не так с главной страницей.
Как мы видим, тут нет хидера, но меня перекидывает на индекс.
0
65 / 65 / 18
Регистрация: 10.03.2013
Сообщений: 188
01.06.2013, 00:19
предположу что у Вас нет файла edit.php
Попробуйте так
HTML5
1
action='/'
1
 Аватар для v1le
15 / 12 / 1
Регистрация: 01.06.2011
Сообщений: 225
01.06.2013, 00:24  [ТС]
Цитата Сообщение от Sima175 Посмотреть сообщение
предположу что у Вас нет файла edit.php
Попробуйте так
HTML5
1
action='/'
Он есть, ничего не изменилось.

Всё-таки проблема кроется где-то в index.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
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
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
<?
ini_set('display_errors', 1);
error_reporting(E_ALL);
include_once($_SERVER['DOCUMENT_ROOT']."/sets/db.php");
if(!isset($_GET['page'])) {$_GET['page'] = 'default';} else { $_GET['page'] = mysql_real_escape_string($_GET['page']); }
 
switch($_GET['page']):
    case "add":
        $link = "/pages/add.php";
        $Title = "AddNote";
    break;
    case "del":
        $link = "/pages/del.php";
        $Title = "DelNote";
    break;
    case "edit":
        $link = "/pages/edit.php";
        $Title = "EditNote";
    break;
    default:
        $link = "/pages/page_index.php";
        $Title = "Main";
    break;
endswitch;
echo 
"
<html>
<head><meta http-equiv='content-type' content='text/html; charset=utf-8'>
    <title>main</title>
</head>
<style>
body {
    background: url(text.jpg) repeat;
    }
a {
    text-decoration: none;
}
.header {
    background: url(note.png) no-repeat scroll 50px 100px transparent;
    background-position: right;
    background-color: #d1b8ff;
    border-radius: 20px;
    height: 90px;
    }
.button {
    width: 100px; 
    display: block; 
    height: 33px; 
    background: url(button.png);
    text-align: center;
    text-decoration: none;
    line-height: 2.1;
    color: #ffffff;
    font-family: Arial, sans-serif;
    font-weight: bold;
    font-size: 15px;
    }
.button:hover {
    background: url(button_h.png);
    }
</style>
<body>
    <form method='post' action='index.php'>
    <table border='0' width='60%' style='background-color: white; margin: auto; border-radius: 20px;'>
        <tr>
            <td>
                <div class = 'header'>
                </div>
            </td>
        </tr>
        <tr>
            <td>
            <br>";
 
include_once($_SERVER['DOCUMENT_ROOT'].$link);
echo "
 
            </td>
        </tr>
        <tr>
            <td>
                <p align='center'><a class = 'button' href='/pages/add.php'>ADD</a></p>
            </td>
        </tr>
    </table>
    </form>
</body>
</html>";
?>
0
 Аватар для fanatikus
1932 / 1523 / 703
Регистрация: 17.11.2012
Сообщений: 6,585
01.06.2013, 01:23
У вас индекс точка входа?
если да, то обратите внимание на это
PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
if(!isset($_GET['page'])) {$_GET['page'] = 'default';} else { $_GET['page'] = mysql_real_escape_string($_GET['page']); }// из формы переходим по ссылке  edit.php без get параметров
 
switch($_GET['page']):
    case "add":
        $link = "/pages/add.php";
        $Title = "AddNote";
    break;
    case "del":
        $link = "/pages/del.php";
        $Title = "DelNote";
    break;
    case "edit":
        $link = "/pages/edit.php";
        $Title = "EditNote";
    break;
    default:
        $link = "/pages/page_index.php";
        $Title = "Main";
    break;
endswitch;
из формы переходим по ссылке edit.php без get параметров
срабатает default и подключится файл /pages/page_index.php
1
 Аватар для v1le
15 / 12 / 1
Регистрация: 01.06.2011
Сообщений: 225
01.06.2013, 13:49  [ТС]
Всем спасибо, разобрался)
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
01.06.2013, 13:49
Помогаю со студенческими работами здесь

Undefined index
array:2 ] &quot;cash_out&quot; =&gt; array:4 1 =&gt; array:6 2 =&gt; array:6 3 =&gt; array:6 ] ] public function...

Undefined index: op
ребят ошибка: не может система определить переменные Undefined index: cs = Z:\home\amm.su\WWW\modules\ads\ads.php = 66 Undefined...

Undefined index
У меня есть страница с панелью регистрации(php). Но сегодня вылезли 3 ошибки в строках. Кто поможет их исправить ? Самое интересное то...

Message: Undefined index
Здравствуйте! Вот логи: ...

ошибки Undefined index
на эту строку показывает ошибку Undefined index: name $name = stripslashes($_POST); сама переменная берется из формы, и указывается...


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

Или воспользуйтесь поиском по форуму:
14
Ответ Создать тему
Новые блоги и статьи
SDL3 для Web (WebAssembly): Обработчик клика мыши в браузере ПК и касания экрана в браузере на мобильном устройстве
8Observer8 02.02.2026
Содержание блога Для начала пошагово создадим рабочий пример для подготовки к экспериментам в браузере ПК и в браузере мобильного устройства. Потом напишем обработчик клика мыши и обработчик. . .
Философия технологии
iceja 01.02.2026
На мой взгляд у человека в технических проектах остается роль генерального директора. Все остальное нейронки делают уже лучше человека. Они не могут нести предпринимательские риски, не могут. . .
SDL3 для Web (WebAssembly): Вывод текста со шрифтом TTF с помощью SDL3_ttf
8Observer8 01.02.2026
Содержание блога В этой пошаговой инструкции создадим с нуля веб-приложение, которое выводит текст в окне браузера. Запустим на Android на локальном сервере. Загрузим Release на бесплатный. . .
SDL3 для Web (WebAssembly): Сборка C/C++ проекта из консоли
8Observer8 30.01.2026
Содержание блога Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а. . .
SDL3 для Web (WebAssembly): Установка Emscripten SDK (emsdk) и CMake для сборки C и C++ приложений в Wasm
8Observer8 30.01.2026
Содержание блога Для того чтобы скачать Emscripten SDK (emsdk) необходимо сначало скачать и уставить Git: Install for Windows. Следуйте стандартной процедуре установки Git через установщик. . . .
SDL3 для Android: Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 29.01.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами. Версия v3 была полностью переписана на Си, в. . .
Инструменты COM: Сохранение данный из VARIANT в файл и загрузка из файла в VARIANT
bedvit 28.01.2026
Сохранение базовых типов COM и массивов (одномерных или двухмерных) любой вложенности (деревья) в файл, с возможностью выбора алгоритмов сжатия и шифрования. Часть библиотеки BedvitCOM Использованы. . .
SDL3 для Android: Загрузка PNG с альфа-каналом с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 28.01.2026
Содержание блога SDL3 имеет собственные средства для загрузки и отображения PNG-файлов с альфа-каналом и базовой работы с ними. В этой инструкции используется функция SDL_LoadPNG(), которая. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru