Здравствуйте. Вот такая у меня проблема. Файл index.htm : <title>Отправка данных</title> </head> <body> <h1>Отправка данных</h1> <form name="zapros" id="zapros"> <p><input type="text" name="surname" id="surname" value="" size="25" /> <small> Фамилия</small> </p> <p><input type="text" name="firstname" id="firstname" value="" size="25" /> <small> Имя</small> </p> <p><input type="text" name="middlename" id="middlename" value="" size="25" /> <small> Отчество</small> </p> <p><input type="date" name="dateofbirth" id="dateofbirth" value="" size="35" /> <small> Дата рождения</small> </p> <p><input type="text" name="idseries" id="idseries" value="" size="25" /> <small> Серия паспорта</small> </p> <p><input type="text" name="idnum" id="idnum" value="" size="25" /> <small> Номер паспорта</small> </p> <p><button formaction="2.php" formenctype=multipart/form-data formmethod=POST>Отправить</button> </p> </form> </body> </html> Файл 2.php: <?php //Функция отправки xml запроса function PostXML($link, $xml) { $chx = curl_init();//инициализация curl curl_setopt($chx, CURLOPT_URL, $link);//адрес запроса curl_setopt($chx, CURLOPT_TIMEOUT, 90); curl_setopt($chx, CURLOPT_RETURNTRANSFER, 1);// Ожидание ответа сервера curl_setopt($chx, CURLOPT_USERAGENT, $_SERVER["HTTP_USER_AGENT"]); curl_setopt($chx, CURLOPT_POST, 1); curl_setopt($chx, CURLOPT_POSTFIELDS, $xml); $result = curl_exec($chx); curl_close($chx); return $result; } //Присвоение переменным значений из полей html-формы $Surname1 = $_POST['surname']; $Firstname1 = $_POST['firstname']; $Middlename1 = $_POST['middlename']; $DateOfBirth1 = $_POST['dateofbirth']; $IdSeries1 = $_POST['idseries']; $IdNum1 = $_POST['idnum']; //////////////////////////////// /////////////////////////////// //////////////////СОЗДАНИЕ XML////////////////////////// //////////////////////////////// /////////////////////////////// $dom = new DomDocument('1.0','utf-8'); //Создаем xml-строку //Добавление корня - <Fms> $Fms = $dom->appendChild($dom->createElement('Fms')); //Добавление элемента <Request> в <Fms> $Request = $Fms->appendChild($dom->createElement('Request')); // добавление элемента <Id> в <Request> $Id = $Request->appendChild($dom->createElement('Id')); // добавление элемента <Auth> в <Request> $Auth = $Request->appendChild($dom->createElement('Auth')); // добавление элемента <MemberCode> в <Auth> $MemberCode = $Auth->appendChild($dom->createElement('MemberCode')); // добавление элемента <User> в <Auth> $User = $Auth->appendChild($dom->createElement('User')); // добавление элемента <Password> в <Auth> $Password = $Auth->appendChild($dom->createElement('Password')); // добавление элемента <Contents> в <Request> $Contents = $Request->appendChild($dom->createElement('Contents')); // добавление элемента <Surname> в <Contents> $Surname = $Contents->appendChild($dom->createElement('Surname')); // добавление элемента <Firstname> в <Contents> $Firstname = $Contents->appendChild($dom->createElement('Firstname')); // добавление элемента <Middlename> в <Contents> $Middlename = $Contents->appendChild($dom->createElement('Middlename')); // добавление элемента <DateOfBirth> в <Contents> $DateOfBirth = $Contents->appendChild($dom->createElement('DateOfBirth')); // добавление элемента <IdSeries> в <Contents> $IdSeries = $Contents->appendChild($dom->createElement('IdSeries')); // добавление элемента <IdNum> в <Contents> $IdNum = $Contents->appendChild($dom->createElement('IdNum')); //////////////////////////////// //////////////////////////////// ///////////////// //////ЗАПОЛНЕНИЕ XML-ФАЙЛА ДАННЫМИ $Id->appendChild($dom->createTextNode('***')); //$MemberCode->appendChild($dom->createTextNode('0011221100')); $User->appendChild($dom->createTextNode('######')); $Password->appendChild($dom->createTextNode('########')); $Surname->appendChild($dom->createTextNode($Surname1)); $Firstname->appendChild($dom->createTextNode($Firstname1)); $Middlename->appendChild($dom->createTextNode($Middlename1)); $DateOfBirth->appendChild($dom->createTextNode($DateOfBirth1)); $IdSeries->appendChild($dom->createTextNode($IdSeries1)); $IdNum->appendChild($dom->createTextNode($IdNum1)); //////////////////////////////// //////////////////////////////// ///////////////// //генерация xml $dom->formatOutput = true; // Сохранить XML как строку или файл $test1 = $dom->saveXML(); // передача строки в test1 $dom->save('test1.xml'); // сохранение файла //////////////////////////////// ///////////////////////// ///////////////КОНЕЦ СОЗДАНИЯ XML/////////////////////// //////////////////////////////// /////////////////////////////// $respons = PostXML('http://###########', base64_encode($test1));//ответ сервера $res = simplexml_load_string(base64_decode($respons)); $res->asXML('otvet.xml'); $surname_->Record->surname; $firstname_->Record->firstname; $middlename_->Record->middlename; $dateofbirth_->Record->dateofbirth; $idseries_->Record->idseries; $idnum_->Record->idnum; $issuedate->Record->issuedate; $regdate->Record->regdate; $regarea->Record->regarea; $regdistrict->Record->regdistrict; $regcity->Record->regcity; $regplace->Record->regplace; $regstreet->Record->regstreet; $reghousenumber->Record->reghousenumber; $regbuild->Record->regbuild; $regappartment->Record->regappartment; $note->Record->note; ?> Задача: Заполняем форму информацией, формируем XML-запрос с заранее оговоренной структурой, отправляем его на URL, там его обрабатывают, и присылают ответ в формате XML также с заранее известной структурой. Доп. информация: 1.как видно из скрипта, данные кодируются в base64 и ответ тоже приходит закодированным, нужно его раскодировать и сохранить xml в файл otvet.xml 2.для авторизации на удаленном сервере используется membercode, user,password,а также д.б. установлен сертификат удостоверяющего центра. Запрос д. б. подписан эцп в формате РКС#7. на компютере установлено криптоПРО. 3.Обмен между мной и urlом подразумевается в онлайновом синхронном режиме При попытке отправки появляется ошибка: Fatal error: Call to a member function asXML() on a non-object in ...\2.php on line 78 Подскажите пожалуйста, как решить данную проблему? Возможно нужно совсем не так делать, как я делаю?
вай какой запрос .. функция asXML не существует вот и вся ошибка =) и да .. переводите с английского пишет же все
Ребята, вы вон совсем igordata шокировали Тут всего лишь написано, что произошла попытка вызова asXML для не объекта. Ну такую-то фразу переводить нужно уметь ) То есть в $res в этот момент хранится не объект, а что-то другое Значит не сработала как надо строка Код (Text): $res = simplexml_load_string(base64_decode($respons)); А это в свою очередь значит, что в $respons не валидный XML-код, а что-то левое.