- Поисковые системы
- Практика оптимизации
- Трафик для сайтов
- Монетизация сайтов
- Сайтостроение
- Социальный Маркетинг
- Общение профессионалов
- Биржа и продажа
- Финансовые объявления
- Работа на постоянной основе
- Сайты - покупка, продажа
- Соцсети: страницы, группы, приложения
- Сайты без доменов
- Трафик, тизерная и баннерная реклама
- Продажа, оценка, регистрация доменов
- Ссылки - обмен, покупка, продажа
- Программы и скрипты
- Размещение статей
- Инфопродукты
- Прочие цифровые товары
- Работа и услуги для вебмастера
- Оптимизация, продвижение и аудит
- Ведение рекламных кампаний
- Услуги в области SMM
- Программирование
- Администрирование серверов и сайтов
- Прокси, ВПН, анонимайзеры, IP
- Платное обучение, вебинары
- Регистрация в каталогах
- Копирайтинг, переводы
- Дизайн
- Usability: консультации и аудит
- Изготовление сайтов
- Наполнение сайтов
- Прочие услуги
- Не про работу

В 2023 году Google заблокировал более 170 млн фальшивых отзывов на Картах
Это на 45% больше, чем в 2022 году
Оксана Мамчуева

Маркетинг для шоколадной фабрики. На 34% выше средний чек
Через устранение узких мест
Оксана Мамчуева
Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий
Я не профессиональный web-программист, в кодах я разбираюсь очень плохо, но на работе попросили чуть исправить одну страничку.
Суть проблемы такова.
Наш сайт создан на системе Битрикс. На странице http://www.auto-city.ru/obyav/podat/ нужно было удалить одно дополнительное поле ввода текста (номера телефона). Я удалил строку в таблице с полем ввода текста через визуальный редактор и не подумал сохранить первичный код.
В результате чего, страница покорежилась, и получился вот такой код в файле index.php:
<?$APPLICATION->IncludeFile('/inc/mail.php')?> <?$err=-1;?> <?if($_REQUEST['act']=="add" && $_REQUEST['text'] && $_REQUEST['phone'] && $_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 || !obj.phone.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%; border-collapse: collapse;" id="give_obyav">
<tbody>
<tr> <td> Текст объявления: </td> <td style="width: 250px;"> <textarea maxlength="200" size="20" rows="5" cols="25" name="text" style="width: 100%;"><img src="/bitrix/images/fileman/htmledit2/php.gif" __bxsrc="/bitrix/images/fileman/htmledit2/php.gif" border="0" __bxtagname="php" __bxcontainer="{'code': '<?=$_REQUEST[\'text\']?>'}" /></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>
</tbody>
</table>
</form> <?endif?>
При выполнениии этого кода получалось, что один из ниспадающих списков пропал, а второй стал пустым. И в полях таблицы появились четырехзначные числа (как я понял, ID рубрик) и в поле ввода основного текста стал появляться мусор из кода.
Повозившись с кодом, я добился чистого поля ввода и нормального расположения ниспадающих списков. Но вот только они все равно остались пустыми.
Вот так выглядит часть кода с таблицей, что была исправлена мной:
<form onsubmit="return checkForm(this)" method="post" name="iblock_add">
<table id="give_obyav" style="width: 100%; border-collapse: collapse;" class="tabs">
<tbody>
<tr> <td> Текст объявления: </td> <td style="width: 250px;"> <textarea style="width: 100%;" name="text" cols="25" rows="5" size="20" maxlength="200"></textarea></td> </tr>
<tr><td valign="top">
<br />
</td><td valign="top">
<br />
</td></tr>
<tr> <td> Рубрика: </td> <td> <?$l1 = GetIBlockSectionList(47, 0, Array("sort"=>"asc"))?> <select style="width: 100%;" onchange="ch_r(this);" name="rubrika"> </select> </td> </tr>
<tr> <td> Подрубрика: </td> <td> <?$l1 = GetIBlockSectionList(47,0,Array("SORT"=>"ASC"))?> <select style="width: 100%;" onchange="ch_r(this);" name="podr_"> </select> </td> </tr>
<tr> <td> Код подтверждения: </td> <td> <img src="/captcha/captcha_image.php" /> </td> </tr>
<tr> <td> Введите код: </td> <td> <input type="text" name="captcha" style="width: 100%;" /> </td> </tr>
<tr> <td colspan="2"> <input type="hidden" value="add" name="act" /> <input type="submit" style="width: 50%;" class="btn" value="Подать" name="iblock_submit" /> <input type="reset" style="width: 49%;" class="btn" value="Отмена" /> </td> </tr>
</tbody>
</table>
Помогите пожалуйста исправить код, чтобы он работал без поля ввода номера телефона, желательно на весь файл index.php
-cRow- добавил 22.02.2011 в 13:32
Неужели никто не может помочь? Мне шеф голову снимет, Пожалуйста, откликнитесь кто нибудь!
-cRow- добавил 23.02.2011 в 09:02
То нибудь может помочь? НЕТ?
Зачем лезть туда, с чем плохо знакомы?
Сам плохо ориентируюсь в вашем коде и не знаю что именно вы изменили.
Только когда будете изменять index.php сохраните код.
Поробуйте так:
Да, знаю сам не сторонник "ЛазаньяКудаПопало" но так уж вышло.) Если шеф сказал, то вот так вот))
Parse error: syntax error, unexpected T_VARIABLE in /users/a/u/auto-city.ru/html/www/obyav/podat/index.php on line 5
а вот это выдало с вашим кодом(( Боюсь хостера дергать бессмысленно, уже вторая неделя пошла( Да и хостер у нас, мягко сказать...
пометь то место где именно снёс строку
если удалил из индексной странице то просто замени индексный файл на орегинальный от этой смс, если что пиши в лс попробую помоч
Там скриптом проверяется если пустой телефон, то не даст отправить данные. Это нужно учитывать.
Но похоже сами запросы к БД были задеты.
Чуть ошибся с комментированием кода, так попробуйте:
Боюсь хостера дергать бессмысленно
просто восстановите из бекапа ))
просто восстановите из бекапа ))
скачал бекап в 25 метров. в архиве нет многих файлов. В том числе и этого.((
Trol, второй код тоже не работает( Я думал, не проще ли заново написать запрос к БД, и вставить в имеющийся код. Или это как раз сложнее? Я просто в этом мало что смыслю.
А еще была мысль, не может ли мешать работе страницы наличие в описаниях переменных гдето, указаний о поле ввода номера телефона? Там встречаются строки phone.
Dos3, пометить место, откуда удалил строку таблицы? я удалял в визуальном редакторе (будь он неладен) Понадеялся на программу, что она сама сформирует новый код как надо(.
-cRow-, нанимайте специалиста, т.к.
просто в этом мало что смыслю.
иначе натворите там...
Проблему решили, всем большое спасибо))) Особенное спасибо .:nbd:.
Тему можно закрывать.
-cRow- добавил 26.02.2011 в 09:57
PS: пока ремонтировали страничку, многое узнал. Очень заинтересовала работа с кодами. Думаю, буду изучать это направление. Кто знает, может однажды и сам вам чем нибудь помогу? ;-)