param('register'))) { $login=substr($CGI_PARAMS->param('login'),0,10); $lastname=$CGI_PARAMS->param('lastname'); $firstname=$CGI_PARAMS->param('firstname'); $middlename=$CGI_PARAMS->param('middlename'); $email=$CGI_PARAMS->param('email'); if ($CGI_PARAMS->param('day')=~/^\d+$/ && ($CGI_PARAMS->param('day')<32) && $CGI_PARAMS->param('month')=~/^\d+$/ && ($CGI_PARAMS->param('month')<12) && $CGI_PARAMS->param('year')=~/^\d+$/ && ($CGI_PARAMS->param('year')>0)) { $birth=$CGI_PARAMS->param('year').'-'.($CGI_PARAMS->param('month')+1).'-'.$CGI_PARAMS->param('day').' 00:00:00'; } else { $birth='1900-01-01 00:00:00'; } $gender=$CGI_PARAMS->param('gender'); $profession=$CGI_PARAMS->param('profession'); $webpage=$CGI_PARAMS->param('webpage'); $interests=$CGI_PARAMS->param('interests'); $publiclastname=($CGI_PARAMS->param('publiclastname') || '0'); $publicfirstname=($CGI_PARAMS->param('publicfirstname') || '0'); $publicmiddlename=($CGI_PARAMS->param('publicmiddlename') || '0'); $publicemail=($CGI_PARAMS->param('publicemail') || 0); $publicbirth=($CGI_PARAMS->param('publicbirth') || '0'); $publicgender=($CGI_PARAMS->param('publicgender') || '0'); $publicprofession=($CGI_PARAMS->param('publicprofession') || '0'); $publicwebpage=($CGI_PARAMS->param('publicwebpage') || '0'); $publicinterests=($CGI_PARAMS->param('publicinterests') || '0'); if (($login =~ /^\w+$/) && ($email =~ /^[\w\.\-]+\@[\w\.]+$/)) { # Generating salt @saltair= split //,"ABCDEFGHIJKLMNOPQRSTUVWXYZabcedfghijklmnopqrstuvwxyz0123456789./"; srand(); $salt=join("",$saltair[int(rand($#saltair))],$saltair[int(rand($#saltair))]); @passlets= split //,"ABCDEFJHEGKLMNOPQRSTUVWXYZ"; @passdigs= split //,"0123456789"; for $i (1..3) { $GENERATED_PASSWORD.=$passlets[int(rand($#passlets))]; } for $i (1..3) { $GENERATED_PASSWORD.=$passdigs[int(rand($#passdigs))]; } $passwd = crypt($GENERATED_PASSWORD,$salt); $q_login=$DB->quote($login); $q_lastname=$DB->quote($lastname); $q_firstname=$DB->quote($firstname); $q_middlename=$DB->quote($middlename); $q_email=$DB->quote($email); $q_passwd=$DB->quote($passwd); $query="select login from user where login=$q_login or email=$q_email"; #print $query."
\n"; $result = $DB->prepare($query) or die "Can't prepare query: $query\n"; $result->execute or die "Can't execute query: $query\n"; if (!$result->rows) { $query="insert into user (login, firstname, middlename, lastname, email, passwd, register) values ($q_login, $q_firstname, $q_middlename, $q_lastname, $q_email, $q_passwd, now())"; # print $query."
\n"; $result = $DB->prepare($query) or die "Can't prepare query: $query\n"; $result->execute or die "Can't execute query: $query\n"; $query="insert into anketa "; $query.="(login, birth, gender, profession, webpage, interests,"; $query.=" publiclastname, publicfirstname, publicmiddlename, publicemail, publicbirth, publicgender, publicprofession, publicwebpage, publicinterests"; $query.=") values ("; $query.=" $q_login,"; $query.=" ".$DB->quote($birth).","; $query.=" ".$DB->quote($gender).","; $query.=" ".$DB->quote($profession).","; $query.=" ".$DB->quote($webpage).","; $query.=" ".$DB->quote($interests).","; $query.=" $publiclastname, $publicfirstname, $publicmiddlename, $publicemail, $publicbirth, $publicgender, $publicprofession, $publicwebpage, $publicinterests"; $query.=")"; # print $query."
\n"; $result = $DB->prepare($query) or die "Can't prepare query: $query\n"; $result->execute or die "Can't execute query: $query\n"; $message="From: info\@hobbydom.ru \\n"; $message.="To: $email\n"; $message.= "Subject: Вы зарегистрированы!\n"; $message.= "Content-Type: text/plain\; charset=\"koi8-r\"\n"; $message.= "Здраствуйте!\n \n"; $message.= "Вы зарегистрированы на сайте nadya.program.ru (http://nadya.program.ru/)\n"; $message.= "Теперь вы можете заходить на закрытые разделы нашего сайта.\n"; $message.= " login: $login\n"; $message.= " password: $GENERATED_PASSWORD\n"; $message.= "\n\n"; $message.= "-------------------------------------------------------------------------\n"; open TMP, ">$MAIL_LOGS_DIR/mail.$$"; print TMP $message; close TMP; system("cat $MAIL_LOGS_DIR/mail.$$ | $MAILER_PROG \&"); open PASSWD_FILE, "<$PASSWD_FILE"; while ($line=) { chomp($line); ($user,$pass)=split(/:/,$line,2); $ht_users{$user}=$pass; } close PASSWD_FILE; $ht_users{$login}=$passwd; open PASSWD_FILE,">$PASSWD_FILE"; foreach $i (sort(keys(%ht_users))) { print PASSWD_FILE "$i:".$ht_users{$i}."\n"; } close PASSWD_FILE; $query="insert into group_member values ($q_login,'user')"; #print $query."
\n"; $result = $DB->prepare($query) or die "Can't prepare query: $query\n"; $result->execute or die "Can't execute query: $query\n"; $query="insert into group_member values ($q_login,'confwriter')"; #print $query."
\n"; $result = $DB->prepare($query) or die "Can't prepare query: $query\n"; $result->execute or die "Can't execute query: $query\n"; open GROUP_FILE,">$GROUP_FILE" || die "Can't open file $GROUP_FILE"; print GROUP_FILE "admins: nadya Shaman\n"; $query="select login from group_member where groupname='user'"; #print $query."
\n"; $result = $DB->prepare($query) or die "Can't prepare query: $query\n"; $result->execute or die "Can't execute query: $query\n"; print GROUP_FILE "user:"; while ($data_hash=$result->fetchrow_hashref) { print GROUP_FILE " ".$data_hash->{'login'}; } print GROUP_FILE "\n"; close GROUP_FILE; $FIRST_COME=0; } else { $FIRST_COME=0; $ERROR=1; $ERR_MSG="

Пользователь с таким ником или email-ом уже существует. Попробуйте придумать другой."; } $result->finish; } else { $FIRST_COME=0; $ERROR=1; if ($login eq '') { $ERR_MSG="

Вы не заполнили поле ник."; } elsif ($email eq '') { $ERR_MSG="

Вы не заполнили поле e-mail."; } elsif (!($login =~ /^\w+$/)) { $ERR_MSG="

Вы не правильно заполнили поле login (только латинские буквы и цифры)."; } elsif (!($email =~ /[\w\.\-]+\@[\w\.\-]+/)) { $ERR_MSG="

Вы не правильно заполнили поле e-mail - попробуйте еще раз."; } } $DB->disconnect; } !>

Форма регистрации


$ERR_MSG

\n"; } elsif (!$FIRST_COME) {!> Вы зарегистрированы. Пароль для входа выслан вам по email.

     login: 
     Password: [выслан Вам по email]

Пожалуйста, заполните поля нашей анкеты и нажмите "Отослать". Данные будут зарегистрированны и на указанный e-mail будет выслан Ваш пароль, по которому Вы сможете входить на страницы cайта. Обратите внимание на следующие моменты:

Успешной регистрации!

Псевдоним ("Ник") -- только цифры или латинские буквы*:

E-mail *:
> показывать всем

Фамилия:
> показывать всем

Имя:
> показывать всем

День рождения:
> показывать всем

Пол:
> муж. > жен. > показывать всем

Профессия / должность:
> показывать всем

Домашняя страница:
> показывать всем

Ваши интересы:
> показывать всем


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