Вот чуть изменил код, больше не вижу как оптимизировать ещё можно, медленно очень работает :(
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> Текст объявления: </td> <td style="width:250px"> <textarea maxlength="200" size="20" rows="5" cols="25" name="text" style="width:100%"></textarea> </td> </tr> <tr> <td> Рубрика: </td> <td> <?$l1 = GetIBlockSectionList(47,0,Array("SORT"=>"ASC"))?> <select name="rubrika" onchange="ch_r(this);" style="width: 100%;"> </select> </td> </tr> <tr> <td> Подрубрика: </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': '<?=(!$_REQUEST[\'rubrika\'])?$s_l1[\'ID\']:$_REQUEST[\'rubrika\']?>'}" />; </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> Текст объявления: </td> <td style="width:250px"> <textarea maxlength="200" size="20" rows="5" cols="25" name="text" style="width:100%"></textarea> </td> </tr> <tr> <td> Рубрика: </td> <td> <?$l1 = GetIBlockSectionList(47,0,Array("SORT"=>"ASC"))?> <select name="rubrika" onchange="ch_r(this);" style="width: 100%;"> </select> </td> </tr> <tr> <td> Подрубрика: </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': '<?=(!$_REQUEST[\'rubrika\'])?$s_l1[\'ID\']:$_REQUEST[\'rubrika\']?>'}" />; </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?>
А вы разве пользователь программы чтобы так утверждать?
По функционалу:
С чего вдруг решили что он скуднее?
Минусы SPoster по сравнению с Scuttle постер:
1) Нет возможности применять конструкцию {|} в названии, описании и метках.
2) Есть проблема с кодировкой UTF-8
3) Софт платный, зато можно с полным правом просить ввод новых функций в программе. А что программисты бесплатно работать должны??
Плюсы SPoster по сравнению с Scuttle Poster:
1) Многопоточность. Программа действительно очень быстрая.
2) Больше закладок, это дело наживное, но всёже.
3) Консольная программа. Возможность запуска из скриптов с необходимыми параметрами. Скоро будет массовое обновление с консольной версией.
4) Автор всегда на связи и готов внедрять дополнительный функционал.
Я пользовался Scuttle Poster и считаю что SPoster стоит 20$, а если ещё покроет минусы, ценник нужно поднимать :2cents: Программисты тоже люди и кушать им нужно. 🍿
Прогонял по базе, которую предоставил ТС. Программа пробила 95 закладок. На некоторых из них нет активной ссылки. Где-то около 70 закладок точно с активной прямой ссылкой, что не мешает в получении необходимого результата - индексации. Никто не мешает напарсить собственную базу Scuttle закладок.
Программу тестировал в бою, кроме как прогонов программой ничего не делал. Прогонял 50 разных страниц каждого дора. Результат - индекс гугла и яндекса, а что ещё нужно? :) Программа выполняет свои функции. В Яндексе доры уже полностью проиндексированы. В первый АП влетела главная и пару десятков страниц, которые были прогнаны по закладкам, на следующий АП выдачи полный индекс. В гугл примерно за неделю после прогона почти полностью залетел.
Очень рад приобретению программы. Спасибо автору, что развивает программу. Я уже получил консольную версию софта, так как просил внедрить этот функционал с самой покупки программы. Консольная версия работает также быстро и без нареканий. Уже внедрил консольную программу куда нужно. Советую купить софт пока не подорожал ☝
ТС обещал сделать скоро массовый апдейт, как ещё чуть допилит функционал программы.
Collapse, спасибо. Я рад что купил программу и не ошибся в выборе.
Можно вообще сразу базу состаить ключ - релевантная страница.
А затем туда перенаправлять с рефкой.
Но смысла заморачиваться так совсем мало.
Только если для шопов, когда ищут определённый товар... Но там и по другому делать можно :)
ksylite, хех, это наверное очень великие дорвейщики :)
Collapse, зря конечно нет привязки :(
По программе - давно искал подобную программу. Спасибо автору, программа шустрая и работает как надо. Спасибо за обновления и советы по прогону.
Не жалейте денег, программы такого рода окупают себя с лихвой.
Купил базу. База удобно разделена по категориям. Как разделена можно увидеть ещё до покупки, скачав архивы.
Вот например сравнение top.mail.ru рейтинга Авто/Мото с содержимым архива Авто/Мото:
Т.е. ТС действительно собирал базу из top.mail.ru (поисковые запросы). Смотрел там поисковые запросы и все запросы находились в базе.
Покупкой доволен. Надеюсь что база будет обновляться и автор не забудет о своих клиентах 🚬