Trol

Рейтинг
82
Регистрация
28.06.2007

Вот чуть изменил код, больше не вижу как оптимизировать ещё можно, медленно очень работает :(

Fearful, такой код можно ещё лучше оптимизировать?

Вот:

<?php

set_time_limit(0);
$list = file('baza.txt'); //База URL
$host = $url = '';
foreach($list as $val) {
$uri = parse_url($val, PHP_URL_HOST)."\n";
if(substr_count($host, $uri)<4) {
$url .= $val;
$host .= $uri;
}
}
file_put_contents('link.txt', $url);
?>

GizmoKoenig, mysql не вариант :(

Исполнителям тоже инвайт нужен? :) Балончик и маркеры выдаёте? 😂

Там скриптом проверяется если пустой телефон, то не даст отправить данные. Это нужно учитывать.

Но похоже сами запросы к БД были задеты.

Чуть ошибся с комментированием кода, так попробуйте:

<?$APPLICATION->IncludeFile('/inc/mail.php')?> <?$err=-1;?> <?if($_REQUEST['act']=="add" && $_REQUEST['text'] $_REQUEST['captcha'] && !isset($_REQUEST['from'])):?> <?$err=0;?> <?if($_SESSION['pass']!=$_REQUEST['captcha']):?>  

<div class="red"><b>Неверно введен код подтверждения!</b></div>
<?$err=1;?> <?else:?> <?
$el = new CIBlockElement;

$PROP = array();
$PROP['phone'] = $_REQUEST['phone'];

$arLoadProductArray = Array(
"IBLOCK_SECTION" => $_REQUEST['podr_'.$_REQUEST['rubrika']],
"IBLOCK_ID" => 47,
"PROPERTY_VALUES"=> $PROP,
"NAME" => $_REQUEST['text'],
"ACTIVE" => "N",
);

if($new_id = $el->Add($arLoadProductArray))
{
$sect2 = GetIBlockSection($_REQUEST['podr_'.$_REQUEST['rubrika']]);
$sect1 = GetIBlockSection($_REQUEST['rubrika']);
echo "Ваше объявление успешно принято и будет рассмотрено модератором";
$domen = "http://www.auto-city.ru/";
$mail_body = 'Добавлено новое объявление "'.$_REQUEST['text'].'" в рубрике "'.$sect1['NAME'].'"->"'.$sect2['NAME'].'" и ожидает модерации: <a href="'.$domen.'bitrix/admin/iblock_element_edit.php?ID='.$new_id.'&type=obyav&IBLOCK_ID=47">'.$domen.'bitrix/admin/iblock_element_edit.php?ID='.$new_id.'&type=obyav&IBLOCK_ID=47</a>';
email('in@elonika.ru', 'robot@autocity.ru', 'Робот АвтоCity', 'Новое объявление на сайте', $mail_body);
}
else
echo "Возникла ошибка при добавлении, обратитесь к слежбе поддержки";
?> <?endif?> <?elseif($_REQUEST['act']=="add"):?> <?if(!$_REQUEST['from']):?>
<div class="red"><b>Заполните все поля!</b></div>
<?else:?> <b>Пожалуйста, укажите подрубрику и введите код подтверждения</b> <?endif?> <?$err=1;?> <?endif?> <?if($err || $err==-1):?>
<script language="JavaScript">
lastKey = 0;
function ch_r(obj)
{
document.getElementById('r_'+obj.value).style.display = 'block';
document.getElementById('r_'+lastrid).style.display = 'none';
lastrid = obj.value;
}

function checkForm(obj)
{
/*
var str = obj.phone.value;
var re = /[^\d ()-+]+/;
for(i=0;i<1000;i++)
obj.phone.value = obj.phone.value.replace(re, "");
if(obj.phone.value!=str){
alert('В поле "Номер телефона" необходимо вводить только цифры!');
return false;

}
*/
if(!obj.text.value || !obj.captcha.value)
{
alert('Заполните все поля!');
return false;
}
}
/*
function checkChar2(){
var re = /[^\d ()-+]+/;
for(i=0;i<1000;i++)
obj.phone.value = obj.phone.value.replace(re, "");
}
function checkChar()
{
key = event.keyCode;
if(key<48 || key>57)

// || key==109 || key==46 || key==16 || key==8 || key==32 || key==37 || key==39 || key==36 || key==35 || (key==57 || key==48 || key==107 || key==36 || key==35 || key==37 || key==39 || key==51 || key==56))
{
alert(key);
lastKey = key;
return false;
}
lastKey = key;
return true;
}*/
</script>
<form name="iblock_add" method="post" onSubmit="return checkForm(this)">
<table class="tabs" style="width:100%" id="give_obyav">
<tr>
<td>
Текст объявления:&nbsp;&nbsp;
</td>
<td style="width:250px">
<textarea maxlength="200" size="20" rows="5" cols="25" name="text" style="width:100%"></textarea>
</td>
</tr>
<tr>
<td>
Рубрика:&nbsp;&nbsp;
</td>
<td>
<?$l1 = GetIBlockSectionList(47,0,Array("SORT"=>"ASC"))?> <select name="rubrika" onchange="ch_r(this);" style="width: 100%;"> </select>
</td>
</tr>
<tr>
<td>
Подрубрика:&nbsp;&nbsp;
</td>
<td>
<?$l1 = GetIBlockSectionList(47,0,Array("SORT"=>"ASC"))?> <?$i=0;?> <?while($s_l1 = $l1->GetNext()):?> <?if($i==0):?>
<script language="JavaScript">
var lastrid = <img src="/bitrix/images/fileman/htmledit2/php.gif" border="0" __bxtagname="php" __bxcontainer="{'code': '&lt;?=(!$_REQUEST[\'rubrika\'])?$s_l1[\'ID\']:$_REQUEST[\'rubrika\']?&gt;'}" />;
</script>
<?endif?> <?=$s_l1['ID']?> <?$i++;?> <?endwhile?>
</td>
</tr>
<tr>
<td>
Код подтверждения:
</td>
<td>
<img src="/captcha/captcha_image.php">
</td>
</tr>
<tr>
<td>
Введите код:
</td>
<td>
<input type="text" style="width:100%" name="captcha">
</td>
</tr>
<tr>
<td colspan="2">
<input type="hidden" name="act" value="add">
<input type="submit" name="iblock_submit" value="Подать" class="btn" style="width:50%">
<input type="reset" value="Отмена" class="btn" style="width:49%">
</td>
</tr>
</table>
</form> <?endif?>

-cRow-, зря здесь написали, за это карточку можете получить. Как нужно попробовать сделать уже отписал в той теме. Если не поможет, свяжитесь с хостингом сайта и попросите файлы за вчерашний день. Дамп за прошлые дни. Если хостер хороший, должны делать дампы и предоставить по просьбе клиента.

Collapse, когда обновлением порадуете? :) Над кодировкой работаете?

Зачем лезть туда, с чем плохо знакомы?

Сам плохо ориентируюсь в вашем коде и не знаю что именно вы изменили.

Только когда будете изменять index.php сохраните код.

Поробуйте так:

<?$APPLICATION->IncludeFile('/inc/mail.php')?> <?$err=-1;?> <?if($_REQUEST['act']=="add" && $_REQUEST['text'] $_REQUEST['captcha'] && !isset($_REQUEST['from'])):?> <?$err=0;?> <?if($_SESSION['pass']!=$_REQUEST['captcha']):?> 

<div class="red"><b>Неверно введен код подтверждения!</b></div>
<?$err=1;?> <?else:?> <?
$el = new CIBlockElement;

$PROP = array();
//$PROP['phone'] = $_REQUEST['phone'];

$arLoadProductArray = Array(
"IBLOCK_SECTION" => $_REQUEST['podr_'.$_REQUEST['rubrika']],
"IBLOCK_ID" => 47,
"PROPERTY_VALUES"=> $PROP,
"NAME" => $_REQUEST['text'],
"ACTIVE" => "N",
);

if($new_id = $el->Add($arLoadProductArray))
{
$sect2 = GetIBlockSection($_REQUEST['podr_'.$_REQUEST['rubrika']]);
$sect1 = GetIBlockSection($_REQUEST['rubrika']);
echo "Ваше объявление успешно принято и будет рассмотрено модератором";
$domen = "http://www.auto-city.ru/";
$mail_body = 'Добавлено новое объявление "'.$_REQUEST['text'].'" в рубрике "'.$sect1['NAME'].'"->"'.$sect2['NAME'].'" и ожидает модерации: <a href="'.$domen.'bitrix/admin/iblock_element_edit.php?ID='.$new_id.'&type=obyav&IBLOCK_ID=47">'.$domen.'bitrix/admin/iblock_element_edit.php?ID='.$new_id.'&type=obyav&IBLOCK_ID=47</a>';
email('in@elonika.ru', 'robot@autocity.ru', 'Робот АвтоCity', 'Новое объявление на сайте', $mail_body);
}
else
echo "Возникла ошибка при добавлении, обратитесь к слежбе поддержки";
?> <?endif?> <?elseif($_REQUEST['act']=="add"):?> <?if(!$_REQUEST['from']):?>
<div class="red"><b>Заполните все поля!</b></div>
<?else:?> <b>Пожалуйста, укажите подрубрику и введите код подтверждения</b> <?endif?> <?$err=1;?> <?endif?> <?if($err || $err==-1):?>
<script language="JavaScript">
lastKey = 0;
function ch_r(obj)
{
document.getElementById('r_'+obj.value).style.display = 'block';
document.getElementById('r_'+lastrid).style.display = 'none';
lastrid = obj.value;
}
/*
function checkForm(obj)
{
var str = obj.phone.value;
var re = /[^\d ()-+]+/;
for(i=0;i<1000;i++)
obj.phone.value = obj.phone.value.replace(re, "");
if(obj.phone.value!=str){
alert('В поле "Номер телефона" необходимо вводить только цифры!');
return false;

}
*/
if(!obj.text.value || !obj.captcha.value)
{
alert('Заполните все поля!');
return false;
}
}
/*
function checkChar2(){
var re = /[^\d ()-+]+/;
for(i=0;i<1000;i++)
obj.phone.value = obj.phone.value.replace(re, "");
}
function checkChar()
{
key = event.keyCode;
if(key<48 || key>57)

// || key==109 || key==46 || key==16 || key==8 || key==32 || key==37 || key==39 || key==36 || key==35 || (key==57 || key==48 || key==107 || key==36 || key==35 || key==37 || key==39 || key==51 || key==56))
{
alert(key);
lastKey = key;
return false;
}
lastKey = key;
return true;
}*/
</script>
<form name="iblock_add" method="post" onSubmit="return checkForm(this)">
<table class="tabs" style="width:100%" id="give_obyav">
<tr>
<td>
Текст объявления:&nbsp;&nbsp;
</td>
<td style="width:250px">
<textarea maxlength="200" size="20" rows="5" cols="25" name="text" style="width:100%"></textarea>
</td>
</tr>
<tr>
<td>
Рубрика:&nbsp;&nbsp;
</td>
<td>
<?$l1 = GetIBlockSectionList(47,0,Array("SORT"=>"ASC"))?> <select name="rubrika" onchange="ch_r(this);" style="width: 100%;"> </select>
</td>
</tr>
<tr>
<td>
Подрубрика:&nbsp;&nbsp;
</td>
<td>
<?$l1 = GetIBlockSectionList(47,0,Array("SORT"=>"ASC"))?> <?$i=0;?> <?while($s_l1 = $l1->GetNext()):?> <?if($i==0):?>
<script language="JavaScript">
var lastrid = <img src="/bitrix/images/fileman/htmledit2/php.gif" border="0" __bxtagname="php" __bxcontainer="{'code': '&lt;?=(!$_REQUEST[\'rubrika\'])?$s_l1[\'ID\']:$_REQUEST[\'rubrika\']?&gt;'}" />;
</script>
<?endif?> <?=$s_l1['ID']?> <?$i++;?> <?endwhile?>
</td>
</tr>
<tr>
<td>
Код подтверждения:
</td>
<td>
<img src="/captcha/captcha_image.php">
</td>
</tr>
<tr>
<td>
Введите код:
</td>
<td>
<input type="text" style="width:100%" name="captcha">
</td>
</tr>
<tr>
<td colspan="2">
<input type="hidden" name="act" value="add">
<input type="submit" name="iblock_submit" value="Подать" class="btn" style="width:50%">
<input type="reset" value="Отмена" class="btn" style="width:49%">
</td>
</tr>
</table>
</form> <?endif?>
Алкоголик:
з.ы. Не стоит пока программа 20 у.е.

А вы разве пользователь программы чтобы так утверждать?

По функционалу:

С чего вдруг решили что он скуднее?

Минусы SPoster по сравнению с Scuttle постер:

1) Нет возможности применять конструкцию {|} в названии, описании и метках.

2) Есть проблема с кодировкой UTF-8

3) Софт платный, зато можно с полным правом просить ввод новых функций в программе. А что программисты бесплатно работать должны??

Плюсы SPoster по сравнению с Scuttle Poster:

1) Многопоточность. Программа действительно очень быстрая.

2) Больше закладок, это дело наживное, но всёже.

3) Консольная программа. Возможность запуска из скриптов с необходимыми параметрами. Скоро будет массовое обновление с консольной версией.

4) Автор всегда на связи и готов внедрять дополнительный функционал.

Я пользовался Scuttle Poster и считаю что SPoster стоит 20$, а если ещё покроет минусы, ценник нужно поднимать :2cents: Программисты тоже люди и кушать им нужно. 🍿

chakki-chakki:
сколько реально пробивается закладок из базы? отпищите в ЛС

Прогонял по базе, которую предоставил ТС. Программа пробила 95 закладок. На некоторых из них нет активной ссылки. Где-то около 70 закладок точно с активной прямой ссылкой, что не мешает в получении необходимого результата - индексации. Никто не мешает напарсить собственную базу Scuttle закладок.

Программу тестировал в бою, кроме как прогонов программой ничего не делал. Прогонял 50 разных страниц каждого дора. Результат - индекс гугла и яндекса, а что ещё нужно? :) Программа выполняет свои функции. В Яндексе доры уже полностью проиндексированы. В первый АП влетела главная и пару десятков страниц, которые были прогнаны по закладкам, на следующий АП выдачи полный индекс. В гугл примерно за неделю после прогона почти полностью залетел.

Очень рад приобретению программы. Спасибо автору, что развивает программу. Я уже получил консольную версию софта, так как просил внедрить этот функционал с самой покупки программы. Консольная версия работает также быстро и без нареканий. Уже внедрил консольную программу куда нужно. Советую купить софт пока не подорожал ☝

ТС обещал сделать скоро массовый апдейт, как ещё чуть допилит функционал программы.

Collapse, спасибо. Я рад что купил программу и не ошибся в выборе.

Можно вообще сразу базу состаить ключ - релевантная страница.

А затем туда перенаправлять с рефкой.

Но смысла заморачиваться так совсем мало.

Только если для шопов, когда ищут определённый товар... Но там и по другому делать можно :)

ksylite, хех, это наверное очень великие дорвейщики :)

Collapse, зря конечно нет привязки :(

По программе - давно искал подобную программу. Спасибо автору, программа шустрая и работает как надо. Спасибо за обновления и советы по прогону.

Не жалейте денег, программы такого рода окупают себя с лихвой.

Купил базу. База удобно разделена по категориям. Как разделена можно увидеть ещё до покупки, скачав архивы.

Вот например сравнение top.mail.ru рейтинга Авто/Мото с содержимым архива Авто/Мото:

Т.е. ТС действительно собирал базу из top.mail.ru (поисковые запросы). Смотрел там поисковые запросы и все запросы находились в базе.

Покупкой доволен. Надеюсь что база будет обновляться и автор не забудет о своих клиентах 🚬

Всего: 233