Вопрос к знатокам php

12 3
D
На сайте с 12.08.2007
Offline
52
1652

Достал скрипт для автоматической регистрации в почтовом сервисе Gmal. Только проблема - он не работает. Какая-то ошибка в самом скрипте. Ниже приведу код:

<?php  

/// w4rezarena.com
$password = "vv12345";
set_time_limit(300);

function generateCode($length=6) {
$chars = "abcdefghijklmnopqrstuvwxyz";
$code = "";
$clen = strlen($chars) - 1;
while (strlen($code) < $length) {
$code .= $chars[mt_rand(0,$clen)];
}
return $code;
}
function generateDigits($length=6) {
$chars = "0123456789";
$code = "";
$clen = strlen($chars) - 1;
while (strlen($code) < $length) {
$code .= $chars[mt_rand(0,$clen)];
}
return $code;
}


$proxies;
$proxiesFile = fopen("proxies.txt","r+");
while(!feof($proxiesFile)){
$proxy = fgets($proxiesFile,4096);
$delimPos = strpos($proxy, ":");
$ip = substr($proxy, 0, $delimPos);
$port = substr($proxy, $delimPos+1, strlen($proxy));
$proxies[]= array($ip,$port);
}

$lastURL="";
function getPageWithProxy($URL,$data,$referer,$badString,$proxyType='') {
global $lastURL;
global $proxies;
$proxyArrSize = count($proxies);

$cp = curl_init($URL);
$useragent="Mozilla/5.0 (Windows; U; Windows NT 5.0; us; rv:1.8.1.6) Gecko/20070725 Firefox/2.0.0.666";
curl_setopt($cp, CURLOPT_USERAGENT, $useragent);
curl_setopt($cp, CURLOPT_RETURNTRANSFER,1);
curl_setopt($cp, CURLOPT_CONNECTTIMEOUT,3);
curl_setopt($cp, CURLOPT_FOLLOWLOCATION,1);
curl_setopt($cp, CURLOPT_SSL_VERIFYPEER, false);
curl_setopt($cp, CURLOPT_SSL_VERIFYHOST, 2);
curl_setopt($cp, CURLOPT_VERBOSE, 1);

$cookieFilename = "cookies.txt";
if(substr(PHP_OS, 0, 3) == 'WIN' && strpos($cookieFilename,"/")===FALSE){
$cookieFilename = str_replace('\\','/', getcwd().'/'.$cookieFilename);
}


curl_setopt($cp, CURLOPT_COOKIEJAR, $cookieFilename);
curl_setopt($cp, CURLOPT_COOKIEFILE, $cookieFilename);

if($data!=""){
curl_setopt($cp, CURLOPT_POST, 1);
curl_setopt($cp, CURLOPT_POSTFIELDS,$data);
}
if($referer!=""){
curl_setopt($cp, CURLOPT_REFERER, $referer);
}
if($proxyType=="socks4"){
curl_setopt($cp,CURLOPT_PROXYTYPE,4);
}

$success = false;
for($i=0; $i<2*$proxyArrSize; $i++){
$num = rand(0,$proxyArrSize-1);
$ip = $proxies[$num][0];
$port = $proxies[$num][1];
curl_setopt($cp, CURLOPT_PROXY, "$ip".":"."$port");
$code = curl_exec($cp);
$lastURL = curl_getinfo($cp,CURLINFO_EFFECTIVE_URL);

if(curl_errno($cp)==0 && curl_getinfo($cp,CURLINFO_HTTP_CODE)==200){
$badPos = 0;
if($badString != ""){
$badPos = strpos($code, $badString);
}
if($badPos==0){
$success = true;
break;
}
}
}

curl_close($cp);
if ($success == true){
return $code;
}else{
return false;
}
}
if(!isset($_POST["go"])){
$code = getPageWithProxy("http://gmail.com","","","","socks4");
$code = getPageWithProxy("http://mail.google.com/mail/signup","",$lastURL,"","socks4");
$doc = new DOMDocument();
$doc->loadHTML($code);


function getInputByName($domDocument,$name){
$inputList = $domDocument->getElementsByTagName("input");
for($c=0; $c<$inputList->length; $c++){
$atts = $inputList->item($c)->attributes;
if($atts->getNamedItem("name")->nodeValue==$name){
return $atts->getNamedItem("value")->nodeValue;
break;
};
}
}


$captchaURL = getInputByName($doc,"newaccounturl");
$continue = getInputByName($doc,"continue");

$data = "continue=".urlencode($continue)."&";
$data = $data."service=mail&type=2&t=null&";
$data = $data."dsh=".getInputByName($doc,"dsh")."&";
$data = $data."edk=gmail.com&p=&";
$data = $data."Passwd=$password&PasswdAgain=$password&PersistentCookie=no&";
$data = $data."rmShown=1&smhhk=1&&smhck=1&nshk=1&selection=What+is+your+primary+frequent+flyer+number&";
$data = $data."ownquestion=&IdentityAnswer=".generateDigits(rand(2,3))."&SecondaryEmail=&hl=en&loc=US&";
$data = $data."newaccounttoken=".getInputByName($doc,"newaccounttoken")."&";
$data = $data."newaccounturl=".urlencode($captchaURL)."&";
$data = $data."newaccounttoken_audio=".getInputByName($doc,"newaccounttoken_audio")."&";
$data = $data."newaccounturl_audio=".urlencode(getInputByName($doc,"newaccounturl_audio"))."&";
$data = $data."program_policy_url=".urlencode(getInputByName($doc,"program_policy_url"))."&";
$data = $data."privacy_policy_url=".urlencode(getInputByName($doc,"privacy_policy_url"))."&";
$data = $data."requested_tos_location=US&requested_tos_language=en&";
$data = $data."served_tos_location=US&served_tos_language=en&";
$data = $data."submitbutton=".urlencode(getInputByName($doc,"submitbutton"));
?>
<html>
<head/>
<body>
<form method="post" action="gmreger.php">
<input type="hidden" name="continue" value="<?php echo $continue ?>" />
<input type="hidden" name="data" value="<?php echo $data ?>" />
<input type="hidden" name="lastURL" value="<?php echo $lastURL ?>" />
<table>
<tr>
<td>
Enter keyword:
</td>
<td>
<input name="keyword" value=""></input>
</td>
</tr>
<tr>
<td>
&nbsp;
</td>
<td>
<img alt="captcha" src="<?php echo $captchaURL ?>" />
</td>
</tr>
<tr>
<td>
Enter captcha:
</td>
<td>
<input name="captcha"></input>
</td>
</tr>
<tr>
<td>
&nbsp;
</td>
<td>
<input type="submit" name="go" width="150" value="go"/>
</td>
</tr>
</table>
</form>
</body>
</html>
<?php
}else{
$words = preg_split('/ /',$_POST["keyword"]);

$firstname = $words[0];
$lastname;
$login = substr($firstname,0,9);
if(count($words)>1){
$lastname = $words[1];
$login = $login . substr($lastname,0,4);
}else{
$lastname = $words[0];
$login = $login . substr($lastname,1,7);
}
$login = strtolower($login . generateCode(2).generateDigits(2));

$data = "FirstName=".$firstname."&LastName=".$lastname."&";
$data = $data."UsernameSelector=header&Email=".$login."&";
$data = $data."newaccountcaptcha=".$_POST["captcha"]."&";
$data = $data.$_POST["data"];

$regURL = "https://www.google.com/accounts/CreateAccount?service=mail&".urlencode($_POST["continue"])."&type=2";
echo getPageWithProxy($regURL,$data,$_POST["lastURL"],"","socks4");
}
?>

Warning: fgets(): supplied argument is not a valid stream resource - вот такую ошибку получаю.

Передача для любителей ретро игр! (http://emugamer.ru/)
HraKK
На сайте с 02.03.2009
Offline
128
#1

http://phpfaq.ru/debug Вам в помощь

я гарант (/ru/forum/493343) уже не оказываю данные услуги, извините.
ewg777
На сайте с 04.06.2007
Offline
225
#2

proxies.txt - содержит прокси?

Anton-webmaster
На сайте с 21.05.2009
Offline
7
#3
28 while(!feof($proxiesFile)){
29 $proxy = fgets($proxiesFile,4096);

Warning: feof(): supplied argument is not a valid stream resource in D:\AppServ\www_2\reg.php on line 28

Warning: fgets(): supplied argument is not a valid stream resource in D:\AppServ\www_2\reg.php on line 29

Ну файл с прокси нужен.

В какой строке ошибка у вас?

Anton-webmaster добавил 25.06.2009 в 17:09

Только скриптец далеко не автоматический... Ок?

В нём и в помине нет модуля распознания капчи.

Так что работать он и так не будет.

1 ГС (http://filmoboz.net/) + 1 блогун (http://blogun.ru/bossegahaf.html) да 30 минут хохмы = 15 баков в день. Жить стало лучше, жить стало веселее.
R
На сайте с 13.04.2009
Offline
160
#4

Навряд ли он актуален...

O3
На сайте с 17.11.2008
Offline
127
#5

fopen("proxies.txt","r+");

есть файл такой?

Anton-webmaster
На сайте с 21.05.2009
Offline
7
#6
Навряд ли он актуален...

Ну к нему можно прикрутить длл для распознания капчи.

R
На сайте с 13.04.2009
Offline
160
#7
Anton-webmaster:
Ну к нему можно прикрутить длл для распознания капчи.

Гугл сейчас палит автореггеры конкретно,и время считает на переход между страницами...

Тут этого нет

[Удален]
#8
Anton-webmaster:
Ну к нему можно прикрутить длл для распознания капчи.

а где такую длл взять не в курсе ли вы?)

ewg777
На сайте с 04.06.2007
Offline
225
#9
bearman:
а где такую длл взять не в курсе ли вы?)

Прямо DLL прикручивать к скрипту? 0_о

[Удален]
#10
ewg777:
Прямо DLL прикручивать к скрипту? 0_о

ну была бы длл, был бы разговор)))

12 3

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий