[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: 500 ошибка при ajax запросе
Страницы: 1, 2, 3
McLotos
Добрый вечер!
У меня тут выскакивает 500 ошибка, не могу понять почему
Если пишу вот так
$sql = "SELECT * FROM ".GOODSINFO." WHERE `infoid`={?}";
$allinfo = $db -> selectRow($sql,array($_GET['modifis']));
echo json_encode($allinfo);

То всё нормально работает
А если вот так
$sql = "SELECT * FROM ".GOODSINFO." WHERE `infoid`={?}";
$allinfo = $db -> selectRow($sql,array($_GET['modifis']));
$allinfo['compl_info'] = $tpl -> unpackBB($allinfo['compl_info']);
echo json_encode($allinfo);

То xmlhttp.send(); возвращает 500 ошибку
Сам unpackBB
function unpackBB($string)
{
preg_match('#\['.$_SESSION['lang'].']*\](.+)\[/'.$_SESSION['lang'].'\]#U', $string, $m);

$str_search = array(
'#\\\n#is',
'#\[p\](.+?)\[\/p\]#is',
'#\[table\](.+?)\[\/table\]#is',
'#\[thead\](.+?)\[\/thead\]#is',
'#\[tbody\](.+?)\[\/tbody\]#is',
'#\[tr\](.+?)\[\/tr\]#is',
'#\[td rowspan=(.+?)\](.+?)\[\/td\]#is',
'#\[td\](.+?)\[\/td\]#is',
'#\[td colspan=(.+?)\](.+?)\[\/td\]#is',
'#\[table id=(.+?)\](.+?)\[\/table\]#is',
'#\[h1\](.+?)\[\/h1\]#is',
'#\[h3\](.+?)\[\/h3\]#is',
'#\[b\](.+?)\[\/b\]#is',
'#\[i\](.+?)\[\/i\]#is',
'#\[u\](.+?)\[\/u\]#is',
'#\[code\](.+?)\[\/code\]#is',
'#\[url=(.+?)\](.+?)\[\/url\]#is',
'#\[url\](.+?)\[\/url\]#is',
'#\[img\](.+?)\[\/img\]#is',
'#\[size=(.+?)\](.+?)\[\/size\]#is',
'#\[color=(.+?)\](.+?)\[\/color\]#is',
'#\[list\](.+?)\[\/list\]#is',
'#\[listn](.+?)\[\/listn\]#is',
'#\[liste](.+?)\[\/liste\]#is',
'#\[\*\](.+?)\[\/\*\]#');

$str_replace = array(
'<br />',
'<p>\\1</p>',
'<table>\\1</table>',
'<thead>\\1</thead>',
'<tbody>\\1</tbody>',
'<tr>\\1</tr>',
'<td rowspan="\\1">\\2</td>',
'<td>\\1</td>',
'<td colspan="\\1">\\2</td>',
'<table id="\\1">\\2</table>',
'<h1>\\1</h1>',
'<h3>\\1</h3>',
'<b>\\1</b>',
'<i>\\1</i>',
'<span style="text-decoration:underline">\\1</span>',
'<code class="code">\\1</code>',
'<a href="\\1">\\2</a>',
'<a href="\\1">\\1</a>',
'<img src="\\1" alt = "Изображение" />',
'<span style="font-size:\\1%">\\2</span>',
'<span style="color:\\1">\\2</span>',
'<ul>\\1</ul>',
'<ol>\\1</ol>',
'<li>\\1</li>');

$result = preg_replace($str_search, $str_replace, $m[1]);
$result = mb_convert_encoding($result, 'HTML-ENTITIES', 'utf-8');
$content = new DOMDocument();
$content -> formatOutput = true;
$content -> encoding = 'UTF-8';
$content -> loadHTML($result);
$content -> doctype -> parentNode -> removeChild($content -> doctype);
$html = $content -> getElementsByTagName('html') -> item(0);
$fragment = $content -> createDocumentFragment();
while ($html -> childNodes -> length > 0)
{$fragment -> appendChild($html -> childNodes -> item(0));}

$html -> parentNode -> replaceChild($fragment, $html);
$body = $content -> getElementsByTagName("body") -> item(0);
$fragment = $content -> createDocumentFragment();
while ($body -> childNodes -> length > 0)
{$fragment->appendChild($body->childNodes->item(0));}
$body -> parentNode -> replaceChild($fragment, $body);
$result = $content -> SaveHTML();
return $result;
}

При этом unpackBB на других страницах работает нормально

_____________
программирование - инструмент для решения конкретных задач, любая попытка спроектировать что-то универсальное приведет к провалу.©paul85
В любом случае тебе прийдётся пройти путь изобретения велосипеда, который прошли другие, только причиной твоего изобретения будет непонимание принципов работы велосипеда изобретённого другими людьми.©SlavaFr
jQuery это попытка использовать АН-225 для перевозки зубочистки
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.