Проблема с simplexml_load_string

Alexandor1984

Новичок
Проблема с simplexml_load_string

Есть код
PHP:
<?php

mysql_connect("localhost", "root", "5") or die ("errorServer");
mysql_select_db("crm") or die("errorDB");

if ($_GET[data] != "")
{
	$xmlstr = $_GET[data];
	$xml = simplexml_load_string($xmlstr);
	
	foreach ($xml->task as $task)
	{
		$name = $task->name;
		$specification = $task->specification;
		$createDate = $task->createDate;
		$finishDate = $task->finishDate;
		$id_Priority = $task->id_Priority;
		$id_Employee = $task->id_Employee;
		$query = "INSERT INTO task (name_Task, specification_Task, createDate_Task, finishDate_Task, id_Priority, id_Employee) VALUES ('$name', '$specification', '$createDate', '$finishDate', '$id_Priority', '$id_Employee');";
		$result = mysql_query($query);
	}
	$result = mysql_error();
	if ($result == "")
	{
		print "OK";
	}
	else
	{
		print "$result";
	}
}

mysql_close ();

?>
Переменная $xmlstr получает данные в виде:
<tasks>
<task>
<idTask>1</idTask>
<name>Купитиь масла</name>
<specification>Найти магазин, достать денги ...</specification>
<createDate>11.11.2007</createDate>
<finishDate>11.12.2007</finishDate>
<id_Priority>0</id_Priority>
</task>
</tasks>

Проблема в том что если в тег <specification> поместить много текста, то сразуже появляються ошибки вида:
Warning: simplexml_load_string() [function.simplexml-load-string]: Entity: line 1: parser error : internal erro ...

Подскажите в чем проблема?
 

Wicked

Новичок
если у тебя проблема с simplexml, то зачем ты привет код, который помимо simplexml работает еще и с mysql, и с гетом, причем далеко не лучшим образом?
 

Alexandor1984

Новичок
Подскажите, как мне привильно распарсить XML-ину и как ее правильно принять(гет, пост...)?

P.S.
На MySQL не обращайте внимания.
 

Wicked

Новичок
и еще, данные получает "в виде" или прямо такие и есть? где заголовок xml с указанием кодировки данных? в какой кодировке эти данные реально находятся?
 

Wicked

Новичок
Есть подозрение, что когда ты добавляешь много текста, то эти данные режутся браузером по ограничению на длину гета. советую тебе для начала убедиться что ты в PHP получаешь именно те данные, которые, как ты думаешь, отправляет браузер.

$_GET[data] -> $_GET["data"].

А парсишь ты и так правильно.

-~{}~ 17.04.07 13:26:

Warning: simplexml_load_string() [function.simplexml-load-string]: Entity: line 1: parser error : internal erro ...
Кроме буквы r больше ничего под троеточием не сокрыто?
 

Alexandor1984

Новичок
Вот полный текст ошибки.
Warning: simplexml_load_string() [function.simplexml-load-string]: Entity: line 1: parser error : internal error in C:\www\Apache2\htdocs\crm\php_files\addTask.php on line 9

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

-~{}~ 17.04.07 10:57:

А мона узнать, что делает строка $_GET[data] -> $_GET["data"]?
А то не доходит.
 

Wicked

Новичок
эта строка делает твоими руками замену кода $_GET[data] на код $_GET["data"].

Я думаю, что всетаки данные приходят частями.
А я так не думаю. У фразы "приходят частями" несколько другой смысл, нежели у "данные режутся браузером". И это не должно особо влиять на кол-во ошибок.

Давай ты все таки сделаешь проверку, что ты передаешь правильные данные в simplexml_load_string().
 

Alexandor1984

Новичок
Проверил. Приходит не весь текст, ну и закрывающиися теги отсутствуют.
Как с этим бороться?
 

Wicked

Новичок
со стороны браузера ограничений нету.
Со стороны ПХП - зависит от настроек: http://www.php.net/manual/en/ini.core.php#ini.post-max-size
 
Сверху