|
|
|
| Здравствуйте! Прошу помощи, прочитал у Вас здесь
http://www.softtime.ru/forum/read.php?id_forum=1&id_theme=8931
тему: Подделка реферера,
решил попробовать создать объект из изложенного скрипта, фрагмент следующий:
if(!$this->fp) echo"$errstr ($errno)<br />\n";
else
{
echo 'Открыли успешно адрес ->'.$this->host.$this->path;
$this->headers = "GET $path HTTP/1.0\r\n";
$this->headers .= "Host: $host\r\n";
$this->headers .= "Accept: *\r\n";
$this->headers .= "Accept-Charset: *\r\n";
$this->headers .= "Accept-Encoding: deflate\r\n";
$this->headers .= "Accept-Language: ru\r\n";
$this->headers .= "Referer: http://www.softtime.ru/forum/index.php\r\n";
$this->headers .= "User-Agent: Opera/8.01 (Windows NT 5.1; U; ru)\r\n\r\n";
fwrite($this->fp,$this->headers); // для записи строки в файл
while(($this->text)!= "\r\n") $this->text = fgets($this->fp,128);
$this->text = "";
while(!feof($this->fp)) $this->text .= fgets($this->fp,4096);
|
где-то здесь
$this->headers .= "Referer: http://www.softtime.ru/forum/index.php\r\n";
$this->headers .= "User-Agent: Opera/8.01 (Windows NT 5.1; U; ru)\r\n\r\n";
fwrite($this->fp,$this->headers);
while(($this->text)!= "\r\n") $this->text = fgets($this->fp,128);
$this->text = "";
|
ошибочка получается бесконечный цикл и через 30 сек выдает ошибочку Fatal error: Maximum execution time of 30 seconds подскажите что не так? | |
|
|
|
|
|
|
|
для: Чайка
(10.10.2007 в 16:17)
| | может,
while (!feof($this->fp)) $this->text .= fgets($this->fp, 128);
|
| |
|
|
|
|
|
|
|
для: bronenos
(10.10.2007 в 16:28)
| | Не пашет, привожу полный скрипт, подскажите начинающему
class open_links
{
var $host;
var $path;
var $fp;
var $headers;
var $text;
function open_l()
{
$this->host = "www.softtime.ru";
$this->path = "/forum/read.php?id_forum=1&id_theme=8931";
$this->fp = fsockopen($this->host,80,$this->errno,$this->errstr,30);
if(!$this->fp) echo"$errstr ($errno)<br />\n";
else
{
echo '<p>Открыли успешно адрес ->'.$this->host.$this->path.'</p>';
$this->headers = "GET $path HTTP/1.0\r\n";
$this->headers .= "Host: $host\r\n";
$this->headers .= "Accept: *\r\n";
$this->headers .= "Accept-Charset: *\r\n";
$this->headers .= "Accept-Encoding: deflate\r\n";
$this->headers .= "Accept-Language: ru\r\n";
$this->headers .= "Referer: http://www.softtime.ru/forum/index.php\r\n";
$this->headers .= "User-Agent: Opera/8.01 (Windows NT 5.1; U; ru)\r\n\r\n";
fwrite($this->fp,$this->headers); // для записи строки в файл
while(($this->text)!= "\r\n") $this->text = fgets($this->fp,128);
$this->text = "";
while(!feof($this->fp)) $this->text .= fgets($this->fp,4096);
echo('<li> Загрузили страницу : '.$this->host.$this->path.'</li>');
}
}
function print_l()
{
echo ($this->text);
}
function close_l()
{
fclose($this->fp); // закрыли страницу
}
}
//======================================================================================================================
$Open_links = new open_links();
$Open_links->open_l();
$Open_links->print_l();
$Open_links->close_l();
|
| |
|
|
|
|
|
|
|
для: Чайка
(10.10.2007 в 16:43)
| | Может я эту строку
while (!feof($this->fp)) $this->text .= fgets($this->fp, 128);
|
не туда вставлял? | |
|
|
|
|
|
|
|
для: Чайка
(10.10.2007 в 17:40)
| | Где добрый человек cheops, только он отзывчивый, и дает хорошие реальные советы :-) | |
|
|
|
|
|
|
|
для: Чайка
(10.10.2007 в 16:17)
| | А без Referer ошибки Fatal error: Maximum execution time of 30 seconds не происходит? | |
|
|
|
|
|
|
|
для: cheops
(11.10.2007 в 10:42)
| | без Referer тоже ошибка
Fatal error: Maximum execution time of 30 seconds exceeded in C:\WWW\scripts\primer\class_open_links.php on line 34
line 34 это
while(($this->text)!= "\r\n") $this->text = fgets($this->fp,128);
|
это же, но как не объект работает без ошибок
<?
$host = "www.softtime.ru";
$path = "/forum/read.php?id_forum=1&id_theme=8931";
$fp = fsockopen($host,80,$errno,$errstr,30);
if(!$fp) echo"$errstr ($errno)<br />\n";
else
{
echo '<p>Открыли успешно адрес ->'.$host.$path.'</p>';
$headers = "GET $path HTTP/1.0\r\n";
$headers .= "Host: $host\r\n";
$headers .= "Accept: *\r\n";
$headers .= "Accept-Charset: *\r\n";
$headers .= "Accept-Encoding: deflate\r\n";
$headers .= "Accept-Language: ru\r\n";
$headers .= "User-Agent: Opera/8.01 (Windows NT 5.1; U; ru)\r\n\r\n";
fwrite($fp,$headers);
while(($text)!= "\r\n") $text = fgets($fp,128);
$text = "";
while(!feof($fp)) $text .= fgets($fp,4096);
echo('<li> Загрузили страницу : '.$host.$path.'</li>');
}
//=======================================================================
echo ($text);
fclose($fp); // закрыли страницу
?>
|
что же блин не так? :-( | |
|
|
|
|
|
|
|
для: Чайка
(15.10.2007 в 02:16)
| | если не ошибаюсь фгетс не берет перевод строки и тут лучше на стрлен ориентироваться | |
|
|
|
|
|
|
|
для: bronenos
(15.10.2007 в 09:56)
| | А по русски, что такое фгетс и стрлен и как быть? | |
|
|
|
|
|
|
|
для: Чайка
(15.10.2007 в 17:42)
| |
while(strlen($this->text) > 0) $this->text = fgets($this->fp);
|
| |
|
|
|
|
|
|
|
для: bronenos
(15.10.2007 в 18:26)
| | так тоже ошибка
400 Bad Request | |
|
|
|
|
|
|
|
для: Чайка
(15.10.2007 в 19:13)
| | уберите из path параметры get и отошлите их как текст запроса после заголовков | |
|
|
|
|
|
|
|
для: Чайка
(15.10.2007 в 19:13)
| | а если сделать
$host = gethostbyname('www.softtime.ru');
? | |
|
|
|
|
|
|
|
для: EXP
(15.10.2007 в 23:37)
| | Так тоже ошибка. | |
|
|
|
|
|
|
|
для: Чайка
(16.10.2007 в 02:55)
| | Профи, где вы? Кто может дать дельный совет? | |
|
|
|
|
|
|
|
для: Чайка
(16.10.2007 в 12:23)
| | Откликнитесь, как быть? | |
|
|
|