Создание серверных приложений на языке PERL


Пример 1. - часть 2


#Декодируем поля формы

else { foreach (@fields=split(/&/,$query)) { if (/^login=(.*)/) { $login=&urldecode ($1); } if (/^pass=(.*)/) { $password=&urldecode ($1); } if (/^email=(.*)/) { $email=&urldecode ($1); } }

#Проверяем,не существует ли данное имя в системе. open(INFO,"login.txt") ||die; @data=<INFO>;#Читаем строки в массив. close(INFO);

foreach $string(@data) { @item=split(/&/,$string);#Разбиваем строку на части. foreach (@item) { if ($item[0] eq $login) { #Сравниваем полученное имя с первым полем файла #для каждой строки и если такое найдено выдаем #ошибку. print <<HTML; <h2 align=center><font color="ff0000">Error!</font></h2>

<p><center><b>The name <font color="ff0000">$login</font> already exists in the system. <p>Please,go back and choose another name.</b>

<p><form><input type="button" value="Back" onClick="history.back()"></form>

</center>

HTML exit; } } }

#Если имя не найдено,открываем базу данных и добавляем информацию.

if ($item[0] ne $login) { open(DATA,">>login.txt"); $string=join('&',$login,$password,$email,scalar localtime,$ENV {'REMOTE_ADDR'}; print DATA "$string\n"; close(DATA);

#Создаем домашний каталог пользователя и переходим в него.

mkdir("$userdir/$login",0700); chdir("$userdir/login"); opendir(USER,"$userdir/$login");

#Помещаем файл index.html в каталог пользователя.

open(IN,">$userdir/$login/index.html"); print IN "This is the test!\n"; close(IN); closedir(USER);

#Содержание файла может быть любым,это только для примера.

#Генерируем ответ пользователю.

print <<HTML; <p><h1 align=center><font color="ff0000">Congratulations!</font></h1>

<p><b>Your registration was successful and your data were added to our database.Thank you for your time.</b>

<p><center><b><font color="ff0000">

You entered:</font>(print this page and keep it in safe place)</b>

<p><table>

<tr><td><b>Your login name:</b><td><font color="0000ff">$login</font>

<tr><td><b>Your password:</b><td><font color="0000ff">$password</font>

<tr><td><b>Your e-mail address:</b><td><font color="0000ff">$email</font>

</table></center>

HTML } }

Скрипт выдает ответ в виде html-страницы,содержащей всю информацию,введенную пользователем.




Начало  Назад  Вперед