Универсального нет.
Такие вещи пишутся под конкретную систему, т.к. такой скрипт связан напрямую с таблицей пользователей, а у разных систем структура таблицы и название полей зачастую разное.
Ну почему же не имеет. Вполне даже имеет. От перебора можно защищаться например, при не правильных вводах пароля подставлять рекаптчу. Конечно и каптча не панацея, но если пароль сложный, то такой перебор уже обойдется в копеечку и вряд ли вообще удастся.
Ну например при помощи регулярки получать урл, а дальше редирект.
Попробуй не на прямую через ссылку отдавать файл, а например через пост запрос, т.е. примерно так
<?php if(isset($_POST['submit'])){
Header('Location: адрес_файла');
exit;
} ?>
<form action="url страницы" method="post">
<button type="submit" name="submit">Скачать</button>
</form>
+ можно еще дополнительно куки проверять (У ботов они зачастую отключены) и если выключены, то не показывать форму или ссылку на скачивание
---
Но это все не факт, что поможет :)
А хостер разве Вам не может сказать с какой страницы идет рассылка? Спросите у него, объяснив всю ситуацию. Я думаю он Вам сообщит где это файл находится.
у меня систер и ее подружки в контакт заходит набирая в браузере vk.com и заходят они только в вечернее время:)
я думаю что у вас та же ситуация. народ просто набирает нужный адрес в серче не используя закладки
Если мне память не изменяет, то для правильной передачи url в FB надо мета-теги Open Graph прописывать, иначе ссылки иногда не правильно обрабатывается
<html xmlns="http://www.w3.org/1999/xhtml" xmlns:fb="http://ogp.me/ns/fb#" xmlns:og="http://ogp.me/ns#">
<meta property="og:title" content="Заголовок статьи или новости"/>
<meta property="og:type" content="article"/>
<meta property="og:url" content="url страницы"/>
<meta property="og:image" content="img.png"/>
<meta property="og:site_name" content="site.ru"/>
<meta property="fb:app_id" content="app_id для Facebook" />
<meta property="og:description" content="Короткое описание для анонса ссылки."/>
Возможно у Вас их нет
Редиректит на сайт с обновлением Flash Player
Если брать по порядку, то надо считать количество строк для возврата к началу и запоминать ключ массива в сессию, что в принципе немного увеличит размер функции.
Вот пример:
public function check($url)
{
$proxy = file('proxy.dat');
$count = count($proxy);
if(empty($_SESSION['proxy'])) //Если первый раз запустили скрипт, начинаем с первой строки
$_SESSION['proxy'] = 0;
if($_SESSION['proxy'] >= $count) //Если достигли конца списка, переходим в начало
$ch = curl_init("тут url откуда парсим");
curl_setopt($ch, CURLOPT_HEADER, 0);
curl_setopt($ch, CURLOPT_RETURNTRANSFER,1);
curl_setopt($ch, CURLOPT_PROXYTYPE, CURLPROXY_HTTP);
curl_setopt($ch, CURLOPT_PROXY, $proxy[$_SESSION['proxy']]);
$result = curl_exec($ch);
if(curl_errno($ch) != 0)
die("curl_errno(".curl_errno($ch)."), curl_error(".curl_error($ch).")");
curl_close($ch);
$_SESSION['proxy']++;
return substr($result, 9);
}
Пожалуйста