1. Ищем в mysql есть ли ник который в переменной.
а) Если есть, переходим к следующему.
б) Если нету l отправляем сообщение, добавляем в базу и переходим к следующему.
2. Структура БД:
название бд success, имеет 2 поля: id, nick.
3. Curl работает на отлично.
4. Есть txt файл с никами (построчно).
Проблема: Надо брать из txt 1 строку и вносить в переменную, после обработки толкать следующую строку в переменную.
<?php
include 'bd.php';
$file = "text.txt";
$nick = 'Freeman2012';
$url = "http://forum.kriminala.net/privmsg.php";
$text = 'username=$nick&subject=Testmessag&folder=inbox&mode=post&antispam=NruIqQQVVo5%2Bg95 JEQGF&post=%CE%F2%EF%F0%E0%E2%E8%F2%FC';
$search = ('SELECT * FROM nick WHERE MATCH success AGAINST ($nick)', $db);
$results
if ($search = ....... =`(
$ch = curl_init();
curl_setopt($ch, CURLOPT_COOKIEFILE, 'cookie.txt');
curl_setopt($ch, CURLOPT_URL,$url);
curl_setopt($ch, CURLOPT_FAILONERROR, 1);
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1);
curl_setopt($ch, CURLOPT_RETURNTRANSFER,1);
curl_setopt($ch, CURLOPT_TIMEOUT, 3);
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, $text);
$result = curl_exec($ch);
curl_close($ch); e
echo $result;
mysql_query("INSERT INTO
success (nick)
VALUES ('$nick')",$db);
mysql_close($db);
?>
Спустя 14 минут, 39 секунд (8.01.2012 - 00:33) Renden написал(а):
а я не понял в чем вопрос то, у тя есть массив $file в котором 1=> первая строчка, 2=> вторая строчка и тп, перебрать форечем и все..
ЗЫ вплане $file = file('text.txt');
ЗЫ вплане $file = file('text.txt');
Спустя 4 минуты, 15 секунд (8.01.2012 - 00:38) Frost-56 написал(а):
$file = file('text.txt');
ага, тут и есть сама проблема.
1. файл должен будет запускаться кроном.
2. не знаю как сделать грамотный массив.
ага, тут и есть сама проблема.
1. файл должен будет запускаться кроном.
2. не знаю как сделать грамотный массив.
Спустя 1 минута, 26 секунд (8.01.2012 - 00:39) Renden написал(а):
Frost-56
Ну так функция file сама делает массив..
Ну так функция file сама делает массив..
Цитата |
файл должен будет запускаться кроном. |
А разница?
Спустя 4 минуты, 27 секунд (8.01.2012 - 00:44) Frost-56 написал(а):
Не знаю, запустится ли курл под кроном.
Про file читал и насколько понял это заносить в while.
да и как расписать ситуацию, надо делать что то типа ?:
$file = file('text.txt');
$file++;
чтобы прибавить строку в случае если она найдена в бд ?
Про file читал и насколько понял это заносить в while.
да и как расписать ситуацию, надо делать что то типа ?:
$file = file('text.txt');
$file++;
чтобы прибавить строку в случае если она найдена в бд ?
Спустя 21 минута, 9 секунд (8.01.2012 - 01:05) Renden написал(а):
Frost-56
Ну по идее.
Ну по идее.
$file = file('text.txt');
foreach($file as $val)
{
//Я не совсем точно понял что тебе нужно, но предположим так?
$query = mysql_query("SELECT * FROM `success` WHERE `nick` = '$val'");
if(mysql_num_rows($query))
{
echo 'Такой уже есть иду дальше..';
}
else
{
echo 'Такого нет, добавляю в бд';
mysql_query("INSERT INTO `success` SET `nick` = '$val'");
}
}
Спустя 20 минут, 50 секунд (8.01.2012 - 01:26) Frost-56 написал(а):
буду разбираться, пробовать, спасибо =)
Спустя 1 час, 52 минуты, 42 секунды (8.01.2012 - 03:18) Invis1ble написал(а):
Цитата |
Не знаю, запустится ли курл под кроном. |
а почему бы и нет? запустится конечно.
Цитата |
Про file читал и насколько понял это заносить в while. |
видимо читал по диагонали. Самая обыкновенная ф-ция, возвращает массив.
заносить надо туда, куда надо заносить. Ваш КЭП

ПС. Прочитав название топика подумал, что сейчас увижу простыню г-кода на несколько килострок

Спустя 12 минут, 28 секунд (8.01.2012 - 03:31) Frost-56 написал(а):
Спасибо КЭП куда же без тебя
По теме: можно примерчик с коментами как у винстона ?

По теме: можно примерчик с коментами как у винстона ?

Спустя 7 минут, 46 секунд (8.01.2012 - 03:38) Invis1ble написал(а):
Примерчик чего конкретно?
Спустя 1 день, 12 часов, 8 минут, 4 секунды (9.01.2012 - 15:47) Frost-56 написал(а):
Как сделать так чтобы когда выбирался 1ник, скрипт ждал 30 секунд и переходил к следующему нику ?
(надо чтобы перед каждым ником 30 секунд было ожидание)
И ещё, в скрипте у меня есть строка:
$text = 'username=$nick&subject=%D3%F1%EB%F3%E3%E8&addbbcodefontcolor=%23444444&addbbcodefontsize=12' ;;
Как мне в переменную $nick вставлялся этот ник.
(надо чтобы перед каждым ником 30 секунд было ожидание)
И ещё, в скрипте у меня есть строка:
$text = 'username=$nick&subject=%D3%F1%EB%F3%E3%E8&addbbcodefontcolor=%23444444&addbbcodefontsize=12' ;;
Как мне в переменную $nick вставлялся этот ник.
Спустя 54 минуты, 11 секунд (9.01.2012 - 16:41) Frost-56 написал(а):
кто нибудь поможет ? =(
Спустя 6 часов, 37 минут, 21 секунда (9.01.2012 - 23:18) Frost-56 написал(а):
помогите уже =(
Спустя 14 минут, 2 секунды (9.01.2012 - 23:32) killer8080 написал(а):
Frost-56
какова конечная цель всего этого? Получить список всех зареганых юзеров на том форуме? Или что?
какова конечная цель всего этого? Получить список всех зареганых юзеров на том форуме? Или что?
Спустя 8 минут, 2 секунды (9.01.2012 - 23:40) Frost-56 написал(а):
Полный код:
Смысл в том что мускул проверяет, есть ли ник в бд, если нету, то отправляем сообщение с задержкой 30 секунд и добавляем в mysql если отправилось, а если нет то пропускаем и без задержки и переходим к след. нику.
Ещё тут проблема: строка username=$val не отправляется потому что $val не заменяется переменой которую выставил я, а отправляемся в input как $val :P
<?php
include 'bd.php';
$file = file('text2.txt');
foreach($file as $val)
{
$query = mysql_query("SELECT * FROM `success` WHERE `nick` = '$val'");
if(mysql_num_rows($query))
{
echo 'Такой уже есть иду дальше..';
}
else
{
$url = "http://forum.kriminala.net/privmsg.php";
$ch = curl_init();
curl_setopt($ch, CURLOPT_COOKIEFILE, 'cookie.txt');
curl_setopt($ch, CURLOPT_URL,$url);
curl_setopt($ch, CURLOPT_FAILONERROR, 1);
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1);
curl_setopt($ch, CURLOPT_RETURNTRANSFER,1);
curl_setopt($ch, CURLOPT_TIMEOUT, 3);
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, 'username=$val&subject=%D3%F1%EB%F3%E3%E8');
$result = curl_exec($ch);
curl_close($ch);
mysql_query("INSERT INTO `success` SET `nick` = '$val'");
}
}
?>
Смысл в том что мускул проверяет, есть ли ник в бд, если нету, то отправляем сообщение с задержкой 30 секунд и добавляем в mysql если отправилось, а если нет то пропускаем и без задержки и переходим к след. нику.
Ещё тут проблема: строка username=$val не отправляется потому что $val не заменяется переменой которую выставил я, а отправляемся в input как $val :P
Спустя 16 минут, 52 секунды (9.01.2012 - 23:57) killer8080 написал(а):
Frost-56
то есть нужно вычеслить юзеров которые есть в Бд но нет в файле? Это можно было сделать так
то есть нужно вычеслить юзеров которые есть в Бд но нет в файле? Это можно было сделать так
$query = mysql_query("
SELECT *
FROM `success`
WHERE `nick` NOT IN ('".implode("','", file('file.txt'))."')
");
while($row = mysql_fetch_assoc($query)){
sleep(30); // задержка 30 секунд
.... // здесь твой курл запрос
}
Спустя 6 минут, 2 секунды (10.01.2012 - 00:03) Frost-56 написал(а):
<?php
include 'bd.php';
$file = file('text2.txt');
foreach($file as $val)
{
$query = mysql_query("
SELECT *
FROM `success`
WHERE `nick` NOT IN ('".implode("','", file('text2.txt'))."')");
while($row = mysql_fetch_assoc($query))
{
sleep(30);
$url = "http://forum.kriminala.net/privmsg.php";
$ch = curl_init();
curl_setopt($ch, CURLOPT_COOKIEFILE, 'cookie.txt');
curl_setopt($ch, CURLOPT_URL,$url);
curl_setopt($ch, CURLOPT_FAILONERROR, 1);
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1);
curl_setopt($ch, CURLOPT_RETURNTRANSFER,1);
curl_setopt($ch, CURLOPT_TIMEOUT, 3);
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, 'username=$val&subject=%D3%F1%EB%F3%E3%E8');
$result = curl_exec($ch);
curl_close($ch);
mysql_query("INSERT INTO `success` SET `nick` = '$val'");
}
else
{
echo 'Иди булок поешь, есть же уже такой';
}
}
?>
Правильно ?
! |
Семён |
Спустя 51 минута, 24 секунды (10.01.2012 - 00:54) killer8080 написал(а):
Цитата (Frost-56 @ 9.01.2012 - 23:03) |
Правильно ? |
нет
я же показал код. Тебе не нужен никакой foreach, в этом варианте сразу берешь из базы только те ники, которых нет в файле.
Спустя 16 часов, 1 минута, 49 секунд (10.01.2012 - 16:56) Frost-56 написал(а):
Скрипт почему то не работает =(
<?php
include 'bd.php';
$file = file('text2.txt');
$query = mysql_query("
SELECT *
FROM `success`
WHERE `nick` NOT IN ('".implode("','", file('text2.txt'))."')");
while($row = mysql_fetch_assoc($query))
{
sleep(30);
$url = "http://forum.kriminala.net/privmsg.php";
$ch = curl_init();
curl_setopt($ch, CURLOPT_COOKIEFILE, 'cookie.txt');
curl_setopt($ch, CURLOPT_URL,$url);
curl_setopt($ch, CURLOPT_FAILONERROR, 1);
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1);
curl_setopt($ch, CURLOPT_RETURNTRANSFER,1);
curl_setopt($ch, CURLOPT_TIMEOUT, 3);
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, 'username=$val&subject=%D3%F1%EB%F3%E3%E8');
$result = curl_exec($ch);
curl_close($ch);
echo($result);
mysql_query("INSERT INTO `success` SET `nick` = '$val'");
}
?>
Спустя 5 минут, 49 секунд (10.01.2012 - 17:02) killer8080 написал(а):
Frost-56
во первых выкинь
во первых выкинь
Цитата (Frost-56 @ 10.01.2012 - 15:56) |
$file = file('text2.txt'); |
зачем дважды читать файл?
Во вторых там возможно нужна авторизация на сайте.
Спустя 18 часов, 8 минут, 31 секунда (11.01.2012 - 11:11) Frost-56 написал(а):
Все равно не работает =(
<?php
include 'bd.php';
$query = mysql_query("
SELECT *
FROM `success`
WHERE `nick` NOT IN ('".implode("','", file('text2.txt'))."')");
while($row = mysql_fetch_assoc($query))
{
sleep(30);
$url = "http://forum.kriminala.net/privmsg.php";
$ch = curl_init();
curl_setopt($ch, CURLOPT_COOKIEFILE, 'cookie.txt');
curl_setopt($ch, CURLOPT_URL,$url);
curl_setopt($ch, CURLOPT_FAILONERROR, 1);
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1);
curl_setopt($ch, CURLOPT_RETURNTRANSFER,1);
curl_setopt($ch, CURLOPT_TIMEOUT, 3);
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, 'username=$val&subject=%D3%F1%EB%F3%E3%E8');
$result = curl_exec($ch);
curl_close($ch);
echo($result);
mysql_query("INSERT INTO `success` SET `nick` = '$val'");
}
?>
Спустя 2 часа, 2 минуты, 14 секунд (11.01.2012 - 13:13) Frost-56 написал(а):
никто не знает ?
ошибок нету просто белый экран
ошибок нету просто белый экран
Спустя 6 минут, 5 секунд (11.01.2012 - 13:19) Winston написал(а):
Цитата (Frost-56 @ 11.01.2012 - 12:13) |
ошибок нету просто белый экран |
Подозрительно...
Попробуй так написать
Свернутый текст
<?
include 'bd.php';
$query = mysql_query("
SELECT *
FROM `success`
WHERE `nick` NOT IN ('".implode("','", file('text2.txt'))."')") or die(mysql_error());
$url = "http://forum.kriminala.net/privmsg.php";
$ch = curl_init();
while($row = mysql_fetch_assoc($query))
{
sleep(30);
curl_setopt($ch, CURLOPT_URL,$url);
curl_setopt($ch, CURLOPT_COOKIEJAR, 'cookie.txt');
curl_setopt($ch, CURLOPT_COOKIEFILE, 'cookie.txt');
curl_setopt($ch, CURLOPT_FAILONERROR, 1);
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1);
curl_setopt($ch, CURLOPT_RETURNTRANSFER,1);
curl_setopt($ch, CURLOPT_TIMEOUT, 3);
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, "username={$val}&subject=" . urlencode('текст'));
$result = curl_exec($ch);
echo curl_error($ch) . '<br/>';
echo $result;
mysql_query("INSERT INTO `success` SET `nick` = '{$val}'") or die(mysql_error());
}
curl_close($ch);
?>
Спустя 23 минуты, 36 секунд (11.01.2012 - 13:42) Frost-56 написал(а):
Ничего не изменилось =(
Спустя 11 минут, 43 секунды (11.01.2012 - 13:54) Winston написал(а):
Цитата (Frost-56 @ 11.01.2012 - 12:13) |
ошибок нету просто белый экран |
А индикатор загрузки страницы во вкладке стоит или крутиться? То есть страница полностью загружена, или грузится продолжительное время?
Спустя 41 секунда (11.01.2012 - 13:55) Frost-56 написал(а):
секунды 3 грузится и все, типа загружена
Спустя 1 минута, 13 секунд (11.01.2012 - 13:56) Winston написал(а):
sleep не пробовал убирать?
Спустя 45 секунд Winston написал(а):
И попробуй поставить CURLOPT_RETURNTRANSFER, 0
Спустя 2 минуты, 41 секунда Winston написал(а):
Откуда берется $val? если ты написал $row = mysql_fetch_assoc($query) ???
Спустя 45 секунд Winston написал(а):
И попробуй поставить CURLOPT_RETURNTRANSFER, 0
Спустя 2 минуты, 41 секунда Winston написал(а):
Откуда берется $val? если ты написал $row = mysql_fetch_assoc($query) ???
Спустя 4 минуты, 31 секунда (11.01.2012 - 14:01) Invis1ble написал(а):
первым делом в начало скрипта
и будет счастье
Спустя 2 минуты, 30 секунд Invis1ble написал(а):
и нахрена sleep(30) стоИт? ты б еще sleep(100500) поставил и ждал
Спустя 4 минуты, 37 секунд Invis1ble написал(а):
и судя по privmsg.php в url авторизация таки нужна.
и да, спам - это плохо
error_reporting(E_ALL);
ini_set('display_errors', 'On');
и будет счастье
Спустя 2 минуты, 30 секунд Invis1ble написал(а):
и нахрена sleep(30) стоИт? ты б еще sleep(100500) поставил и ждал
Спустя 4 минуты, 37 секунд Invis1ble написал(а):
и судя по privmsg.php в url авторизация таки нужна.
и да, спам - это плохо
Спустя 8 минут, 58 секунд (11.01.2012 - 14:10) Frost-56 написал(а):
У меня в htaccess прописано
php_value display_errors 1
php_value display_startup_errors 1
думал будет достаточно
php_value display_errors 1
php_value display_startup_errors 1
думал будет достаточно
Цитата |
и нахрена sleep(30) стоИт? ты б еще sleep(100500) поставил и ждал |
стоит анти-флуд 30 секунд, вот и надо слип30.
Цитата |
и судя по privmsg.php в url авторизация таки нужна. |
авторизация есть, он берет из cookie, уже проверял отдельным ником.
Спустя 3 минуты, 9 секунд (11.01.2012 - 14:13) Winston написал(а):
Цитата (Frost-56 @ 11.01.2012 - 13:10) |
авторизация есть, он берет из cookie, уже проверял отдельным ником. |
Если вручную прописать ник, то авторизация успешна?
Еще раз повторюсь
Цитата (Winston @ 11.01.2012 - 12:56) |
Откуда берется $val? если ты написал $row = mysql_fetch_assoc($query) ??? |
curl_setopt($ch, CURLOPT_POSTFIELDS, "username={$val}&subject=" . urlencode('текст'));
???
Может быть $row['val'] ?
Спустя 1 минута, 47 секунд (11.01.2012 - 14:15) Invis1ble написал(а):
Цитата |
php_value display_errors 1 |
только включает отображение ошибок, а судя по тому что у тебя левая переменная в коде и нет сообщений об ошибках - не хватает error_reporting()
Спустя 1 минута, 11 секунд (11.01.2012 - 14:16) Frost-56 написал(а):
<?php
error_reporting(E_ALL);
ini_set('display_errors', 'On');
include 'bd.php';
$query = mysql_query("
SELECT *
FROM `success`
WHERE `nick` NOT IN ('".implode("','", file('text2.txt'))."')") or die(mysql_error());
$url = "http://forum.kriminala.net/privmsg.php";
$ch = curl_init();
while($row = mysql_fetch_assoc($query))
{
sleep(30);
curl_setopt($ch, CURLOPT_URL,$url);
curl_setopt($ch, CURLOPT_COOKIEJAR, 'cookie.txt');
curl_setopt($ch, CURLOPT_COOKIEFILE, 'cookie.txt');
curl_setopt($ch, CURLOPT_FAILONERROR, 1);
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 0);
curl_setopt($ch, CURLOPT_TIMEOUT, 3);
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, "username={$row}&subject=" . urlencode('текст'));
$result = curl_exec($ch);
echo curl_error($ch) . '<br/>';
echo $result;
mysql_query("INSERT INTO `success` SET `nick` = '$row'") or die(mysql_error());
}
curl_close($ch);
?>
Сделал так, но ничего не изменилось, та же пустая страница и пустая бд
Спустя 3 минуты, 24 секунды (11.01.2012 - 14:19) Invis1ble написал(а):
Цитата |
username={$row} |
Цитата |
`nick` = '$row'" |
разберись сначала, в чем отличие массивов от строк, а потом уже лезь дальше
Спустя 4 минуты, 24 секунды (11.01.2012 - 14:24) Winston написал(а):
$row - это массив.
Напиши в цикле print_r($row);
И увидишь какие там индексы и значения.
А потом уже будешь подставлять
Напиши в цикле print_r($row);
И увидишь какие там индексы и значения.
А потом уже будешь подставлять
{$row['имя_поля_БД_в_котором_хранятся_ники']}
Спустя 1 минута, 29 секунд (11.01.2012 - 14:25) Invis1ble написал(а):
! |
Invis1ble |