
Velichko Anton
 
Профиль
Группа: Участник
Сообщений: 851
Регистрация: 28.4.2005
Где: Санкт-Петербург
Репутация: 1 Всего: 18
|
Такая проблема, надо подключаться к IIS серверу, на нём стоит сервис... Мне надо к нему подключистся выполнить некоторые действия и тп... Когда я подключаюсь с локального сервера всё работает, как только я посылаю тоже самое с сервера в интернете, мне возвр ошибка HTTP 400. Какие есть соображения почему это может происходить? Может какие-то настройки PHP? вот полный код. Это модуль к моей системе. | Код | <?php class asp_service { var $curr_tag = ''; var $curr_attr = ''; var $FileUID = ''; var $returnArr = ''; function asp_service() { return $this; } function asp_send_and_get_request($xml) { $xml = iconv("CP1251","UTF-8", $xml); $xml = 'Cmd='.$xml; $host = 'XXX.XXX.XXX.XXX'; $Request = 'POST /xls/xls.aspx HTTP/1.0 Host: '.$host.' Content-Type: application/x-www-form-urlencoded Content-Length: '.(strlen($xml)+3)." ".$xml; echo $Request; $remote = fsockopen($host, 80); fwrite($remote, $Request); $Response = ''; while (!feof($remote)) { $Response .= fread($remote, 1024); } fclose($remote); echo $Response; $Response = iconv("UTF-8","CP1251",$Response); return $this->get_xml($Response); } function open_file($file) { $request = '<XLSExchange><Request><Command name="fileOpen" fileName="'.$file.'"/></Request></XLSExchange>'; $this->asp_send_and_get_request($request); return $this->FileUID; } function Close() { $request = '<XLSExchange><Request><Command name="close"/></Request></XLSExchange>'; $this->asp_send_and_get_request($request); return true; } function get_value($UID, $SELL_array ) { $sub_request = ''; $request = '<Request><Command name="getValue" fileUID="'.$UID.'">'; foreach ($SELL_array as $key=>$value) { $sub_request .= '<Cell adress="'.$key.'" type="'.$value.'"/>'; } $request .= $sub_request.'</Command></Request>'; return $this->asp_send_and_get_request($request); } function set_value($UID, $SELL_array) { $sub_request = ''; $request = '<Request><Command name="setValue" fileUID="'.$UID.'">'; foreach ($SELL_array as $value) { $sub_request .= '<Cell adress="'.$value['name'].'" type="'.$value['type'].'" value="'.$value['value'].'" />'; } $request .= $sub_request.'</Command></Request>'; return $this->asp_send_and_get_request($request); } function run_macro($UID, $macro_name) { $request = '<Request><Command name="runMacro" fileUID="'.$UID.'" macroName="'.$macro_name.'" /></Request>'; return $this->asp_send_and_get_request($request); } function get_xml($str) { $this->returnArr = ''; $start = strpos($str, '<'); $end = strrpos($str, '>'); $pr = xml_parser_create(); xml_set_element_handler($pr, array(&$this, "_start_tag"), array(&$this, "_end_tag")); xml_parse($pr,substr($str,$start,$end - $start + 1)); return $this->returnArr; } //+++++++++++++++++++===========================++++++++++++++++++++ function _start_tag($parser,$name,$attribs) { $this->curr_tag = $name; $this->curr_attr = $attribs; switch($name) { case 'RESPONSE': break; case 'FILE': while(list($key,$value) = each($attribs)) { if($key == 'FILEUID') $this->FileUID = $value; } break; case 'CELL': while(list($key,$value) = each($attribs)) { if($key == 'ADRESS') $adress = $value; if($key == 'VALUE') { if(strpos($adress,'!')) $adress = substr($adress,strpos($adress,'!')+1); if($value != '') $this->returnArr[$adress] = $value; } } break; } } function _end_tag($parser,$name) { $this->curr_tag = ''; $this->curr_attr = ''; } function getInterval($file_UID,$str) { $str = str_replace("$",'',$str); $str = substr($str,1); $arr = explode(':',$str); $buk = substr($str,0,1); $arr[0] = substr($arr[0],1); $arr[1] = substr($arr[1],1); $zapr = array(); for($i = (int)$arr[0];$i <= (int)$arr[1];$i++) { $zapr["'ТЗ-калькулятор'!".$buk.$i] = "string"; } return $this->get_value($file_UID,$zapr); } function number2href($str) { $tmp = substr($str,1); $tmp1 = substr($str,0,1); return '=$'.$tmp1.'$'.$tmp; } }
class digit_calc { var $asp = ''; var $fileUID = ''; var $PaperType = ''; var $JS = ''; var $colored = ''; var $afterPrint = ''; var $laminacia = ''; var $pruj = ''; var $prujSize = ''; function digit_calc() { if($_SESSION['USER']['LOGIN'] == true && (in_array('ALL',$_SESSION['USER']['privileges']['VIEW']) || in_array('digit_calc',$_SESSION['USER']['privileges']['VIEW']) || in_array('digit_calc',$_SESSION['USER']['privileges']['EDIT']))) { $time = microtime(); $this->asp = new asp_service(); if(isset($_COOKIE['file_UID'])) $this->file_UID = $_COOKIE['file_UID']; else { $this->file_UID = $this->asp->open_file('заказ-цифра.xls'); echo $this->fileUID; setcookie("file_UID", $this->file_UID); } if(isset($_POST['width'],$_POST['height'],$_POST['paperType'],$_POST['paperName'],$_POST['colored'],$_POST['tiraj'])) $this->calculate(); else { $this->prepare(); $this->Templ(); } $time = microtime() - $time; echo '<!-- '.$time.' -->'; } else { header("Location: ".$_SESSION['conf']['SITEADDR']); } } function prepare() { $this->asp->set_value($this->file_UID, array(array("name"=>"'Скрытый'!B1","type"=>"string","value"=>'\'\'ТЗ-калькулятор\'!B8'))); $type_of_paper = $this->asp->get_value($this->file_UID, array("'Скрытый'!C1"=>"srting")); $type_of_paper = $this->asp->getInterval($this->file_UID,$type_of_paper['C1']); foreach($type_of_paper as $val=>$__tmp) { $this->asp->set_value($this->file_UID, array(array("name"=>"B8","type"=>"string","value"=>'='.$val))); $this->asp->set_value($this->file_UID, array(array("name"=>"'Скрытый'!B1","type"=>"string","value"=>'\'\'ТЗ-калькулятор\'!B9'))); $_tmp_ = $this->asp->get_value($this->file_UID, array("'Скрытый'!C1"=>"srting")); $list[$val] = $this->asp->getInterval($this->file_UID,$_tmp_['C1']); $list[$val]['name'] = $__tmp; $this->PaperType[$val] = $__tmp; } $this->asp->set_value($this->file_UID, array(array("name"=>"'Скрытый'!B1","type"=>"string","value"=>'\'\'ТЗ-калькулятор\'!F9'))); $TMP = $this->asp->get_value($this->file_UID, array("'Скрытый'!C1"=>"srting")); $this->colored = $this->asp->getInterval($this->file_UID,$TMP['C1']); $this->asp->set_value($this->file_UID, array(array("name"=>"'Скрытый'!B1","type"=>"string","value"=>'\'\'ТЗ-калькулятор\'!A12'))); $TMP = $this->asp->get_value($this->file_UID, array("'Скрытый'!C1"=>"srting")); $this->afterPrint = $this->asp->getInterval($this->file_UID,$TMP['C1']); $JS = "<script language=\"javaScript\" >\nvar LIST = new Object;\n"; foreach($list as $key=>$value) { $JS .= "var OBJ = new Object;\n"; foreach($value as $selectValue=>$selectName) { $JS .= "OBJ['" . $selectValue . "'] = '".$selectName."';\n"; } $JS .= "LIST['".$key."'] = OBJ;\n"; } $JS .= "var LST = new Object();\n"; foreach($this->afterPrint as $val=>$key) { $this->asp->set_value($this->file_UID, array(array("name"=>"A12","type"=>"string","value"=>'='.$val))); $_tmp_ = $this->asp->get_value($this->file_UID, array("D12"=>"srting")); $JS .= "LST['$val'] = '{$_tmp_['D12']}';\n"; } $JS .= "LST['def'] = '----';\n"; $JS .= "function setInter() {\n"; $JS .= " var element = document.getElementById(\"nameOfPaper\");\n"; $JS .= " var self = document.getElementById(\"typeOfPaper\");\n"; $JS .= " element.innerHTML = \"\";\n"; $JS .= " for(obj in LIST)"; $JS .= " if(obj == self.options[self.selectedIndex].value)\n"; $JS .= " for(val in LIST[obj])\n"; $JS .= " if(val != 'name' && val != 'Пробный материал')\n"; $JS .= " element.options.add(new Option(LIST[obj][val], val, false, false));\n"; $JS .= "}\n"; $JS .= "if(typeof(Node)!=\"undefined\" && typeof(Node.prototype) != \"undefined\" && typeof(Node.prototype.__defineGetter__) == \"function\") { Node.prototype.__defineGetter__(\"innerText\", function() {\n"; $JS .= " var ret = \"\";\n"; $JS .= " for(var i=0; i<this.childNodes.length; i++) {\n"; $JS .= " switch(this.childNodes[i].nodeType) {\n"; $JS .= " case 1: ret+=this.childNodes[i].innerText; break;\n"; $JS .= " case 3: ret+=this.childNodes[i].nodeValue; break;\n"; $JS .= " }\n"; $JS .= " } return ret;\n"; $JS .= " });\n"; $JS .= " Node.prototype.__defineSetter__(\"innerText\", function(val)\n"; $JS .= " {\n"; $JS .= " this.innerHTML=\"\";\n"; $JS .= " this.appendChild(document.createTextNode(val));\n"; $JS .= " });\n"; $JS .= "}\n"; $JS .= "function setProbe(element, n) {\n"; $JS .= " var self = document.getElementById(\"forWhat\" + n);\n"; $JS .= " for(obj in LST)"; $JS .= " if(obj == element.options[element.selectedIndex].value)\n"; $JS .= " self.innerText = LST[obj];\n"; $JS .= "}\n"; $JS .= "</script>\n"; $this->JS = $JS; $this->asp->set_value($this->file_UID, array(array("name"=>"'Скрытый'!B1","type"=>"string","value"=>'\'\'ТЗ-калькулятор\'!A18'))); $TMP = $this->asp->get_value($this->file_UID, array("'Скрытый'!C1"=>"srting")); $this->laminacia = $this->asp->getInterval($this->file_UID,$TMP['C1']); $this->asp->set_value($this->file_UID, array(array("name"=>"'Скрытый'!B1","type"=>"string","value"=>'\'\'ТЗ-калькулятор\'!C20'))); $TMP = $this->asp->get_value($this->file_UID, array("'Скрытый'!C1"=>"srting")); $this->prujSize = $this->asp->getInterval($this->file_UID,$TMP['C1']); $this->asp->set_value($this->file_UID, array(array("name"=>"'Скрытый'!B1","type"=>"string","value"=>'\'\'ТЗ-калькулятор\'!A20'))); $TMP = $this->asp->get_value($this->file_UID, array("'Скрытый'!C1"=>"srting")); $this->pruj = $this->asp->getInterval($this->file_UID,$TMP['C1']); } function Templ() { $GLOBALS['lib']['TEMPLATE']->loadTemplatefile('digit_calc/index.tpl', true, true); foreach($this->PaperType as $key=>$val) { if($val == 'Пробный материал') break; $GLOBALS['lib']['TEMPLATE']->setCurrentBlock("paperType"); $GLOBALS['lib']['TEMPLATE']->setVariable('optionVal',$key); $GLOBALS['lib']['TEMPLATE']->setVariable('text',$val); $GLOBALS['lib']['TEMPLATE']->parseCurrentBlock("paperType"); } foreach($this->laminacia as $key=>$val) { $GLOBALS['lib']['TEMPLATE']->setCurrentBlock("laminacia"); $GLOBALS['lib']['TEMPLATE']->setVariable('optionVal',$key); $GLOBALS['lib']['TEMPLATE']->setVariable('text',$val); $GLOBALS['lib']['TEMPLATE']->parseCurrentBlock("laminacia"); } foreach($this->colored as $key=>$val) { $GLOBALS['lib']['TEMPLATE']->setCurrentBlock("colored"); $GLOBALS['lib']['TEMPLATE']->setVariable('optionVal',$val);//$key); $GLOBALS['lib']['TEMPLATE']->setVariable('text',$val); $GLOBALS['lib']['TEMPLATE']->parseCurrentBlock("colored"); } foreach($this->pruj as $key=>$val) { $GLOBALS['lib']['TEMPLATE']->setCurrentBlock("prujina"); $GLOBALS['lib']['TEMPLATE']->setVariable('optionVal',$key); $GLOBALS['lib']['TEMPLATE']->setVariable('text',$val); $GLOBALS['lib']['TEMPLATE']->parseCurrentBlock("prujina"); } foreach($this->prujSize as $key=>$val) { $GLOBALS['lib']['TEMPLATE']->setCurrentBlock("prujinaSize"); $GLOBALS['lib']['TEMPLATE']->setVariable('optionVal',$key); $GLOBALS['lib']['TEMPLATE']->setVariable('text',$val); $GLOBALS['lib']['TEMPLATE']->parseCurrentBlock("prujinaSize"); } for($i = 1; $i < 6; $i++) foreach($this->afterPrint as $key=>$val) { $GLOBALS['lib']['TEMPLATE']->setCurrentBlock("operation".$i); $GLOBALS['lib']['TEMPLATE']->setVariable('optionVal',$key); $GLOBALS['lib']['TEMPLATE']->setVariable('text',$val); $GLOBALS['lib']['TEMPLATE']->parseCurrentBlock("operation".$i); } $links = 'Управление макетами<br>'; $links .= '<blockquote><a href="?mod=file_manager">Мои папки</a><br>'; if(in_array('ALL',$_SESSION['USER']['privileges']['EDIT'])) { $links .= '<a href="?mod=file_manager&action=profile">Личная информация</a><br>'; $links .= '<a href="?mod=file_manager&action=addprofile">Добавить пользователя</a><br>'; $links .= '<a href="?mod=file_manager&action=users">Пользователи и квоты</a><br>'; } $links .= '</blockquote>'; $links .= 'Расчёт стоимости печати<br />'; $links .= '<blockquote><a href="?mod=digit_calc">Цифровой калькулятор</a><br>'; $links .= '</blockquote>'; $GLOBALS['lib']['TEMPLATE']->setCurrentBlock("page"); $GLOBALS['lib']['TEMPLATE']->setVariable('script', $this->JS); $GLOBALS['lib']['TEMPLATE']->setVariable('links', $links); $GLOBALS['lib']['TEMPLATE']->parseCurrentBlock("page"); echo $GLOBALS['lib']['TEMPLATE']->get(); } function calculate() { if(isset($_POST['width'],$_POST['height'],$_POST['paperType'],$_POST['paperName'],$_POST['colored'],$_POST['tiraj'])) { $this->asp->set_value($this->file_UID, array(array("name"=>"B8","type"=>"string","value"=>$this->asp->number2href($_POST['paperType'])))); $this->asp->set_value($this->file_UID, array(array("name"=>"B9","type"=>"string","value"=>$this->asp->number2href($_POST['paperName'])))); $this->asp->set_value($this->file_UID, array(array("name"=>"D7","type"=>"string","value"=>$_POST['width']))); $this->asp->set_value($this->file_UID, array(array("name"=>"E7","type"=>"string","value"=>$_POST['height']))); $this->asp->set_value($this->file_UID, array(array("name"=>"F7","type"=>"string","value"=>$_POST['tiraj']))); $this->asp->set_value($this->file_UID, array(array("name"=>"F9","type"=>"number","value"=>$_POST['colored']))); if(isset($_POST['operation']['first']['value'], $_POST['operation']['first']['number']) && $_POST['operation']['first']['value'] != 'def') { $this->asp->set_value($this->file_UID, array(array("name"=>"A12","type"=>"string","value"=>$this->asp->number2href($_POST['operation']['first']['value'])))); $this->asp->set_value($this->file_UID, array(array("name"=>"E12","type"=>"string","value"=>$_POST['operation']['first']['number']))); } if(isset($_POST['operation']['second']['value'], $_POST['operation']['second']['number']) && $_POST['operation']['second']['value'] != 'def') { $this->asp->set_value($this->file_UID, array(array("name"=>"A13","type"=>"string","value"=>$this->asp->number2href($_POST['operation']['second']['value'])))); $this->asp->set_value($this->file_UID, array(array("name"=>"E13","type"=>"string","value"=>$_POST['operation']['second']['number']))); } if(isset($_POST['operation']['third']['value'], $_POST['operation']['third']['number']) && $_POST['operation']['third']['value'] != 'def') { $this->asp->set_value($this->file_UID, array(array("name"=>"A14","type"=>"string","value"=>$this->asp->number2href($_POST['operation']['third']['value'])))); $this->asp->set_value($this->file_UID, array(array("name"=>"E14","type"=>"string","value"=>$_POST['operation']['third']['number']))); } if(isset($_POST['operation']['forth']['value'], $_POST['operation']['forth']['number']) && $_POST['operation']['forth']['value'] != 'def') { $this->asp->set_value($this->file_UID, array(array("name"=>"A15","type"=>"string","value"=>$this->asp->number2href($_POST['operation']['forth']['value'])))); $this->asp->set_value($this->file_UID, array(array("name"=>"E15","type"=>"string","value"=>$_POST['operation']['forth']['number']))); } if(isset($_POST['operation']['fith']['value'], $_POST['operation']['fith']['number']) && $_POST['operation']['fith']['value'] != 'def') { $this->asp->set_value($this->file_UID, array(array("name"=>"A16","type"=>"string","value"=>$this->asp->number2href($_POST['operation']['fith']['value'])))); $this->asp->set_value($this->file_UID, array(array("name"=>"E16","type"=>"string","value"=>$_POST['operation']['fith']['number']))); } if(isset($_POST['blocks2'])) $this->asp->set_value($this->file_UID, array(array("name"=>"F10","type"=>"number","value"=>$_POST['blocks2']))); if(isset($_POST['laminacia'])) $this->asp->set_value($this->file_UID, array(array("name"=>"A18","type"=>"string","value"=>$this->asp->number2href($_POST['laminacia'])))); if(isset($_POST['prujina'])) $this->asp->set_value($this->file_UID, array(array("name"=>"A20","type"=>"string","value"=>$this->asp->number2href($_POST['prujina'])))); if(isset($_POST['prujinaSize'])) $this->asp->set_value($this->file_UID, array(array("name"=>"C20","type"=>"string","value"=>$this->asp->number2href($_POST['prujinaSize'])))); $this->asp->set_value($this->file_UID, array(array("name"=>"E2","type"=>"string","value"=>'3 колонка'))); $pay = $this->asp->get_value($this->file_UID, array("F27"=>"string")); $A22 = $this->asp->get_value($this->file_UID, array("A22"=>"string")); $A25 = $this->asp->get_value($this->file_UID, array("A25"=>"string")); $GLOBALS['lib']['TEMPLATE']->loadTemplatefile('digit_calc/out.tpl', true, true); $GLOBALS['lib']['TEMPLATE']->setCurrentBlock("main"); $GLOBALS['lib']['TEMPLATE']->setVariable('text1', $A22['A22']); $GLOBALS['lib']['TEMPLATE']->setVariable('text2', $A25['A25']); $GLOBALS['lib']['TEMPLATE']->setVariable('price', $pay['F27']); $GLOBALS['lib']['TEMPLATE']->parseCurrentBlock("main"); echo $GLOBALS['lib']['TEMPLATE']->get(); } } } ?>
|
[s]
--------------------
ГЫ...
|