pth'; $dbname='users'; $demands_from_ip=5;//количество запросов в сутки с одного ай-пи $db=mysql_connect($dbhost.':'.$dbport, $dbuser, $dbpassword,true) or die("Извините. Нет доступа к базе данных. Пожалуйста, зайдите позже."); mysql_select_db($dbname,$db); mysql_query("set character_set_client='cp1251'",$db); mysql_query("set character_set_results='cp1251'",$db); mysql_query("set collation_connection='cp1251_general_ci'",$db); $act=$_REQUEST['act']; if ($act=='load_houses'){ echo load_houses($db); exit; } else if ($act=='verify_house_link'){ echo verify_house_link($db); exit; } else if ($act=='newdemand'){ echo iconv('CP1251','UTF-8',newdemand($db)); exit; } require($_SERVER["DOCUMENT_ROOT"]."/bitrix/header.php"); $APPLICATION->SetTitle("Онлайн заявка на подключение"); echo " "; $style=''; $script=' '; $out.=$style.$script.'
Здесь Вы можете оставить заявку на подключение к сети для себя или своего знакомого.
Выберите адрес по улице или по микрорайону.
Адрес подключения: ул.
дом №:
или 
м/р:
дом № '; $out.='
квартира:
'; echo $out; require($_SERVER["DOCUMENT_ROOT"]."/bitrix/footer.php"); function load_houses($db){ $out=''; //загрузка списка домов $type=$_REQUEST['type']; if ($type=='street'){ //выбор домов по улице $id=$_REQUEST['id']; $sql="select street_house from addresses where street='$id' and contractable='1' group by street_house order by cast(street_house as UNSIGNED),street_house"; // $sql="select street_house from addresses where street=$id and com_id!=0 group by street_house order by cast(street_house as UNSIGNED),street_house"; // $sql=addslashes($sql); $result=mysql_query($sql,$db); $out.=mysql_error($db); while($row=mysql_fetch_array($result, MYSQL_ASSOC)){ $out.=''.$row['street_house'].' '; echo mysql_error(); } $out.='нет в списке'; } else if ($type=='micro'){ //выбор домов по микрорайону $id=$_REQUEST['id']; $sql="select house from addresses where micro='$id' and contractable='1' group by house order by cast(house as UNSIGNED),house"; // $sql="select house from addresses where micro=$id and com_id!=0 group by house order by cast(house as UNSIGNED),house"; // $sql=addslashes($sql); $result=mysql_query($sql,$db); while($row=mysql_fetch_array($result, MYSQL_ASSOC)){ $out.=''.$row['house'].' '; } $out.='нет в списке'; } $out=iconv('CP1251','UTF-8',$out); return $out; } function verify_house_link($db){ $descr_demand=array( 'В выбранном доме на текущий момент подключение к сети "Волжский StarNet" невозможно. Мы свяжемся с Вами, как только будет техническая возможность выполнить подключение по указанному адресу. Оставьте, пожалуйста, контактные данные в форме ниже:
Контактное лицо: введите Ваше имя или Ф.И.О.
Контактный телефон: телефон для связи
Дополнительно: дополнительная информация
Номер договора друга: читайте подробности акции "Твои друзья"
', 'По выбранному адресу возможно подключение к сети "Волжский StarNet". Для упрощения составления договора, заполните персональные данные в форме ниже:*
Ф.И.О. (полностью)
Дата рождения:..г.
Паспорт:Серия: номер:
Выдан:когда: .. кем: место выдачи:
Прописка по адресу подключения:
Домашний телефон: телефон для связи
Мобильный телефон: телефон для связи
Дополнительно: дополнительная информация
Номер договора друга: читайте подробности акции "Мой ProЦент"
С Вами свяжутся и договорятся об удобном для Вас времени для заключения договора.
После заключения договора Вам необходимо будет положить на свой новый счет 500 рублей. Только после этого будет активирован процесс подключения.
* - эти данные будут внесены в договор, постарайтесь заполнить все правильно. ' ); $type=$_REQUEST['type']; $id=$_REQUEST['id']; $house=iconv('UTF-8','CP1251',$_REQUEST['house']); if ($type=='street'){ $sql="select id from addresses where street='$id' and street_house='$house' and contractable='1' limit 1"; } else if ($type=='micro') { $sql="select id from addresses where micro='$id' and house='$house' and contractable='1' limit 1"; } $result=mysql_query($sql,$db); $index=0; while ($row=mysql_fetch_array($result, MYSQL_ASSOC)){ $index=1; } $send_button='
'; return iconv('CP1251','UTF-8',$descr_demand[$index].$send_button); } function newdemand($db){ global $demands_from_ip; //создание новой заявки $ip_addr=$_SERVER['REMOTE_ADDR']; //проверка превышения заявок в сутки с одного айпи $sql="select count(*) as cnt from demands_link_online where ip_addr='".$ip_addr."' and `date`>now() - interval 1 day"; $result=mysql_query($sql); $cnt=mysql_result($result,0); if ($cnt>=$demands_from_ip){return text_error('Достигнут предел числа заявок с одного IP-адреса в сутки. Попробуйте позже.');}; foreach ($_REQUEST as $key=>$value){ $_REQUEST[$key]=addslashes($_REQUEST[$key]); // echo $key.":".$_REQUEST[$key]."\n"; $_REQUEST[$key]=iconv('UTF-8','CP1251',$_REQUEST[$key]); } $addr=$_REQUEST['addr']; $flat=$_REQUEST['flat']; $link=$_REQUEST['link']; $fio=$_REQUEST['fio']; $phone=$_REQUEST['phone']; $mobile_phone=$_REQUEST['mobile_phone']; $addnode=$_REQUEST['addnode']; $refferer=$_REQUEST['refferer']; if ($link){ $birthday=$_REQUEST['birthday']; $birthmonth=$_REQUEST['birthmonth']; $birthyear=$_REQUEST['birthyear']; $pass_sernum1=$_REQUEST['pass_sernum1']; $pass_sernum2=$_REQUEST['pass_sernum2']; $pass_no=$_REQUEST['pass_no']; $pass_issueday=$_REQUEST['pass_issueday']; $pass_issuemonth=$_REQUEST['pass_issuemonth']; $pass_issueyear=$_REQUEST['pass_issueyear']; $pass_issuedep=$_REQUEST['pass_issuedep']; $pass_issueplace=$_REQUEST['pass_issueplace']; $propis=$_REQUEST['propis']; } if ($addr=='street'){ $street_house=$_REQUEST['street_house']; $street=$_REQUEST['street']; if ($street==0){ $street_name=$_REQUEST['man_street']; } } else if ($addr=='micro'){ $house=$_REQUEST['micro_house']; $micro=$_REQUEST['micro']; if ($micro==0){ $micro_name=$_REQUEST['man_micro']; } } //проверка параметров //на непустоту и валидность if (!($addr=='street'||$addr=='micro')){return text_error(':'.$addr.'Неверные параметры запроса');} else if (!$flat){return text_error('Не указана квартира');} else if (!valid_flat($flat)){return text_error('Неверный формат номера квартиры');} else if (!$fio){return text_error('Укажите свое Ф.И.О.');} else if (!valid_fio($fio)){return text_error('Укажите свое Ф.И.О. полностью');} else if (!$phone&&!$mobile_phone){return text_error('Укажите телефонный номер');} else if (!valid_phone($phone)||!valid_phone($mobile_phone)){return text_error('Некорректный телефонный номер');} else if ($refferer&&!preg_match('/^[0-9]{5}$/',$refferer)){return text_error('Неверно указан договор друга');} if ($link){ if (!$birthday||!$birthmonth||!$birthyear){ return text_error('Укажите день своего рождения'); } else if (!valid_number($birthday,31)||!valid_number($birthmonth,12)||!valid_number($birthyear,3000)){ return text_error('Укажите день своего рождения'); } else if (!$pass_sernum1||!$pass_sernum2||!$pass_no||!$pass_issueday||!$pass_issuemonth||!$pass_issueyear||!$pass_issuedep||!$pass_issueplace|| !valid_number($pass_sernum1,99)||!valid_number($pass_sernum2,99)||!valid_number($pass_no)||!valid_number($pass_issueday,31)|| !valid_number($pass_issuemonth,31)||!valid_number($pass_issueyear,3000)){ return text_error('Укажите все необходимые паспортные данные');}; } if ($addr=='street'){ if (!$street_house){return text_error('Не указан номер дома по улице');} else if (!$street&&!$street_name){return text_error('Не указана улица');} else if (!valid_house($street_house)){return text_error('Некорректный номер дома');}; } else if ($addr=='micro'){ if (!$house){return text_error('Не указан номер дома по микрорайону');} else if (!$micro&&!$micro_name){return text_error('Не указан номер микрорайона');} else if (!valid_house($house)){return text_error('Некорректный номер дома');}; } // $phone=uniphone($phone); //inserting to the DB users table demands_link_online if ($link){ $birthdate=sprintf("%02d.%02d.%04d", $birthday,$birthmonth,$birthyear); $pass_issuedate=sprintf("%02d.%02d.%04d",$pass_issueday,$pass_issuemonth,$pass_issueyear); $pass_sernum=$pass_sernum1.' '.$pass_sernum2; $propis=$propis=='true'?1:0; $sql="insert into demands_link_online (`street`,`street_name`,`street_house`,`micro`,`micro_name`,`house`,`flat`,`fio`,`birthdate`, `pass_sernum`,`pass_no`,`pass_issuedate`,`pass_issuedep`,`pass_issueplace`,`propis`,`phone`,`mobile_phone`,`descr`,`ip_addr`,`date`,`refferer`) values ('$street','$street_name','$street_house','$micro','$microname','$house','$flat','$fio','$birthdate', '$pass_sernum','$pass_no','$pass_issuedate','$pass_issuedep','$pass_issueplace','$propis','$phone','$mobile_phone','$addnode','$ip_addr',now(),'$refferer')"; } else { $sql="insert into demands_link_online (`street`,`street_name`,`street_house`,`micro`,`micro_name`,`house`,`flat`,`fio`,`phone`,`descr`,`ip_addr`,`date`,`refferer`) values ('$street','$street_name','$street_house','$micro','$micro_name','$house','$flat','$fio','$phone','$addnode','$ip_addr',now(),'$refferer')"; } $result=mysql_query($sql); if ($result){ return '
Спасибо. Ваша заявка принята. В течение ближайшего времени Вам обязательно позвонят.
'; } return text_error('Ошибка базы данных'.mysql_error()); } function text_error($text){ return 'Ошибка: '.$text; } function valid_fio($fio){ // $temp=iconv('UTF-8','CP1251',$fio); if (!preg_match('/^[а-яёА-ЯЁ \-.]+$/',$fio)){ return 0; } if (strlen($fio)>150){return 0;} return 1; } function valid_phone($phone){ if (!$phone) return 1; if (!preg_match('/^[0-9\- +()]+$/',$phone)){return 0;} if (strlen($phone)<6){return 0;} return 1; } function valid_house($house){ // $temp=iconv('UTF-8','CP1251',$house); if (!preg_match('/^[0-9\/а-я]+$/',$house)){ return 0; } return 1; } function valid_flat($flat){ if (!preg_match('/^[0-9\/а-я]+$/',$flat)){ return 0; } return 1; } function valid_number($number,$max){ //проверка на числовой параметр if (!preg_match('/^[0-9]+$/',$number)){ return 0; } if ($max>0&&$number>$max){ return 0; } return 1; } ?>