Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / PHP, Perl, Python [игнор отключен] [закрыт для гостей] / Ошибка Notice: Use of undefined constant / 22 сообщений из 22, страница 1 из 1
07.08.2013, 02:39
    #38357651
Feramount
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Ошибка Notice: Use of undefined constant
В цикле два раза подряд выполняется следующая функция:

function CodeToURLImg($code)
{
$sql_catalog = 'SELECT Image FROM Message57 WHERE ItemID='.$code;
$query_catalog = mysql_query($sql_catalog);
$row_catalog = mysql_fetch_array($query_catalog);
$massiv = explode(":", $row_catalog[Image]);
$CodeToURLImg = '/netcat_files/'.$massiv[3];return $CodeToURLImg;
}


Первый раз возвращает нормально значение, второй раз возвращает ошибку:

Warning: mysql_fetch_array() expects parameter 1 to be resource, boolean given in /home/a/aas2ra/aas2ra.bget.ru/public_html/netcat/full.php(127) : eval()'d code on line 101

После включения отображение ошибок так же увидел вот такую вот ошибку:

Notice: Use of undefined constant Image - assumed 'Image' in /home/a/aas2ra/aas2ra.bget.ru/public_html/netcat/full.php(127) : eval()'d code on line 121

Все оба раза значение в функцию передавалось одинаковое. И так вопрос: как собственно говоря лечить все это?
...
Рейтинг: 0 / 0
07.08.2013, 05:06
    #38357669
Feramount
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Ошибка Notice: Use of undefined constant
Проблему решил, достаточно было заэкранировать кавычками переменную в sql запросе вот так
$sql_catalog = 'SELECT Image FROM Message57 WHERE ItemID="'.$code.'";';
FeramountВ цикле два раза подряд выполняется следующая функция:

function CodeToURLImg($code)
{
$sql_catalog = 'SELECT Image FROM Message57 WHERE ItemID='.$code;
$query_catalog = mysql_query($sql_catalog);
$row_catalog = mysql_fetch_array($query_catalog);
$massiv = explode(":", $row_catalog[Image]);
$CodeToURLImg = '/netcat_files/'.$massiv[3];return $CodeToURLImg;
}


Первый раз возвращает нормально значение, второй раз возвращает ошибку:

Warning: mysql_fetch_array() expects parameter 1 to be resource, boolean given in /home/a/aas2ra/aas2ra.bget.ru/public_html/netcat/full.php(127) : eval()'d code on line 101

После включения отображение ошибок так же увидел вот такую вот ошибку:

Notice: Use of undefined constant Image - assumed 'Image' in /home/a/aas2ra/aas2ra.bget.ru/public_html/netcat/full.php(127) : eval()'d code on line 121

Все оба раза значение в функцию передавалось одинаковое. И так вопрос: как собственно говоря лечить все это?
...
Рейтинг: 0 / 0
07.08.2013, 06:40
    #38357675
ScareCrow
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Ошибка Notice: Use of undefined constant
наивный. вспоминаем что такое sql injection
...
Рейтинг: 0 / 0
07.08.2013, 06:42
    #38357676
Feramount
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Ошибка Notice: Use of undefined constant
ScareCrowнаивный. вспоминаем что такое sql injection
Ну у меня слава богу к этой функции нет открытого доступа. Туда данные попадают только целочисленного типа из БД товаров.
...
Рейтинг: 0 / 0
07.08.2013, 07:36
    #38357686
vkle
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Ошибка Notice: Use of undefined constant
FeramountВ цикле два раза подряд выполняется следующая функция:

function CodeToURLImg($code) И какие же аргументы передаются функции в первый и во второй раз?


FeramountПроблему решил, достаточно было заэкранировать кавычками переменную в sql запросе вот так
$sql_catalog = 'SELECT Image FROM Message57 WHERE ItemID="'.$code.'";';Ага, ниче так костыль... вместо того чтобы присвоить переменной дефолтовое значение или проверить на соответствие типа данных.
...
Рейтинг: 0 / 0
07.08.2013, 07:47
    #38357689
Feramount
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Ошибка Notice: Use of undefined constant
vkleFeramountВ цикле два раза подряд выполняется следующая функция:

function CodeToURLImg($code) И какие же аргументы передаются функции в первый и во второй раз?
Значение передавалось: 12507


vkleFeramountПроблему решил, достаточно было заэкранировать кавычками переменную в sql запросе вот так
пропущено...
Ага, ниче так костыль... вместо того чтобы присвоить переменной дефолтовое значение или проверить на соответствие типа данных.
Это конечно нарушение безопасности, но зачем нагружать лишними проверками если я знаю что у меня в БД данные занесены в целочисленном формате?
...
Рейтинг: 0 / 0
07.08.2013, 08:05
    #38357696
vkle
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Ошибка Notice: Use of undefined constant
Feramount,

Отображаемая ошибка, действительно, не является непосредственным источником проблемы. Результат запроса вернулся пустой или запрос выполнился с ошибкой. А Вы пытаетесь использовать несуществующие значения - на это и указывают сообщения об ошибках. Однако, почему запрос не вернул данные, и вообще, правильно ли отработал - с этим Вы разбираться не пытаетесь.
...
Рейтинг: 0 / 0
07.08.2013, 08:25
    #38357710
Feramount
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Ошибка Notice: Use of undefined constant
vkleFeramount,

Отображаемая ошибка, действительно, не является непосредственным источником проблемы. Результат запроса вернулся пустой или запрос выполнился с ошибкой. А Вы пытаетесь использовать несуществующие значения - на это и указывают сообщения об ошибках. Однако, почему запрос не вернул данные, и вообще, правильно ли отработал - с этим Вы разбираться не пытаетесь.

Ну почему же? В меру своих знаний я пытался разобраться почему не выполняется запрос. Просто мои поиски не привели ни к чему на что я мог бы опираться.
...
Рейтинг: 0 / 0
07.08.2013, 09:23
    #38357747
vkle
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Ошибка Notice: Use of undefined constant
Feramount,

Тут получается не совсем понятная фигня. Если и в первый и во второй раз в качестве аргумента передается одно и то же значение, то, вероятно, при втором вызове в таблице нет данных. Потому возвращается пустой результат. С другой стороны, если заключение значения для поиска в кавычки привело к положительному результату, это намекает на исходное не числовое значение. Тут что-то не сходится...


FeramountПросто мои поиски не привели ни к чему на что я мог бы опираться.Начните с
Код: php
1.
var_dump($code, $query_catalog);

для начала. Потом
Код: php
1.
... or die(mysql_error());



PS: для кода используйте тег SRC, так понятнее будет.
...
Рейтинг: 0 / 0
07.08.2013, 09:29
    #38357757
vkle
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Ошибка Notice: Use of undefined constant
Feramount $massiv = explode(":", $row_catalog[Image]); Вообще то, следует писать
Код: php
1.
$row_catalog['Image']
...
Рейтинг: 0 / 0
07.08.2013, 12:33
    #38358119
Програмёр
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Ошибка Notice: Use of undefined constant
vkleFeramount,

Тут получается не совсем понятная фигня. Если и в первый и во второй раз в качестве аргумента передается одно и то же значение, то, вероятно, при втором вызове в таблице нет данных. Потому возвращается пустой результат. С другой стороны, если заключение значения для поиска в кавычки привело к положительному результату, это намекает на исходное не числовое значение. Тут что-то не сходится...


FeramountПросто мои поиски не привели ни к чему на что я мог бы опираться.Начните с
Код: php
1.
var_dump($code, $query_catalog);

для начала. Потом
Код: php
1.
... or die(mysql_error());



PS: для кода используйте тег SRC, так понятнее будет.

Тут всё проще (сталкивался, когда начинал). Во второй раз в функцию не передаётся $code, а соответственно запрос получается типа "WHERE ItemID=". Потому он не может быть выполнен (синтаксическая ошибка) и mysql_query возвращает false вместо ресурса. Если же автор обрамляет данное значение в кавычки, то получаем WHERE ItemID='', где пустая строка интерпретируется как 0 и запрос выполняется (однако автор не проверил приходящие значения, а если я прав, то они неправильные).

как-то так.
...
Рейтинг: 0 / 0
07.08.2013, 12:36
    #38358127
vkle
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Ошибка Notice: Use of undefined constant
ПрограмёрВо второй раз в функцию не передаётся $codeТоже так подумалось. Но автор утверждает обратное:
FeramountvkleИ какие же аргументы передаются функции в первый и во второй раз?
Значение передавалось: 12507Потому и не сходится.
...
Рейтинг: 0 / 0
07.08.2013, 14:33
    #38358333
Feramount
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Ошибка Notice: Use of undefined constant
ПрограмёрvkleFeramount,

Тут получается не совсем понятная фигня. Если и в первый и во второй раз в качестве аргумента передается одно и то же значение, то, вероятно, при втором вызове в таблице нет данных. Потому возвращается пустой результат. С другой стороны, если заключение значения для поиска в кавычки привело к положительному результату, это намекает на исходное не числовое значение. Тут что-то не сходится...


пропущено...
Начните с
Код: php
1.
var_dump($code, $query_catalog);

для начала. Потом
Код: php
1.
... or die(mysql_error());



PS: для кода используйте тег SRC, так понятнее будет.

Тут всё проще (сталкивался, когда начинал). Во второй раз в функцию не передаётся $code, а соответственно запрос получается типа "WHERE ItemID=". Потому он не может быть выполнен (синтаксическая ошибка) и mysql_query возвращает false вместо ресурса. Если же автор обрамляет данное значение в кавычки, то получаем WHERE ItemID='', где пустая строка интерпретируется как 0 и запрос выполняется (однако автор не проверил приходящие значения, а если я прав, то они неправильные).

как-то так.

Самое смешное что проверил. И приходящее значение аналогично первому запросу.
...
Рейтинг: 0 / 0
07.08.2013, 14:33
    #38358334
Feramount
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Ошибка Notice: Use of undefined constant
vkleFeramount $massiv = explode(":", $row_catalog[Image]); Вообще то, следует писать
Код: php
1.
$row_catalog['Image']


Да я уже исправил этот косяк.
...
Рейтинг: 0 / 0
07.08.2013, 14:42
    #38358356
mhx
mhx
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Ошибка Notice: Use of undefined constant
Добавьте обработку исключений (хотя бы уже предложенным методом ... or die (...)) и дебаг переменных — поиск ошибок пойдет шустрее.
...
Рейтинг: 0 / 0
07.08.2013, 14:45
    #38358362
Feramount
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Ошибка Notice: Use of undefined constant
mhxДобавьте обработку исключений (хотя бы уже предложенным методом ... or die (...)) и дебаг переменных — поиск ошибок пойдет шустрее.
Да ошибку уже исправили экранированием двойных кавычек переменной $code в SQL запросе.
Там проблема не в переменных была. Каждый раз цикл возвращал sql запрос с кодом. Я это проверял выводом переменных которые поступают в функцию. Но второй раз он НЕ возвращал результат запроса.
...
Рейтинг: 0 / 0
07.08.2013, 15:03
    #38358395
Програмёр
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Ошибка Notice: Use of undefined constant
FeramountПрограмёрпропущено...


Тут всё проще (сталкивался, когда начинал). Во второй раз в функцию не передаётся $code, а соответственно запрос получается типа "WHERE ItemID=". Потому он не может быть выполнен (синтаксическая ошибка) и mysql_query возвращает false вместо ресурса. Если же автор обрамляет данное значение в кавычки, то получаем WHERE ItemID='', где пустая строка интерпретируется как 0 и запрос выполняется (однако автор не проверил приходящие значения, а если я прав, то они неправильные).

как-то так.

Самое смешное что проверил. И приходящее значение аналогично первому запросу.

Не верю :).

Код: php
1.
2.
$sql_catalog = 'SELECT Image FROM Message57 WHERE ItemID='.$code;
var_dump($sql_catalog);


что выводит. "SELECT Image FROM Message57 WHERE ItemID=12507"? я утверждаю, что первый раз да, а второй раз "SELECT Image FROM Message57 WHERE ItemID="
...
Рейтинг: 0 / 0
07.08.2013, 15:04
    #38358400
Програмёр
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Ошибка Notice: Use of undefined constant
FeramountДа ошибку уже исправили экранированием двойных кавычек переменной $code в SQL запросе.


Хм... так $code - это же число. Какие в нём двойные кавычки (для экранирования)? Вы или что-то путаете, или явно чего-то не договариваете...
...
Рейтинг: 0 / 0
07.08.2013, 15:09
    #38358407
vkle
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Ошибка Notice: Use of undefined constant
Програмёртак $code - это же число. Какие в нём двойные кавычки (для экранирования)?Автор это "число" кавычками и "заэкранировал"
...
Рейтинг: 0 / 0
07.08.2013, 15:12
    #38358414
Програмёр
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Ошибка Notice: Use of undefined constant
vkleПрограмёртак $code - это же число. Какие в нём двойные кавычки (для экранирования)?Автор это "число" кавычками и "заэкранировал"

О_о я явно отстал от передовых технологий эканирования
А если серьёзно, хочу дождаться ответа автора. Он явно что-то не так делает и настырно считает что так и должно быть.
...
Рейтинг: 0 / 0
07.08.2013, 20:36
    #38358850
Feramount
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Ошибка Notice: Use of undefined constant
Програмёрvkleпропущено...
Автор это "число" кавычками и "заэкранировал"

О_о я явно отстал от передовых технологий эканирования
А если серьёзно, хочу дождаться ответа автора. Он явно что-то не так делает и настырно считает что так и должно быть.

Вернул все на исходное, ошибки нету) как так вышло понять не могу)
...
Рейтинг: 0 / 0
14.08.2013, 18:45
    #38366693
deblogger
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Ошибка Notice: Use of undefined constant
Feramount,

В отличие от api mysqli, api mysql требует не добавлять точказапятую в конец запроса.

автор$sql_catalog = 'SELECT Image FROM Message57 WHERE ItemID="'.$code.'";';

Чем это грозит я не знаю, но очевидно вы закаывычили не только значение, но semicolon. Короче глюк на глюке. И еще mysql порицаем.
...
Рейтинг: 0 / 0
Форумы / PHP, Perl, Python [игнор отключен] [закрыт для гостей] / Ошибка Notice: Use of undefined constant / 22 сообщений из 22, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]