Имеетя рабочий скрипт (по крайней мере при установке Apache и PHP под WIN) а вот под Linux выдает ошибку "error f1"
помогите разобраться, настройки мож не такие? вроде все посмотрел
КОД:
| Код | <?
require($HTTP_SERVER_VARS['DOCUMENT_ROOT']."/include/header.inc");
$user=$HTTP_POST_VARS['user']; $pass=$HTTP_POST_VARS['pass']; $send=$HTTP_POST_VARS['Send'];
$iduser=$HTTP_POST_VARS['iduser']; $username=$HTTP_POST_VARS['username']; $exchange=$HTTP_POST_VARS['exchange']; $rowid=$HTTP_POST_VARS['rowid']; $exchange=$HTTP_POST_VARS['exchange']; $mstart=$HTTP_POST_VARS['mstart']; $year=$HTTP_POST_VARS['year']; $start=$HTTP_POST_VARS['start']; $finish=$HTTP_POST_VARS['finish']; $range=$HTTP_POST_VARS['range']; $month=$HTTP_POST_VARS['month']; $full=$HTTP_POST_VARS['full']; echo "<br><br>"; $socket=null; function doconnect() { global $socket; $service_port = "80"; $address = "stat.tario.ru";
$socket = socket_create (AF_INET, SOCK_STREAM, 6); if ($socket < 0) { echo "socket() failed: reason: " . socket_strerror(socket_last_error()) . "<br>\n"; return -1; }
$result = socket_connect ($socket, $address, $service_port); if ($result < 0) { echo "connect() failed.\nReason: ($result) " . socket_strerror(socket_last_error()) . "<br>\n"; return -1; }
}
function doit($postcontent) { global $socket; doconnect();
$in = "POST http://stat.tario.ru/cgi-bin/login HTTP/1.1\r\n" ."Host: stat.tario.ru\r\n" ."Referer: http://stat.tario.ru/cgi-bin/login\r\n" ."User-Agent: Mozilla/5.0 (Windows; U; Windows NT 5.1; ru-RU; rv:1.7.5) Gecko/20041108 Firefox/1.0\r\n" ."Content-Type: application/x-www-form-urlencoded\r\n" ."Content-Length: ".strlen($postcontent) ."\r\n\r\n" .$postcontent; $out = ''; socket_write ($socket, $in, strlen ($in));
$totalout=""; /* while ($out=socket_read($socket, 20480)) { $totalout.=$out; } */ $totalout=socket_read($socket, 20480); socket_close ($socket); return $totalout; } //------------------------------------------------------------------------------------------------------------------- if (isset($send)) { $content="user=".urlencode($user) ."&pass=".urlencode($pass) ."&Send=Send"; $totalout=doit($content);
if (strpos($totalout, "name=\"Send\"")>0) { ?> <form method="post" action="checkaccount.php" enctype="application/x-www-form-urlencoded"> <p> Если вы являетесь нашим абонентом вам достаточно ввести свой лицевой счет и пин код и получить информацию об использовании уcлуги предоставляемой нашей компанией.</p> <table border="0" cellspacing="2" cellpadding="2" align="center"> <tr> <td><p>Введите лицевой счет:</p></td> <td> <input type="text" name="user" maxlength="40"> </td> </tr> <tr> <td><p>Введите код персонального доступа:</p></td> <td> <input type="password" name="pass" maxlength="16"> </td> </tr> <tr> <td align="center" colspan="2"> <input type="submit" name="Send" value="ок"> </td> </tr> </table> </form> <? } else if(strpos($totalout, "name=\"range\"")>0) { $find1='<form method="post" action="http://stat.tario.ru/cgi-bin/login" enctype="application/x-www-form-urlencoded">'; echo "<br>";
$pos1 = strpos($totalout, $find1)+strlen($find1); $pos2 = strpos($totalout, "</form>");
if (($pos1===false)||($pos2===false)||($pos1>$pos2)) { echo "error1"; } else { echo "<form method=\"post\" action=\"checkaccount.php\" enctype=\"application/x-www-form-urlencoded\">"; echo "<table bgcolor=\"#ffffff\" border=\"0\" cellspacing=\"0\" cellpadding=\"0\" align=\"center\">"; echo substr($totalout, $pos1, $pos2-$pos1); echo "</table>"; echo "</form>"; } } else { echo "error f1"; } } //------------------------------------------------------------------------------------------------------------------- elseif (isset($iduser)) { $postcontent="iduser=".urlencode($iduser) ."&username=".urlencode($username) ."&exchange=".urlencode($exchange) ."&rowid=".urlencode($rowid) ."&mstart=".urlencode($mstart) ."&year=".urlencode($year) ."&start=".urlencode($start) ."&finish=".urlencode($finish); if (isset($range))$postcontent.="&range=".urlencode($range); if (isset($month))$postcontent.="&month=".urlencode($month); if (isset($full)) $postcontent.="&full=".urlencode($full);
// $totalout=doit($content); doconnect();
$in = "POST http://stat.tario.ru/cgi-bin/login HTTP/1.1\r\n" ."Host: stat.tario.ru\r\n" ."Referer: http://stat.tario.ru/cgi-bin/login\r\n" ."User-Agent: Mozilla/5.0 (Windows; U; Windows NT 5.1; ru-RU; rv:1.7.5) Gecko/20041108 Firefox/1.0\r\n" ."Content-Type: application/x-www-form-urlencoded\r\n" ."Content-Length: ".strlen($postcontent) ."\r\n\r\n" .$postcontent; $out = ''; socket_write ($socket, $in, strlen ($in));
echo "<font color=\"#FF0000\" size=\"-4\">"; $fl1=false; $fl2=false; $fl3=false; $fl4=false; // $fl5=false; $i=1;
while ($out=socket_read($socket, 2048)) { if (!$fl1) { $pos1 = strpos($out, "<tab"); if ($pos1!==false) { $fl1=true; $out=substr($out,$pos1); // $out= strtr($out, "table", "table border=\"1\""); // $out= str_replace("table", "table border=\"1\"", $out); } }
if (($fl1)&&(!$fl3)) { $find="cellpadding=\"0\""; $rep="cellpadding=\"2\""; $pos3=strpos($out, $find); if ($pos3!==false) { $fl3=true; $out= str_replace($find, $rep, $out); // $out= strtr($out, $find, $rep); } } if (($fl1)&&(!$fl4)) { $find="cellspacing=\"0\""; $rep="cellspacing=\"4\""; $pos4=strpos($out, $find); if ($pos4!==false) { $fl4=true; $out= str_replace($find, $rep, $out); // $out= strtr($out, $find, $rep); } } if ($fl1) { $pos2 = strpos($out, "</tab"); if ($pos2!==false) { $fl2=true; $out=substr($out,0,$pos2+8); } echo $out; } if ($fl2) { break; } $i++; }
echo "</font>"; socket_close ($socket);
} //------------------------------------------------------------------------------------------------------------------- else { ?> <form method="post" action="checkaccount.php" enctype="application/x-www-form-urlencoded"> <p> Если вы являетесь нашим абонентом вам достаточно ввести свой лицевой счет и пин код и получить информацию об использовании уcлуги предоставляемой нашей компанией.</p>
<table border="0" cellspacing="2" cellpadding="2" align="center"> <tr> <td><p>Введите лицевой счет:</p></td> <td> <input type="text" name="user" maxlength="40"> </td> </tr> <tr> <td><p>Введите код персонального доступа:</p></td> <td> <input type="password" name="pass" maxlength="16"> </td> </tr> <tr> <td align="center" colspan="2"> <input type="submit" name="Send" value="ок"> </td> </tr> </table> </form> <? }
require($HTTP_SERVER_VARS['DOCUMENT_ROOT']."/include/footer.inc");?>
|
|