Добро пожаловать, Гость!
Ещё один вопрос
Помощь мастерам | Ещё один вопрос
khujand :
Найдите ошибки на этом скрипте: после регистрации пишет
Пишет::
"=== Ошибка при получении WMID ==="
<?php
2 include_once $_SERVER['DOCUMENT_ROOT'].'/sys/inc/home.php';
3 include_once H.'sys/inc/start.php';
4 include_once H.'sys/inc/compress.php';
5 include_once H.'sys/inc/sess.php';
6 include_once H.'sys/inc/settings.php';
7 include_once H.'sys/inc/db_connect.php';
8 include_once H.'sys/inc/ipua.php';
9 include_once H.'sys/inc/fnc.php';
10 include_once H.'sys/inc/user.php';
11 $set['title']='WMID';
12 title();
13 include_once H.'sys/inc/thead.php';
14 $urlid="мой урл"; // УКАЖИТЕ URLID, СООТВЕТСТВУЮЩИЙ ВАШЕМУ URL
15 $mywmid="мой вмид"; // УКАЖИТЕ ВАШ WMID, ЗАРЕГИСТРИРОВАННЫЙ В LOGIN.WEBMONEY
16 $CertPath="http://мой сайт/WMunited.cer"; // УКАЖИТЕ ПУТЬ К КОРНЕВОМУ СЕРТИФИКАТУ LOGIN.WEBMONEY НА ВАШЕМ СЕРВЕРЕ
17
18 IF(!$_POST['WmLogin_WMID']) {
19 echo "Вы не авторизованы!<br>";
20 echo '<a href="https://login.wmtransfer.com/GateKeeper.aspx?RID='.$urlid.'&lang=ru-RU">авторизоваться</a>';
21 } ELSE {
22 $testticket=preg_match('/^[a-zA-Z0-9$!/]{32,48}$/i', $_POST['WmLogin_Ticket']);
23 if($_POST['WmLogin_UrlID']==$urlid && $testticket==1) {
24 echo "=== Тикет получен успешно === <br>";
25 // Формируем запрос для проверки тикета
26 $xml="
27 <request>
28 <siteHolder>$mywmid</siteHolder>
29 <user>".$_POST['WmLogin_WMID']."</user>
30 <ticket>".$_POST['WmLogin_Ticket']."</ticket>
31 <urlId>".$urlid."</urlId>
32 <authType>".$_POST['WmLogin_AuthType']."</authType>
33 <userAddress>".$_POST['WmLogin_UserAddress']."</userAddress>
34 </request>
35 ";
36 // Отправляем запрос и получаем ответ
37 $resxml=_GetAnswer($xml);
38 // Разбираем XML-ответ
39 $xmlres = simplexml_load_string($resxml);
40 if(!$xmlres) echo "Не получен XML-ответ";
41 $result=strval($xmlres->attributes()->retval);
42 // Если результат не равен 0 - прерываем и выдаем ошибку
43 if($result!=0) echo "Тикет ошибочный ";
44 else {
45
46 echo'<a href="https://advisor.wmtransfer.com/Spasibo.aspx"><div class="btn-vk" align="center">Тикет верный и Вы успешно авторизовались<br>Ваш WMID:<font color=#ff0000> "'.$_POST['WmLogin_WMID'].'"</font><br><b>Вы можете поддержать наш сайт материально, хотя бы один раз на сумму <font color=#ff0000>1 wmr</font>. Для этого нажмите кнопку <img src="/spasibo.jpg" width="60" height="15" alt="0"/></b></div></a>';
47 mysql_query("UPDATE `user` SET `wmid` = '.$_POST[WmLogin_WMID].' WHERE `id` = '$user[id]' LIMIT 1");
48 mysql_query("INSERT INTO `billing_operations` (`id_user`, `op`, `time`) VALUES ('".$user['id']."','wmid', '".$time."')");
49 $msg = 'Здравствуйте .']'.$user['nick'].'! Вы успешно подтвердили свой WMID.
Ваш WMID: '.$_POST[WmLogin_WMID].'
Приятного общения ';
50 mysql_query("INSERT INTO `mail` (`id_user`, `id_kont`, `msg`, `time`) VALUES ('0', '$user[id]', '$msg', '$time')");
51
52 // Выполняем необходимые действия, например, авторизуем пользователя, начинаем сессию и т.д.
53 // ...
54 }
55 } else echo "=== Ошибка при получении WMID ===";
56 }
57
58 // Функция передает XML-запрос на сервер Login.WebMoney и получает от него ответ
59 function _GetAnswer($xml){
60 global $CertPath;
61 // Инициализируем сеанс CURL
62 $ch = curl_init("https://login.wmtransfer.com/ws/authorize.xiface");
63 // В выводе CURL http-заголовки не нужны
64 curl_setopt($ch, CURLOPT_HEADER, 0);
65 // Возвращать результат, а не выводить его в браузер
66 curl_setopt($ch, CURLOPT_RETURNTRANSFER,1);
67 // Метод http-запроса - POST
68 curl_setopt($ch, CURLOPT_POST,1);
69 // Что передаем?
70 curl_setopt($ch, CURLOPT_POSTFIELDS, $xml);
71 // Задаем корневой сертификат для проверки
72 curl_setopt($ch, CURLOPT_CAINFO, $CertPath);
73 curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, TRUE);
74 // Выполняем запрос, ответ помещаем в переменную $result;
75 $result=curl_exec($ch);
76 if(curl_errno($ch)) echo "Curl Error number = ".curl_errno($ch).", Error desc = ".curl_error($ch)."<br>";
77 curl_close($ch);
78 return $result;
79 }
80 include_once H.'sys/inc/tfoot.php';
Ещё один вопрос
30 Янв 2016Найдите ошибки на этом скрипте: после регистрации пишет
Пишет::
"=== Ошибка при получении WMID ==="
<?php
2 include_once $_SERVER['DOCUMENT_ROOT'].'/sys/inc/home.php';
3 include_once H.'sys/inc/start.php';
4 include_once H.'sys/inc/compress.php';
5 include_once H.'sys/inc/sess.php';
6 include_once H.'sys/inc/settings.php';
7 include_once H.'sys/inc/db_connect.php';
8 include_once H.'sys/inc/ipua.php';
9 include_once H.'sys/inc/fnc.php';
10 include_once H.'sys/inc/user.php';
11 $set['title']='WMID';
12 title();
13 include_once H.'sys/inc/thead.php';
14 $urlid="мой урл"; // УКАЖИТЕ URLID, СООТВЕТСТВУЮЩИЙ ВАШЕМУ URL
15 $mywmid="мой вмид"; // УКАЖИТЕ ВАШ WMID, ЗАРЕГИСТРИРОВАННЫЙ В LOGIN.WEBMONEY
16 $CertPath="http://мой сайт/WMunited.cer"; // УКАЖИТЕ ПУТЬ К КОРНЕВОМУ СЕРТИФИКАТУ LOGIN.WEBMONEY НА ВАШЕМ СЕРВЕРЕ
17
18 IF(!$_POST['WmLogin_WMID']) {
19 echo "Вы не авторизованы!<br>";
20 echo '<a href="https://login.wmtransfer.com/GateKeeper.aspx?RID='.$urlid.'&lang=ru-RU">авторизоваться</a>';
21 } ELSE {
22 $testticket=preg_match('/^[a-zA-Z0-9$!/]{32,48}$/i', $_POST['WmLogin_Ticket']);
23 if($_POST['WmLogin_UrlID']==$urlid && $testticket==1) {
24 echo "=== Тикет получен успешно === <br>";
25 // Формируем запрос для проверки тикета
26 $xml="
27 <request>
28 <siteHolder>$mywmid</siteHolder>
29 <user>".$_POST['WmLogin_WMID']."</user>
30 <ticket>".$_POST['WmLogin_Ticket']."</ticket>
31 <urlId>".$urlid."</urlId>
32 <authType>".$_POST['WmLogin_AuthType']."</authType>
33 <userAddress>".$_POST['WmLogin_UserAddress']."</userAddress>
34 </request>
35 ";
36 // Отправляем запрос и получаем ответ
37 $resxml=_GetAnswer($xml);
38 // Разбираем XML-ответ
39 $xmlres = simplexml_load_string($resxml);
40 if(!$xmlres) echo "Не получен XML-ответ";
41 $result=strval($xmlres->attributes()->retval);
42 // Если результат не равен 0 - прерываем и выдаем ошибку
43 if($result!=0) echo "Тикет ошибочный ";
44 else {
45
46 echo'<a href="https://advisor.wmtransfer.com/Spasibo.aspx"><div class="btn-vk" align="center">Тикет верный и Вы успешно авторизовались<br>Ваш WMID:<font color=#ff0000> "'.$_POST['WmLogin_WMID'].'"</font><br><b>Вы можете поддержать наш сайт материально, хотя бы один раз на сумму <font color=#ff0000>1 wmr</font>. Для этого нажмите кнопку <img src="/spasibo.jpg" width="60" height="15" alt="0"/></b></div></a>';
47 mysql_query("UPDATE `user` SET `wmid` = '.$_POST[WmLogin_WMID].' WHERE `id` = '$user[id]' LIMIT 1");
48 mysql_query("INSERT INTO `billing_operations` (`id_user`, `op`, `time`) VALUES ('".$user['id']."','wmid', '".$time."')");
49 $msg = 'Здравствуйте .']'.$user['nick'].'! Вы успешно подтвердили свой WMID.
Ваш WMID: '.$_POST[WmLogin_WMID].'
Приятного общения ';
50 mysql_query("INSERT INTO `mail` (`id_user`, `id_kont`, `msg`, `time`) VALUES ('0', '$user[id]', '$msg', '$time')");
51
52 // Выполняем необходимые действия, например, авторизуем пользователя, начинаем сессию и т.д.
53 // ...
54 }
55 } else echo "=== Ошибка при получении WMID ===";
56 }
57
58 // Функция передает XML-запрос на сервер Login.WebMoney и получает от него ответ
59 function _GetAnswer($xml){
60 global $CertPath;
61 // Инициализируем сеанс CURL
62 $ch = curl_init("https://login.wmtransfer.com/ws/authorize.xiface");
63 // В выводе CURL http-заголовки не нужны
64 curl_setopt($ch, CURLOPT_HEADER, 0);
65 // Возвращать результат, а не выводить его в браузер
66 curl_setopt($ch, CURLOPT_RETURNTRANSFER,1);
67 // Метод http-запроса - POST
68 curl_setopt($ch, CURLOPT_POST,1);
69 // Что передаем?
70 curl_setopt($ch, CURLOPT_POSTFIELDS, $xml);
71 // Задаем корневой сертификат для проверки
72 curl_setopt($ch, CURLOPT_CAINFO, $CertPath);
73 curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, TRUE);
74 // Выполняем запрос, ответ помещаем в переменную $result;
75 $result=curl_exec($ch);
76 if(curl_errno($ch)) echo "Curl Error number = ".curl_errno($ch).", Error desc = ".curl_error($ch)."<br>";
77 curl_close($ch);
78 return $result;
79 }
80 include_once H.'sys/inc/tfoot.php';
Комментарии:
Нет сообщений в теме