Проблем с код за автоматично гласуване в bgtop

kriss

Registered
Проблема е, че като се отвори един път и повече не може да се гласува. Тоест не може да се гласува от името на всеки посетител
PHP:
<?php
$bgtopid = 123456; //nqkvo id ot bgtop
//STAHP
$post_data['site'] = $bgtopid;
$post_data['stat'] = 'gate';
$url = 'http://bgtop.net/vote/'.$bgtopid;
$ip = getenv("REMOTE_ADDR");
$options = array(
	CURLOPT_USERAGENT	   => "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1)",
	CURLOPT_HTTPHEADER	   => array("REMOTE_ADDR: $ip", "HTTP_X_FORWARDED_FOR: $ip"),
	CURLOPT_RETURNTRANSFER => true,
	CURLOPT_HEADER         => false,
	CURLOPT_FOLLOWLOCATION => true,
	CURLOPT_ENCODING       => "",
	CURLOPT_AUTOREFERER    => true,
	CURLOPT_CONNECTTIMEOUT => 120,
	CURLOPT_TIMEOUT        => 120,
	CURLOPT_MAXREDIRS      => 10,
);
$ch      = curl_init( $url );
curl_setopt_array( $ch, $options );
$content = curl_exec( $ch );
$err     = curl_errno( $ch );
$errmsg  = curl_error( $ch );
$header  = curl_getinfo( $ch );
curl_close( $ch );
$html = $content;
$cuthtml = explode('<form name="vote" action="vote/'.$bgtopid.'" method="post">',$html);
$cuthtml = explode('</form>',$cuthtml[1]);
$forms = $cuthtml[0];
preg_match_all('#<input type="hidden" name="(.*)" value="(.*)" />#',$forms,$result);
$result = $result[2];
$post_data['secret'] = $result[0];
$post_data['refid'] = $result[2];
echo'<pre>';
print_r($post_data);
echo'</pre>';
foreach ( $post_data as $key => $value) {
    $post_items[] = $key . '=' . $value;
}
$post_string = implode ('&', $post_items);
$curl_connection = curl_init('http://bgtop.net/vote/'.$bgtopid);
curl_setopt($curl_connection, CURLOPT_CONNECTTIMEOUT, 30);
curl_setopt($curl_connection, CURLOPT_HTTPHEADER, array("REMOTE_ADDR: $ip", "HTTP_X_FORWARDED_FOR: $ip"));
curl_setopt($curl_connection, CURLOPT_USERAGENT, "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1)");
curl_setopt($curl_connection, CURLOPT_RETURNTRANSFER, true);
curl_setopt($curl_connection, CURLOPT_SSL_VERIFYPEER, false);
curl_setopt($curl_connection, CURLOPT_FOLLOWLOCATION, 1);
curl_setopt($curl_connection, CURLOPT_HEADER, false);
curl_setopt($curl_connection, CURLOPT_ENCODING, "");
curl_setopt($curl_connection, CURLOPT_CONNECTTIMEOUT, 120);
curl_setopt($curl_connection, CURLOPT_TIMEOUT, 120);
curl_setopt($curl_connection, CURLOPT_MAXREDIRS, 10);
curl_setopt($curl_connection, CURLOPT_POSTFIELDS, $post_string);
$result = curl_exec($curl_connection);
$cinfo = curl_getinfo($curl_connection);
curl_close($curl_connection);
$result = preg_replace('#http://bgtop.net/category/(.*)/s(.*)#','$2',$cinfo['url']);
echo$cinfo['url'].'<br />';
switch($result){
	case 1: echo 'Вотът е отчетен'; break;
	case 2: echo 'Днес вече сте гласували. Вашият вот не е отчетен.'; break;
	case 3: echo 'Временно е забранено гласуването от Вашата мрежа.'; break;
	case 4: echo 'Сесията Ви е изтекла. Вашият вот не е отчетен.'; break;
	case 5: echo 'Моля, включете \'Cookies\' на Вашия браузър.'; break;
}
?>
:idea:
 
Аз бих ти го предложил в html формат а ето го и кода за лентата
PHP:
<a href="Тук линка за гласуване в bgtop" onClick="show()" target="_blank"><div id="lenta" style="width: 100%; height: 25px; position: absolute; top: 0px; left: 0px; z-index: 100; background-color: #fefed2; border: 1px solid #c58d51; border-top:none; text-align: center; font-size: 14px; display: block;"><font style="padding-top: 1px; color: #000;">Гласувай за нас в  BGTop веднъж на всеки 24 часа. Благодарим ви !!!</font></div></a>
 
целта на кода е съвсем друга. Целта му е потребителя като посети даден сайт само с отварянето му да гласува автоматично за сайта без дори да разбере.
 
kriss каза:
целта на кода е съвсем друга. Целта му е потребителя като посети даден сайт само с отварянето му да гласува автоматично за сайта без дори да разбере.

Няма как. Скрипта гласува от IP адреса на самия сървър. Пробвах преди време нещо подобно, но не се получи..
 
Styl3rbg каза:
kriss каза:
целта на кода е съвсем друга. Целта му е потребителя като посети даден сайт само с отварянето му да гласува автоматично за сайта без дори да разбере.

Няма как. Скрипта гласува от IP адреса на самия сървър. Пробвах преди време нещо подобно, но не се получи..
Затова съм сложил HTTPHEADER ?
 
преди можеше .
сега има допълнителна форма :

Код:
<form name="vote" action="vote/123456" method="post">
	<input type="hidden" name="secret" value="263265464" />
	<input type="hidden" name="site" value="1321732814" />
	<input type="hidden" name="refid" value="54657603" />
	<input type="hidden" name="stat" value="gate" />
	<input type="submit" value="Гласувам за ...." class="button" style="display:inline;" />
</form>

е това поле secret е различно и най вероятно се вкарва във проверката ..
 
vasilev каза:
преди можеше .
сега има допълнителна форма :

Код:
<form name="vote" action="vote/123456" method="post">
	<input type="hidden" name="secret" value="263265464" />
	<input type="hidden" name="site" value="1321732814" />
	<input type="hidden" name="refid" value="54657603" />
	<input type="hidden" name="stat" value="gate" />
	<input type="submit" value="Гласувам за ...." class="button" style="display:inline;" />
</form>

е това поле secret е различно и най вероятно се вкарва във проверката ..

И в кода на колегата ако това е embed кода може да се направи при влизане без да разбере да гласува... Само слагаш следното в jquery кода на сайта:
HTML:
$(function() {
$('body').find('form .button').submit();

// или ...
$('body').find('form .button').click();

});

Нещо такова мисля, че ще стане
 

Back
Горе