Имя: Пароль:
1C
1С v8
v8: PHP SOAP перестало работать то что точно работало!!!
0 dzsysop
 
27.07.11
21:50
Вопрос к знатокам PHP, или тем кто реально копал эти чудо веб-сервисы.

Имеется код, который 100% работал неделю назад
и который перестал работать без объяснения причин на одном месте (хостинге, где ничего не менялось!!!),
но прекрасно выполняется (пока ?) на другом хостинге.

Вопрос - куда копать - потому что идей нет!!!

погоняйте кто может на своих площадках, может появятся мысли?

вот кусок кода:

$username = 'web_service';
$password = 'webadmin';
       
$result = '';
try {
   $client= new SoapClient('http://69.70.226.251/InfoBase1/ws/test_ws1.1cws?wsdl',
   array('location'=>'http://69.70.226.251/InfoBase1/ws/test_ws1.1cws?wsdl','login' => $username,
               'password' => $password));

   try
   {
       $result.=$client->CheckUserNameExist(array('UserName'=>$userid))->return;
   }
   catch (Exception $e)
   {
       $result.='Caught exception: '.$e->getMessage()."\n";
   };
       
}
catch (Exception $e)
{
   $result.= 'Caught exception: '. $e->getMessage()."\n";
};

echo $result;
1 Fragster
 
гуру
27.07.11
21:51
текст ошибки?
2 dzsysop
 
27.07.11
21:51
блин
3 dzsysop
 
27.07.11
21:52
нет там текста - оно виснет
4 dzsysop
 
27.07.11
21:52
а тут форум преобразовал строку
5 dzsysop
 
27.07.11
21:53
виснет на создании клиента $client= new SoapClient(
6 dzsysop
 
27.07.11
21:53
адрес вызова

69.70.226.251/InfoBase1/ws/test_ws1.1cws?wsdl
7 dzsysop
 
27.07.11
21:55
второй параметр в вызове
array('login'=>$username, 'password'=>$password)

а то тут какой-то баг на форуме
8 Asmody
 
27.07.11
21:57
(0) точно ничего не менялось? Может хитер какие–нибудь обновления безопасности установил?
9 dzsysop
 
27.07.11
21:58
у меня локально XAMPP стоит
10 dzsysop
 
27.07.11
21:59
я ничего не менял, работал себе и работал
11 dzsysop
 
27.07.11
22:02
опять же, если даже что-то изменилось, то КУДА копать? по инету полазил, пишут только что кэш нао отключать - отключать стал
ini_set('soap.wsdl_cache_enabled', 0)

но не помогает

апач стал рестартовать перед запуском, типа кэш же должен сброситься - не помогает

самое обидное ва дня воевал, думал напортачил с кодом

потом когда исключил все, залил ко на внешний хостинг - там все заработало

но меня это не раует, потому что на ругом хостинге, куда скорее всего придется таки заливать, этот код работать не хочет

т.е. грабли таки надо найти
12 dzsysop
 
27.07.11
22:04
кстати, может кто-то знает хороший форм РНРшников?
может я куда-то сходил бы за советом, все-таки вебсервисы не совсем местная тема
13 dzsysop
 
27.07.11
22:06
в строке я ошибся тут

$result.=$client->CheckUserNameExist(array('UserName'=>$userid))->return;

надо написать

$result.=$client->CheckUserNameExist(array('UserName'=>$username))->return;

или любую строку туда передать

должно возвращать true  или fasle
14 Fragster
 
гуру
27.07.11
22:08
ну а в логах апача что?
15 dzsysop
 
27.07.11
22:17
ХЗ, не спеця в этом, сейчас поищу и скину сюда
но я думал чтобы кто-то для начала у себя запустил

в логах апача - тишина - сейчас при попытке открыть страницу - она тупо визуально висит, а в логах апача ничего не появляется...

я вот думаю а у РНР есть лог?
16 Fragster
 
гуру
27.07.11
22:24
у меня говорит: Caught exception: Unable to parse URL
17 Fragster
 
гуру
27.07.11
22:24
а просто wsdl - открывается
18 Fragster
 
гуру
27.07.11
22:25
а, не, это я опечатался
19 Fragster
 
гуру
27.07.11
22:26
вот так работает (true) http://pastebin.com/q0dhWFwa
20 dzsysop
 
27.07.11
22:27
???
'location'=>'http://69.70.226.251/InfoBase1/ws/test_ws1.1cws'

интересное кино, сейчас попробую
21 Адинэснег
 
27.07.11
22:28
(8) безопасность еще в (0) по п*зде пошла :-D
22 dzsysop
 
27.07.11
22:33
не помогает, причем я до этого пытался локэйшн передавать, правда саму ссылку туда вставлял.

вот и спрашивается - что за епрст!?

а, еще, если первым параметром даю не ссылку а NULL, то объект создается, но тогда ругается при попытке вызова метода
CheckUserNameExist

в общем, я в ауте, глубоком и не знаю куда двигаться

сейчас переустановлю XAMPP, посмотрю что будет...
23 Fragster
 
гуру
27.07.11
22:38
(22) все дело в настройках пхп
24 Fragster
 
гуру
27.07.11
22:38
мне, например, отдельно ставить php_soap пришлось - потому как он не был в стандартной поставке
25 dzsysop
 
27.07.11
22:39
ок

сейчас сохраню текущий ИНИ, потом пониму дефолтный
потому как оно у меня ТОЧНО работало


но вопрос потом еще с хостерами разобраться
26 dzsysop
 
27.07.11
22:41
такс, пошел качать свежий XAMPP
27 dzsysop
 
27.07.11
23:21
итого
на свежем XAMPP

имеем
Fatal error: Maximum execution time of 30 seconds exceeded in D:\xampp174\htdocs\joom15\ttt\test.php on line 25

т.е. снова висим...
а почему висим - никто не знает...
:-(
28 Asmody
 
27.07.11
23:25
(27) ну поставь минут 5 на выполнение скрипта
29 dzsysop
 
27.07.11
23:32
ЗАЧЕМ??? если он 100% выполняется пару секунд!!!
30 Asmody
 
27.07.11
23:39
(29) откуда я знаю? может у тебя через модем 1800к соединение идет?
31 dzsysop
 
27.07.11
23:50
:-)
32 Fragster
 
гуру
27.07.11
23:50
файрволл винды не дает апачу ничего сделать (как вариант)
33 dzsysop
 
28.07.11
00:10
не верю, как-то все очень станно

фаервол - не давал бы вообще туда обращаться

очень непонятные симптомы, и главное все РАБОТАЛО неделю назад
34 Asmody
 
28.07.11
00:40
Отключи касперского, дрвеба или колёсами ещё шибко умный сетевую активность блокирует
35 Asmody
 
28.07.11
00:41
(34)+ «колёсами» — это не читать, это телефон так все переврал
36 SeraFim
 
28.07.11
02:49
объясните мне, неучу, для чего такие длинные параметры вызова:
$client= new SoapClient('http://69.70.226.251/InfoBase1/ws/test_ws1.1cws?wsdl" target="_blank" ref="nofollow" class="extralink">http://69.70.226.251/InfoBase1/ws/test_ws1.1cws?wsdl',

   array('location'=>'//69.70.226.251/InfoBase1/ws/test_ws1.1cws?wsdl','login" target="_blank" ref="nofollow" class="extralink">http://69.70.226.251/InfoBase1/ws/test_ws1.1cws?wsdl','login' => $username,

               'password' => $password));

для чего эти таргеты, классы? тут же просто нужна структура веб-сервиса, чтобы soapClient знал, какие функции есть, и с какими параметрами вызывать.
что будет, если попробовать по-простому:
$client= new SoapClient('http://69.70.226.251/InfoBase1/ws/test_ws1.1cws?wsdl',
   array('login' => $username, 'password' => $password));

к тому же ерунда какая-то с кавычками у location.
+ читаем описание: If working in non-WSDL mode, the location and uri options must be set, where location is the URL to request and uri is the target namespace of the SOAP service.
37 SeraFim
 
28.07.11
02:51
+(36) ошибся, должно быть так:
что будет, если попробовать по-простому:

$client= new SoapClient('http://69.70.226.251/InfoBase1/ws/test_ws1.1cws?wsdl', array('login' => $username, 'password' => $password));
38 Fragster
 
гуру
28.07.11
08:38
(37)->(19)
39 Fragster
 
гуру
28.07.11
15:02
автор живой?
40 dzsysop
 
29.07.11
21:27
(37) ты не читал, это и было написано просто

просто ФОРУМ автоматом преобразовал ссылку в хрен знает что, я там написал сразу что в первом параметра и что во втором
41 dzsysop
 
29.07.11
21:28
итого, плюнул на посиск причин, перестал отлаживать локально,
перенес код на реальный хостинг и там работаю,

что случилось с локальным - не понял и плюнул
Закон Брукера: Даже маленькая практика стоит большой теории.