Просмотр полной версии : помогите с Curlом
подскажите почему не передается referer
вот кусок кода
<?
set_time_limit(0);
ob_implicit_flush();
$refs=explode("\n",trim($aref));
$uref=trim($host);
$gurl=trim($refs);
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $gurl);
curl_setopt($ch, CURLOPT_HEADER,0);
curl_setopt($ch, CURLOPT_NOBODY,0);
curl_setopt($ch,CURLOPT_TIMEOUT,6);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_REFERER, $uref);
curl_setopt($ch, CURLOPT_USERAGENT,"Mozilla/4.0 (compatible; MSIE 5.01; Windows NT 5.0)");
$file_content=curl_exec ($ch);
curl_close ($ch);
?>
переменные передаются скрипту через формы методом POST,
ошибок не выдает, но в TOP REFERERS не приходит.
подскажите в чем проблема :confused:
GreenBear
21.06.2007, 00:44
ну попробуй $_POST['host']
не помогает
пробовал . что-то куда-то типа отсылает, но в ресурсе не видно, хотя через minibrowser все отсылается, значит сайт принимает подобные данные...
(для тренировки пользую _http://slotvent.com/guestbook/
в нем длинный TOP и можно отслеживать поступление данных :D ),и если бы CURL был отключен на хосте - я полагаю выдавалась бы ошибка... :confused:
вот скрипт
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<html>
<head>
<title></title>
<META HTTP-EQUIV="Content-Type" CONTENT="text/html; CHARSET=Windows-1251">
<META content="text/html; charset=windows-1251" http-equiv=Content-Type>
</head>
<body>
<?
if (empty($aref))
{
$aref="";
}
if (empty($prox))
{
$prox="";
}
if (empty($aref)||empty($_POST['host']))
{
echo "<CENTER>
<h1>URL</h1>
<form action='index.php' method='post' name='logg'>
<table>
<tr>
<br>
<input type='text' name='host' size=60><br><br>
<td valign='top'><strong>Ссылки </strong>
<textarea cols=150 rows=10 name=aref>$aref</textarea>
</td>
</tr>
<tr>
<td ><input type='submit' name='qqqqq' value='отправить'></td>
</tr>
</table>
</form>
</CENTER>
";
exit;
}
?>
<?
set_time_limit(0);
ob_implicit_flush();
$refs=explode("\n",trim($aref));
$ZZI=0;
WHILE ( (count($refs)>$ZZI) && ($ZZI<50) )
{
echo trim($refs[$ZZI])." ok <br>";
ob_flush();
$uref=trim($_POST['host']);
$gurl=trim($refs[$ZZI]);
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $gurl);
curl_setopt($ch, CURLOPT_HEADER,0);
curl_setopt($ch, CURLOPT_NOBODY,0);
curl_setopt($ch,CURLOPT_TIMEOUT,6);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_REFERER, $uref);
curl_setopt($ch, CURLOPT_USERAGENT,"Mozilla/4.0 (compatible; MSIE 5.01; Windows NT 5.0)");
$file_content=curl_exec ($ch);
curl_close ($ch);
sleep(1);
$ZZI=$ZZI+1;
}
echo "<CENTER>
<h1>URL</h1>
<form action='index.php' method='post' name='logg'>
<table>
<tr>
<br>
<input type='text' name='host' size=60><br><br>
<td valign='top'><strong>Ссылки </strong>
<textarea cols=150 rows=10 name=aref>$aref</textarea>
</td>
</tr>
<tr>
<td ><input type='submit' name='qqqqq' value='отправить'></td>
</tr>
</table>
</form>
</CENTER>
";
?>
</body>
</html>
<?php
set_time_limit(0);
ob_implicit_flush();
# $refs=explode("\n",trim($aref));
# $uref=trim($host);
# $gurl=trim($refs);
$uref = "http://referer.com/";
$gurl = "http://host.com/";
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $gurl);
curl_setopt($ch, CURLOPT_HEADER,0);
curl_setopt($ch, CURLOPT_NOBODY,0);
curl_setopt($ch,CURLOPT_TIMEOUT,6);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_REFERER, $uref);
curl_setopt($ch, CURLOPT_USERAGENT,"Mozilla/4.0 (compatible; MSIE 5.01; Windows NT 5.0)");
$file_content=curl_exec ($ch);
curl_close ($ch);
?>
Такой код прекрасно передает реферер. Так что ищи ошибку в своей форме, и в том, как она что передает. Там все так сумбурно, что я не понял, для чего она. И имена переменных странные.
Но несколько советов -
1) Почитай про register_globals (http://www.phpfaq.ru/globals), про основы работы с формами (http://php.novgorod.ru/manual/ru/tutorial.forms.php) и это (http://www.phpfaq.ru/debug).
2) Сделай себе страничку <?php echo $_SERVER['HTTP_REFERER']; ?> и отлаживай скрипт ей, выводя на экран содержимое странички запроса.
не пойму что странного в именах переменных, а передаются они вполне нормально,
только все равно не работает. может проблема с хостингом?
хостинг _hut.ru
вот более понятный код,
может я всетаки что-то пропустил
<?
if (empty($prox))
{
$prox="1.11.11.11:39";
}
if (empty($_POST['aref'])||empty($_POST['ddor']))
{
exit;
}
set_time_limit(0);
ob_implicit_flush();
$refs=explode("\n",trim($_POST['aref']));
$ZZI=0;
WHILE ( (count($refs)>$ZZI) && ($ZZI<50) )
{
echo trim($refs[$ZZI])." ok <br>";
ob_flush();
$uref=trim($_POST['ddor']);
$gurl=trim($refs[$ZZI]);
# print($uref)." ok <br>";
# print($gurl)." ok <br>";
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $gurl);
curl_setopt($ch, CURLOPT_PROXY, $prox);
curl_setopt($ch, CURLOPT_HEADER,0);
curl_setopt($ch, CURLOPT_NOBODY,0);
curl_setopt($ch, CURLOPT_TIMEOUT,6);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 0);
curl_setopt($ch, CURLOPT_REFERER, $uref);
curl_setopt($ch, CURLOPT_USERAGENT,"Mozilla/4.0 (compatible; MSIE 5.01; Windows NT 5.0)");
$file_content=curl_exec ($ch);
curl_close ($ch);
sleep(1);
$ZZI=$ZZI+1;
}
?>
или лучше подскажите хост с поддержкой CURL
желательно бесплатный ну или за пару баксов в месяц
тема закрыта. поменял хостинг и все в елочку
всем спасибо
vBulletin® v3.8.14, Copyright ©2000-2026, vBulletin Solutions, Inc. Перевод: zCarot