Это сообщение об ошибке запускается, когда отправляется сообщение перед отправкой заголовков HTTP (с помощью setcookie
или header
). Общие причины вывода чего-либо перед заголовками HTTP:
& nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; Чтобы избежать этого, просто оставьте закрытие ?>
- это не обязательно. g2] в начале файла php. Изучите ваши php-файлы с помощью шестнадцатеричного редактора, чтобы узнать, так ли это. Они должны начинаться с байтов 3F 3C
. Вы можете безопасно удалить спецификацию EF BB BF
с начала файлов.
echo
, printf
, readfile
, passthru
, код до
и т. д. display_errors
php.ini. Вместо того, чтобы сбой при ошибке программиста, php молча фиксирует ошибку и выдает предупреждение. Хотя вы можете изменить конфигурации display_errors
или error_reporting , вы должны скорее исправить эту проблему. Основными причинами являются доступ к неопределенным элементам массива (например, $_POST['input']
без использования empty
или isset
, чтобы проверить, установлен ли вход) или используя неопределенная константа вместо строкового литерала (как в $_POST[input]
, обратите внимание на недостающие кавычки). Включение буферизации вывода должно устранить проблему; все выходные данные после вызова ob_start
буферизуются в памяти до тех пор, пока вы не отпустите буфер, например. с ob_end_flush
.
Однако, хотя буферизация вывода исключает проблемы, вы должны действительно определить, почему ваше приложение выводит тело HTTP перед заголовком HTTP. Это будет похоже на телефонный звонок и обсуждение вашего дня и погоды, прежде чем сообщить вызывающему, что у него неправильный номер.
У вас явно неверные данные. Вы можете найти его, выполнив что-то вроде этого:
select packslip
from [A1Warehouse].[dbo].[RF_LOG2]
where try_cast(l2.PACKSLIP as decimal(22,8)) is null and l2.PACKSLIP is not null;
Что касается вашего запроса, вы можете избежать ошибки, используя try_cast()
. Тем не менее, вы должны увидеть реальные проблемы в ваших данных.
И ваши отношения внешнего ключа должны иметь совпадающие типы и быть должным образом объявлены.
похоже, у вас есть данные, которые нельзя преобразовать в число / десятичное число
привести / преобразовать как varchar
select top 100
pickticket_number,
date_allocated,
l2.action
from
[JMNYC-AMTDB].[AMTPLUS].[dbo].PickTickets P (nolock)
left join
[A1Warehouse].[dbo].[RF_LOG2] (NOLOCK) l2 ON cast(l2.PACKSLIP as varchar) = cast(p.PickTicket_Number as varchar)
, а затем устранить неполадки в каждой таблице, чтобы увидеть, какие нецифровые символы находятся это поле
с помощью isnumeric