С Новым годом! Форум программистов, компьютерный форум, киберфорум
jQuery
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.67/18: Рейтинг темы: голосов - 18, средняя оценка - 4.67
gr1ffon

(РЕШЕНО) jQuery, AJAX, php - при include файла, дает некорректный ответ

14.04.2013, 21:54. Показов 3509. Ответов 14
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Ребят, обыскал все топ 50 по поисковикам, ничего подобного нигде не нашел... То ли я дурак, то ли лыжи...
Суть: аякс запрос в обработке сабмита формы:
JavaScript
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
$(function(){
  $('#login_form').submit(function(e){
    e.preventDefault();
    var m_method=$(this).attr('method');
    var m_action=$(this).attr('action');
    var m_data=$(this).serialize();
    $('#login_error').html('');
    $.ajax({
      type: m_method,
      url: m_action,
      data: m_data,
      dataType: "json",
      success: function(result){
    if (result.name =='Serg'){
      $('#user_form').load('incs/sidebar/sidelogin.inc.php');
      $('#login_error').html('');
    }
    else {
      $('#login_error').html('<span style="color:#F00"><b>'+ result.name +'</b></span>');
    }
      }
    });
  return false;
  });
});
Собственно php файл, на который приходит POST запрос:
PHP
1
2
3
4
<?php
$answ = array('name' => 'Alexander');
echo json_encode($answ);
?>
Так всё работает. Стоит только добавить в этот php файл любой include, include_once, require, require_once (даже пустой <?php ?>), так результат невозможно обработать: внешне он выдает одинаковые ответы (с инклудом и без), а обрабатывать не хочет.
Аналогично в случае если использовать не json, а обычный html. Пример:
PHP
1
2
3
4
<?php
include 'incs/config.inc.php';
echo 'Serg';
?>
JavaScript
1
2
3
if (result == 'Serg'){
//---//
}
Данный случай также не будет выполняться, пока есть include.
Прошу, дайте совет, что делать, кроме как все тексты инклудируемых файлов перекатывать в этот файл?

Добавлено через 14 часов 20 минут
Всё, решил проблему! Правда меня правильно подтолкнули на гугл-вопросах проверить ответы php файла через firebug.
Собственно, если кому-то интересно в чем на самом деле причина, то вот:

Ответы выдает одинаковые:
{"name":"Alexander"}
При этом без подключаемого файла:
1) Он определяет, что это JSON
2) Объем тела ответа 23 байта

А с подключаемым пустым <?php ?> файлом:
1) Он не определяет, что это JSON (нет вкладки)
2) Объем тела ответа 26 байт

Заголовки ответа и запроса в обоих случаях идентичны.
Отличия только в теле ответа на 3 байта
Примечание №2 14 апр. 2013 г., 21:43:56
Только что сравнил в WinHex'е оба ответа, вот что получил:
1) Без инклуда:
EFBBBF7B226E616D65223A22416C6578616E6465 72227D
{"name":"Alexander"}

2)С инклудом:
EFBBBFEFBBBF7B226E616D65223A22416C657861 6E646572227D
{"name":"Alexander"}

Зачем он пишет EFBBBF (Это BOM (Byte order mark) символ) дважды - я не понимаю.

Я конечно, кажется, догадываюсь - в инклудируемом файле он есть тоже, поэтому он его опять же добавляет, но это, я думаю, врядли
Примечание №3 14 апр. 2013 г., 21:50:05
Всё, решил проблему! Огромное спасибо, что подтолкнули верно.
Действительно, надо просто убирать BOM символы в коде и всё работает шикарно.

Надеюсь, вышенаписанное поможет и остальным, кто с этой проблемой столкнулся или столкнется.
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
14.04.2013, 21:54
Ответы с готовыми решениями:

JQuery ajax запрос и php ответ
Предполагается, что получив от сервера ответ JS выведет логин, добавив его в тело страницы. Почему связка запрос-ответ не работает? Консоль...

Верните мне ответ в AJAX пожалуйста! ответ AJAX из php
Доброе время суток дорогие друзья :) На вас надежда как всегда, уверен поможете, есть форма она находится в IFRAME на сайте одном под...

jQuery Form не дает ответ
Здрасти, товарищи явоведы, сабж описан выше (jQuery Form не дает ответ) Пытаюсь загрузить файл, вот форма &lt;form...

14
0 / 0 / 0
Регистрация: 24.10.2017
Сообщений: 48
24.10.2017, 12:43
привет подскажи а как всетаки решил? у меня похожая проблема, но я не понял как исправить.
в файле обработчике пытаюсь подключить файл (includom) подключения к базе данных (так как там константы глобальные)

<?php
include 'db.php';
//Даты для вывода в шапке сайта
$date = $_POST['dateComplete']; //Принимае дату из onClick датапикера



//фунция формирования таблицы жестких задач
function get_h_tasks($date){

$result = mysql_query("SELECT * FROM `hard_tasks` WHERE 1");// выборка элементов из таблицы

$hard_tasks = array();// формирование массива для задач

while($row = mysql_fetch_assoc($result)){//наполняем массив задачами

$hard_tasks[] = $row;

}

foreach($hard_tasks as $key => $value){
if($value['date'] == $date){
echo '<div class="h_task">';
echo '<table>';
echo '<tr>';
echo '<td class="time">' . substr($value['time'],0, 5) . '</td>';
echo '<td class="task">' . $value['h_tasks'] . '</td>';
echo '</tr>';
echo '</table>';
echo '</div>';
};//конец IF
};//конец цикла форич


};//конец функции формирования жестких зада
get_h_tasks($date);

в файле обработчике пытаюсь подключить файл подключения к базе данных (так как там константы глобальные)
0
 Аватар для Уф
890 / 725 / 447
Регистрация: 13.07.2015
Сообщений: 2,277
25.10.2017, 13:26
отличие на три байта значит кури про кодировки UTF8 и UTF8 w/o BOM, тебе как раз нужно сохранить скрипты во втором формате
https://ru.wikipedia.org/wiki/... 0%BE%D0%B2

Добавлено через 1 минуту
открой файлы в notepad++. Кодировки->Кодировать в УТФ8 без ВОМ исохрани
0
0 / 0 / 0
Регистрация: 24.10.2017
Сообщений: 48
25.10.2017, 13:34
спасибо, но к сожалению результат тот же=((( почему то
0
 Аватар для Уф
890 / 725 / 447
Регистрация: 13.07.2015
Сообщений: 2,277
25.10.2017, 14:36
ты в обоих файлах поменял? и в инклуде и в том который вызываешь?
0
0 / 0 / 0
Регистрация: 24.10.2017
Сообщений: 48
25.10.2017, 14:37
да, я все связанные файлы пересохранил кодировку
0
 Аватар для Уф
890 / 725 / 447
Регистрация: 13.07.2015
Сообщений: 2,277
25.10.2017, 15:20
путь то вообще правильный у файла? попробуй вместо include использовать require он выдаст фатальную ошибку и в логи смотри и в консоли браузера на вкладке network можно посмотреть что отвечает скрипт при обращении через ajax
0
0 / 0 / 0
Регистрация: 24.10.2017
Сообщений: 48
26.10.2017, 11:40
путь верный, риквайр пробывал, фатальной ошибки нет. если вставляю подключение к базе данных в файл обработчик, то все работает, а если подключаемый файл то полный ноль, нет реакции.

вот подключаемый файл:

<?php

//сервер БД
define('HOST', 'localhost');
//пользователь БД
define('USER', 'admin');
//пароль БД
define('PASS', 'password');
//БД
define('DB', 'everiday');

//Название сайта - title
define('TITLE', 'Ежедневник Everiday');

//Подключение к БД
mysql_connect(HOST, USER,PASS) or die ('Нет подключения к серверу БД');
// выбор БД
mysql_select_db(DB) or die ('Нет соединения с базой данных');
//Кодировка
mysql_query("SET NAMES 'UTF8'") or die ('Проблемы с кодировкой');
0
 Аватар для Уф
890 / 725 / 447
Регистрация: 13.07.2015
Сообщений: 2,277
26.10.2017, 12:17
ты можешь написать сюда какой ответ в отладчике браузера тебе приходит от этого скрипта?
0
0 / 0 / 0
Регистрация: 24.10.2017
Сообщений: 48
26.10.2017, 13:07
действительно была проблема с подключением файла, просто ошибка вылетала в каком то блоке, который не видно на экране, по этому немог понять что происходит=) спасибо за подсказку.

но подключить вообще никак не получается, так как пытаюсь писать MVC практически поддиктовку по видюхам в инете.

в связи с этим придумал идею - передавать логин и пароль в подключение к базе данных из переменной через сессию, почему то если переменной напрямую прописать логин и пароль, то все работает, а если написать $log = $_SESSION['login'] то

ЭТО ПОДКЛЮЧЕНИЕ В ФАЙЛЕ ОБРАБОТЧИКЕ

//Даты для вывода в шапке сайта
$date = $_POST['dateComplete']; //Принимае дату из onClick датапикера

echo $adm = $_SESSION['auth']['login'];

//Подключение к БД
mysql_connect('localhost', $adm, 'zihorka19836') or die ('Нет подключения к серверу БД');
// выбор БД
mysql_select_db('everiday') or die ('Нет соединения с базой данных');
//Кодировка
mysql_query("SET NAMES 'UTF8'") or die ('Проблемы с кодировкой');

А ЭТО ОТВЕТ В ФАЕРБАГЕ

Warning: mysql_connect(): Access denied for user ''@'localhost' (using password: YES) in D:\OpenServer\domains\Everyday\views\eve riday\datebook.php on line 14
Нет подключения к серверу БД

Добавлено через 1 минуту
при этом в сессии логин есть (если выводить на экран то есть)

Добавлено через 49 секунд
А ЕСЛИ ТАК ТО РАБОТАЕТ

//Даты для вывода в шапке сайта
$date = $_POST['dateComplete']; //Принимае дату из onClick датапикера
echo $adm = 'admin';

//Подключение к БД
mysql_connect('localhost', $adm, 'zihorka19836') or die ('Нет подключения к серверу БД');
// выбор БД
mysql_select_db('everiday') or die ('Нет соединения с базой данных');
//Кодировка
mysql_query("SET NAMES 'UTF8'") or die ('Проблемы с кодировкой');
0
 Аватар для Уф
890 / 725 / 447
Регистрация: 13.07.2015
Сообщений: 2,277
26.10.2017, 13:13
странная конструкция
PHP
1
echo $adm = 'admin';
зачем пишешь ехо сразу при объявлении? оно вообще не нужно, эта инструкция вывода на экран. для присвоения пиши просто
PHP
1
$adm = 'admin';
0
0 / 0 / 0
Регистрация: 24.10.2017
Сообщений: 48
26.10.2017, 13:19
это я просто проверял, есть ли в переменной строка, она работает даже с эхо, а вот если в переменную через сессию то же самое передавать то почему то не подключает к базе данных,
может инфу из сессии чем то обрабатывать надо?=(
0
 Аватар для Уф
890 / 725 / 447
Регистрация: 13.07.2015
Сообщений: 2,277
26.10.2017, 13:21
через сессию будет подключать если ты вверху скрипта напишешь
PHP
1
session_start();


Добавлено через 43 секунды
в каждом файле где используешь сессии надо их стартовать, иначе не будет видеть
0
0 / 0 / 0
Регистрация: 24.10.2017
Сообщений: 48
26.10.2017, 14:08
уже лучше=) подключение пошло, но теперь пишет заголовки уже отправлены =))) потому что этот файл как шаблон в MVC подключается а сессия уже открыта в контроллере (который подключается в индексном файле).

но самое интересное что без session_start() вывод на экран $_SESSION['auth']['login']; есть , то есть там что то должно быть.
0
0 / 0 / 0
Регистрация: 24.10.2017
Сообщений: 48
26.10.2017, 14:13
спасибо огромное, разобрался все таки, вынес код в отдельный файл обработчик и там открыл сессию.

100500 + в карму=))
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
26.10.2017, 14:13
Помогаю со студенческими работами здесь

"Некорректный ответ сервера" при загрузке файла
При загрузки в любой элемент инфоблока любого файла весом примерно до 5 Мб возникает ошибка &quot;Некорректный ответ сервера&quot;. На...

Выполнение php-кода через ajax jQuery сразу при загрузке страницы.
Все доброго времени суток, с JS вообще не знаком, только поверхностно, сразу обязан предупредить подобные темы искал, но так и не нашел,...

Некорректный ответ сервера при авторизации в инстаграм
Всем добрый день, нужна ваша помощь. В общем проблема в следующем, я авторизуюсь в инстаграм с использованием RestSharp без API, но не...

При вычислении дробных выражений получается некорректный ответ
при вычислении дробных выражений получается некорректный ответ, например: 212,2-212=0,199999999999989. в чем причина? double...

Получить ответ php и jquery
jQuery.post('page.php', {'first':data1, 'second':data2}); А файл page.php содержит код &lt;? $Myfirst = $_POST; $Mysecond = $_POST; ...


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

Или воспользуйтесь поиском по форуму:
15
Ответ Создать тему
Новые блоги и статьи
Расчёт переходных процессов в цепи постоянного тока
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
В современном мире, где конкуренция за внимание потребителя достигла пика, дизайн становится мощным инструментом для успеха бренда. Это не просто красивый внешний вид продукта или сайта — это. . .
Модель микоризы: классовый агентный подход 3
anaschu 06.01.2026
aa0a7f55b50dd51c5ec569d2d10c54f6/ O1rJuneU_ls https:/ / vkvideo. ru/ video-115721503_456239114
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru