\r\n"; $SEND .= "To: $mail_to <$mail_to>\r\n"; $SEND .= "X-Priority: 3\r\n\r\n"; } $SEND .= $message."\r\n"; if( !$socket = fsockopen($config['smtp_host'], $config['smtp_port'], $errno, $errstr, 30) ) { //if ($config['smtp_debug']) echo $errno."
".$errstr; return 1; } if (!server_parse($socket, "220", __LINE__)) return 2; fputs($socket, "HELO " . $config['smtp_host'] . "\r\n"); if (!server_parse($socket, "250", __LINE__)) { //if ($config['smtp_debug']) echo '

Не могу отправить HELO!

'; fclose($socket); return 3; } //fputs($socket, "AUTH LOGIN\r\n"); fputs($socket, "AUTH LOGIN\r\n"); if (!server_parse($socket, "334", __LINE__)) { //if ($config['smtp_debug']) echo '

Не могу найти ответ на запрос авторизаци.

'; fclose($socket); return 4; } fputs($socket, base64_encode($config['smtp_username']) . "\r\n"); if (!server_parse($socket, "334", __LINE__)) { //if ($config['smtp_debug']) echo '

Логин авторизации не был принят сервером!

'; fclose($socket); return 5; } fputs($socket, base64_encode($config['smtp_password']) . "\r\n"); if (!server_parse($socket, "235", __LINE__)) { //if ($config['smtp_debug']) echo '

Пароль не был принят сервером как верный! Ошибка авторизации!

'; fclose($socket); return 6; } fputs($socket, "MAIL FROM: <".$config['smtp_username'].">\r\n"); if (!server_parse($socket, "250", __LINE__)) { //if ($config['smtp_debug']) echo '

Не могу отправить комманду MAIL FROM:

'; fclose($socket); return 7; } fputs($socket, "RCPT TO: <" . $mail_to . ">\r\n"); if (!server_parse($socket, "250", __LINE__)) { //if ($config['smtp_debug']) echo '

Не могу отправить комманду RCPT TO:

'; fclose($socket); return 8; } fputs($socket, "DATA\r\n"); if (!server_parse($socket, "354", __LINE__)) { //if ($config['smtp_debug']) echo '

Не могу отправить комманду DATA

'; fclose($socket); return 9; } fputs($socket, $SEND."\r\n.\r\n"); if (!server_parse($socket, "250", __LINE__)) { //if ($config['smtp_debug']) echo '

Не смог отправить тело письма. Письмо не было отправленно!

'; fclose($socket); return 10; } fputs($socket, "QUIT\r\n"); fclose($socket); return TRUE; } function server_parse($socket, $response, $line = __LINE__) { global $config; while (@substr($server_response, 3, 1) != ' ') { if (!($server_response = fgets($socket, 256))) { if ($config['smtp_debug']) echo "

Проблемы с отправкой почты!

$response
$line
"; return false; } } if (!(substr($server_response, 0, 3) == $response)) { if ($config['smtp_debug']) echo "

Проблемы с отправкой почты!

$response
$line
"; return false; } return true; } //********************************************************************************************************* function raz($p) { global $ripp, $urli, $basi, $nami, $hosti, $mnm; global $menu1; global $menu2; global $menu3; global $menu4; $im=-1; $f=fopen($p."pirogov.ini","r")or die("error"); $mnm=0; while (!feof($f)) { $st=fgets($f,400); if(rtrim(ltrim($st))=="[main]") $im=0; if(rtrim(ltrim($st))=="[menu]") $im=1; if($im==0) { $m=explode('%',$st); if(rtrim(ltrim($m[0]))=="rip") { $ripp=rtrim(ltrim($m[1])); } if(rtrim(ltrim($m[0]))=="url") { $urli=rtrim(ltrim($m[1])); } if(rtrim(ltrim($m[0]))=="base") { $basi=rtrim(ltrim($m[1])); } if(rtrim(ltrim($m[0]))=="name") { $nami=rtrim(ltrim($m[1])); } if(rtrim(ltrim($m[0]))=="host") { $hosti=rtrim(ltrim($m[1])); } } if($im==1) { $m=explode('%',$st); if($m[0]=="m") { $h=$m[1]; $me=explode('*',$h); $menu1[$mnm]=$me[0]; $menu2[$mnm]=$me[1]; $menu3[$mnm]=$me[2]; $menu4[$mnm]=$me[3]; $mnm=$mnm+1; } } } fclose($f); } // function obrabk($areag,$shabl) { $areag=preg_replace($shabl,"",$areag); // $areag = preg_replace("#(https?|ftp)://\S+[^\s.,>)\];'\"!?]?#", urez("$0"), $areag); $areag = preg_replace("#(https?|ftp)://\S+[\s]+#", urez("$0"), $areag); $areag = preg_replace("#\[[bB]\]#", "" , $areag); $areag = preg_replace("#\[\/[bB]\]#", "" , $areag); $areag = preg_replace("#\[\/br\]#i", "
" , $areag); $areag = preg_replace("#\[br\]#i", "
" , $areag); $areag = preg_replace("#\[[iI]\]#", "" , $areag); $areag = preg_replace("#\[\/[iI]\]#", "" , $areag); $areag = preg_replace("#\[[uU]\]#", "" , $areag); $areag = preg_replace("#\[\/[uU]\]#", "" , $areag); $areag = preg_replace("#\[[sS]\]#", "" , $areag); $areag = preg_replace("#\[\/[sS]\]#", "" , $areag); $areag = preg_replace("#\[[qQ]\]#", "" , $areag); $areag = preg_replace("#\[\/[qQ]\]#", "" , $areag); $areag = preg_replace("#\[\/color\]#i","",$areag); $areag = preg_replace("#\[(color=[\S]+)\]#i", bold("$1") , $areag); $areag = preg_replace("#\[\/size\]#i","",$areag); $areag = preg_replace("#\[(size=[\S]+)\]#i", bold("$1") , $areag); return $areag; } // function bold($pol) { $pol1=$pol; $pol1=""; return $pol1; } // function urez($pol) { $pol1=$pol; $pol1=''."<Ссылка> ".''; return $pol1; } // function poset($polzo) { if($polzo>=10 && $polzo<20)return "посетителей"; $l=strlen($polzo); $a=substr($polzo,$l-1,1); if($a==0)return "посетителей"; if($a==1)return "посетитель"; if($a==2)return "посетителя"; if($a==3)return "посетителя"; if($a==4)return "посетителя"; if($a==5)return "посетителей"; if($a==6)return "посетителей"; if($a==7)return "посетителей"; if($a==8)return "посетителей"; if($a==9)return "посетителей"; return $a; } // function rand_num ($low, $high) { srand((double) microtime() * 1000000); $random_Num = rand($low, $high); return $random_Num; } //получить высказывания function getvy() { global $ripp, $urli, $basi, $nami, $hosti; $s1=''; $s2=''; $con=get_con($hosti,$nami,"vladVALS1",$basi); if(!$con)return "1"; $sql="select * from izrech"; $result=mysql_query($sql,$con); $n2=mysql_num_rows($result); if($n2==0)return "1"; $n1=rand_num (0,$n2-1); for($i=0; $i<$n2; $i++) { $row=mysql_fetch_object($result); $s1=trim($row->izr); $s2=trim($row->avt); if($n1==$i)break; } if(strlen(trim($s2))==0)$s2='Автор неизвестен'; $s1=$s1." (".$s2.")"; return $s1; } //случайное выполнение проверки function proverka() { global $ripp, $urli, $basi, $nami, $hosti; $con=get_con($hosti,$nami,"vladVALS1",$basi); //в начале с анонимными пользователями $tm=time(); $sql="update schet set przn=1 where '$tm'-tm1>1800 and przn=0"; mysql_query($sql,$con); //теперь с зарегистрированными пользователями $sql="update user set pr=1 where '$tm'-tm1>1800 and pr=0"; mysql_query($sql,$con); //теперь с файлами $sql="select id from res where '$tm'-tm1>3600 and tip=1 and pra=0"; $result=mysql_query($sql,$con); $n=mysql_num_rows($result); for($i=0; $i<$n; $i++) { $row=mysql_fetch_object($result); $id=$row->id; $newfile="tmp/".$id.".zip"; unlink($newfile); $sql="update res set pra=1 where id='$id'"; mysql_query($sql,$con); } return; } //залогиниться //$sql1="update users1 set password1=DECODE('$ps','pirogov') where id='$id'"; function login(&$par4,$name,$password,&$polz,$par5) { global $ripp, $urli, $basi, $nami, $hosti; $outt="Ошибка имени или пароля"; $id_p=0; $ip=" "; $par4=0; //создать соединение $con=get_con($hosti,$nami,"vladVALS1",$basi); $n=trim($name); $p=trim($password); //проверка имени и пароля // $sql="select id from users where '$n'=trim(nick) and '$p'=trim(password) and pr=1"; //новая проверка $sql="select id from users where '$n'=trim(nick) and ENCODE('$p','pirogov')=passw and pr=1"; $result=mysql_query($sql,$con); $n1=mysql_num_rows($result); //если совпадают, то создать именное соединение if($n1>0) { $row=mysql_fetch_object($result); $id_p=$row->id; $sql="select ip from schet where '$par5'=id"; $result=mysql_query($sql,$con); $row=mysql_fetch_object($result); $ip=$row->ip; $date_array = getdate(); // $dat= $date_array['year']."-".$date_array['mon']."-".$date_array['mday']; $dat= $date_array['mday']."-".$date_array['mon']."-".$date_array['year']; $tim= $date_array['hours'].":".$date_array['minutes'].":".$date_array['seconds']; $tm1=time(); $sql="insert into user (id_p,id_s,ip,dat,tim,tm1) values ('$id_p','$par5','$ip','$dat','$tim','$tm1')"; mysql_query($sql,$con)or die(mysql_error()); $sql = "SELECT LAST_INSERT_ID() as ld "; $result=mysql_query($sql,$con); $row=mysql_fetch_object($result); $par4=$row->ld; $outt="Добро пожаловать!"; } //закрыть return $outt; } //функция начальной обработки зарегистрированных пользователей function begin2(&$par4) { global $ripp, $urli, $basi, $nami, $hosti; $logi="Не зарегистрирован"; //проверить по номеру и получить login //создать соединение $con=get_con($hosti,$nami,"vladVALS1",$basi); //проверить, есть ли запись и получить логин $sql="select b.nick from user a, users b where a.id_p=b.id and a.pr=0 and b.pr=1 and a.id='$par4'"; $result=mysql_query($sql,$con); $n1=mysql_num_rows($result); if($n1>0) { $row=mysql_fetch_object($result); $logi=$row->nick; }else $par4=0; //закрыть return $logi; } //функция начальной обработки анонимного соединения function begin($pr,&$l_id,&$par5,&$par4) { global $ripp, $urli, $basi, $nami, $hosti; //создать соединение $con=get_con($hosti,$nami,"vladVALS1",$basi); // if($pr==0) { //вставка записи ins($con,'asm'); //получить id записи $l_id = get_id($con); $par5=$l_id; //обновить счетчик upd_count($con); } else { //проверить время и установить флаги prov_sec($con,$par5,$par4); //проверить не анулирован ли данный аноним, если анулирован, то сайт должен быть перазагружен с начала if(get_sec($con,$par5)==1) { $par4=0; $count= begin(0,$l_id,$par5,$par4); return $count; } } //обновить время updt($con,$par5,$par4); //получить значение счетчика $count = get_cou($con); //закрыть соединение return $count; } //закрытие соединения function clos_co($con) { mysql_close($con); } //функция соединения function get_con($serv,$name,$pas,$base) { //соединение $con=mysql_connect($serv,$name,$pas); //выбор базы // mysql_select_db($base,$con); // mysql_query("set names utf8",$con); return $con; } //функция соединения function get_con1($serv,$name,$pas,$base) { //соединение $con=mysql_connect($serv,$name,$pas); //выбор базы mysql_select_db($base,$con); mysql_query("set names utf8",$con); return $con; } //функция вставки записи для анонимного пользователя function ins($con,$site) { $date_array = getdate(); $adr=$_SERVER['REMOTE_ADDR']; $ag=$_SERVER['HTTP_USER_AGENT']; $prox=getenv(HTTP_X_FORWARDED_FOR); $hos=$_SERVER['HTTP_HOST']; $uri=$_SERVER['REQUEST_URI']; $hos1=$_SERVER['SERVER_NAME']."/-/".$hos."/-/".$uri; $para=$_SERVER['QUERY_STRING']; $d= $date_array['mday']."-".$date_array['mon']."-".$date_array['year']; $t= $date_array['hours'].":".$date_array['minutes'].":".$date_array['seconds']; $tm=time(); $sql = "INSERT INTO schet (ip,dat,tim,tm1,agent,prox,host,param,site) VALUES ('$adr','$d','$t','$tm','$ag','$prox','$hos1','$para','$site')"; mysql_query($sql,$con)or die(mysql_error()); } //функция получения id записи function get_id($con) { $sql = "SELECT LAST_INSERT_ID() as ld "; $result=mysql_query($sql,$con); $row=mysql_fetch_object($result); return $row->ld; } //функция получения значения счетчика function get_cou($con) { $sql="SELECT cou as 'count' FROM sch"; $result=mysql_query($sql,$con); $row=mysql_fetch_object($result); return $row->count; } //функция проверки времени и отмены анонимного соединения function prov_sec($con,&$par5,&$par4) { $tm=time(); $sql="select tm1 from schet where id='$par5'"; $result=mysql_query($sql,$con); $n=mysql_num_rows($result); $row=mysql_fetch_object($result); $tm1= $row->tm1; if($tm-$tm1>1800||$n==0) { $sql="update schet set przn=1 where id='$par5'"; mysql_query($sql,$con)or die(mysql_error()); if($par4>0) { $sql="update user set pr=1 where id='$par4'"; mysql_query($sql,$con)or die(mysql_error()); $par4=0; } } } //функция обновления времени function updt($con,&$par5,&$par4) { $tm=time(); $sql="update schet set tm1='$tm' where id='$par5'"; mysql_query($sql,$con)or die(mysql_error()); $sql="update user set tm1='$tm' where id='$par4'"; mysql_query($sql,$con)or die(mysql_error()); } //возвращает 1, если запись анулирована function get_sec($con,&$par5) { $sql="SELECT przn FROM schet where id='$par5'"; $result=mysql_query($sql,$con); $n=mysql_num_rows($result); if($n==0) { return 1; } $row=mysql_fetch_object($result); return $row->przn; } //обновить значение счетчика function upd_count($con) { $sql = "update sch set cou=cou+1"; mysql_query($sql,$con)or die(mysql_error()); } //разрегистрироваться function unlog(&$par4) { global $ripp, $urli, $basi, $nami, $hosti; //создать соединение $con=get_con($hosti,$nami,"vladVALS1",$basi); $sql="update user set pr=1 where id='$par4'"; mysql_query($sql,$con)or die(mysql_error()); $par4=0; } function mail1($adr, $text, $pr) { //smtpmail($mail_to, $subject, $message, $headers='') { if($pr==0) { $k=smail("Vladislav-133@yandex.ru", $adr, "Vladislav-133", "Vladvals123", "smtp.yandex.ru", "Registration", $text, "From site", "To user"); }else { $k=smail("Vladislav-133@yandex.ru", $adr, "Vladislav-133", "Vladvals123", "smtp.yandex.ru", "Message", $text, "From site", "To user"); //$k=smail("pirogov@shadrinsk.net", $adr, "pirogov", "VLADVALS123", "mail.shadrinsk.net", "Message", $text, "From site", "To user"); //$k=smtpmail($adr,"Message from site", $text, ""); } return 0; } function get_data($smtp_conn) { $data=""; while($str = fgets($smtp_conn,515)) { $data .= $str; if(substr($str,3,1) == " ") { break; } } return $data; } /* $m1 - адрес откуда $m2 - адрес куда $l - логин $p - пароль $s - сервер $z - заголовок $t - текст $o - от кого $k - кому */ function smail($m1, $m2, $l, $p, $s, $z, $t, $o, $k) { $header="Date: ".date("D, j M Y G:i:s")." +0700\r\n"; $header.="From: =?windows-1251?Q?".str_replace("+","_",str_replace("%","=",urlencode($o)))."?= <".$m1.">\r\n"; $header.="X-Mailer: The Bat! (v3.99.3) Professional\r\n"; $header.="Reply-To: =?windows-1251?Q?".str_replace("+","_",str_replace("%","=",urlencode($o)))."?= <".$m1.">\r\n"; $header.="X-Priority: 3 (Normal)\r\n"; $header.="Message-ID: <172562218.".date("YmjHis")."@yandex.ru>\r\n"; $header.="To: =?windows-1251?Q?".str_replace("+","_",str_replace("%","=",urlencode($k)))."?= <".$m2.">\r\n"; $header.="Subject: =?windows-1251?Q?".str_replace("+","_",str_replace("%","=",urlencode($z)))."?=\r\n"; $header.="MIME-Version: 1.0\r\n"; $header.="Content-Type: text/plain; charset=UTF-8\r\n"; $header.="Content-Transfer-Encoding: 8bit\r\n"; $text=$t; $smtp_conn = fsockopen($s,25,$errno, $errstr, 10); if(!$smtp_conn) {/*print "соединение с серверов не прошло";*/ fclose($smtp_conn); return 1;} $data = get_data($smtp_conn); $sm="EHLO ".$s."\r\n"; fputs($smtp_conn,$sm); $code = substr(get_data($smtp_conn),0,3); if($code != 250) {/*print "ошибка приветсвия EHLO";*/ fclose($smtp_conn); return 2;} fputs($smtp_conn,"AUTH LOGIN\r\n"); $code = substr(get_data($smtp_conn),0,3); if($code != 334) {/*print "сервер не разрешил начать авторизацию";*/ fclose($smtp_conn); return 3;} fputs($smtp_conn,base64_encode($l)."\r\n"); $code = substr(get_data($smtp_conn),0,3); if($code != 334) {/*print "ошибка доступа к такому юзеру";*/ fclose($smtp_conn); return 4;} fputs($smtp_conn,base64_encode($p)."\r\n"); $code = substr(get_data($smtp_conn),0,3); if($code != 235) {/*print "не правильный пароль";*/ fclose($smtp_conn); return 5;} $sm="MAIL FROM:".$m1."\r\n"; fputs($smtp_conn,$sm); $code = substr(get_data($smtp_conn),0,3); if($code != 250) {/*print "сервер отказал в команде MAIL FROM";*/ fclose($smtp_conn); return 6;} $sm="RCPT TO:".$m2."\r\n"; fputs($smtp_conn,$sm); $code = substr(get_data($smtp_conn),0,3); if($code != 250 AND $code != 251) {/*print "Сервер не принял команду RCPT TO";*/ fclose($smtp_conn); return 7;} fputs($smtp_conn,"DATA\r\n"); $code = substr(get_data($smtp_conn),0,3); if($code != 354) {/*print "сервер не принял DATA";*/ fclose($smtp_conn); return 8;} fputs($smtp_conn,$header."\r\n".$text."\r\n.\r\n"); $code = substr(get_data($smtp_conn),0,3); if($code != 250) {/*print "ошибка отправки письма";*/ fclose($smtp_conn); return 9;} fputs($smtp_conn,"QUIT\r\n"); fclose($smtp_conn); return 0; } ?>